/** * @see DbCore::connect() */ public function connect() { $socket = false; $port = false; if (strpos($this->server, ':') !== false) { list($server, $port) = explode(':', $this->server); if (is_numeric($port) === false) { $socket = $port; $port = false; } } elseif (strpos($this->server, '/') !== false) { $socket = $this->server; } if ($socket) { $this->link = @new mysqli(null, $this->user, $this->password, $this->database, null, $socket); } elseif ($port) { $this->link = @new mysqli($server, $this->user, $this->password, $this->database, $port); } else { $this->link = @new mysqli($this->server, $this->user, $this->password, $this->database); } // Do not use object way for error because this work bad before PHP 5.2.9 if (mysqli_connect_error()) { Tools14::displayError(sprintf(Tools14::displayError('Link to database cannot be established: %s'), mysqli_connect_error())); exit; } // UTF-8 support if (!$this->link->query('SET NAMES \'utf8\'')) { Tools14::displayError(Tools14::displayError('PrestaShop Fatal error: no utf-8 support. Please check your server configuration.')); exit; } return $this->link; }
/** * @see DbCore::connect() */ public function connect() { try { $this->link = $this->_getPDO($this->server, $this->user, $this->password, $this->database, 5); } catch (PDOException $e) { die(sprintf(Tools14::displayError('Link to database cannot be established: %s'), $e->getMessage())); exit; } // UTF-8 support if (!is_object($this->link) || $this->link->exec('SET NAMES \'utf8\'') === false) { Tools14::displayError('PrestaShop Fatal error: no utf-8 support. Please check your server configuration.'); exit; } return $this->link; }
/** * @see DbCore::connect() */ public function connect() { if (!defined('_PS_MYSQL_REAL_ESCAPE_STRING_')) { define('_PS_MYSQL_REAL_ESCAPE_STRING_', function_exists('mysql_real_escape_string')); } if (!($this->link = @mysql_connect($this->server, $this->user, $this->password))) { Tools14::displayError('Link to database cannot be established.'); exit; } if (!$this->set_db($this->database)) { Tools14::displayError('The database selection cannot be made.'); exit; } // UTF-8 support if (!mysql_query('SET NAMES \'utf8\'', $this->link)) { Tools14::displayError('PrestaShop Fatal error: no utf-8 support. Please check your server configuration.'); } return $this->link; }
function checkingTab($tab) { global $adminObj, $cookie; $tab = trim($tab); if (!Validate::isTabName($tab)) { return false; } $row = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow($sql = 'SELECT id_tab, module FROM `' . _DB_PREFIX_ . 'tab` WHERE class_name = \'' . pSQL($tab) . '\''); if (!$row['id_tab']) { if (isset(AdminTab::$tabParenting[$tab])) { Tools14::redirectAdmin('?tab=' . AdminTab::$tabParenting[$tab] . '&token=' . Tools14::getAdminTokenLite(AdminTab::$tabParenting[$tab])); } echo Tools14::displayError('Tab cannot be found.'); return false; } if ($row['module'] and file_exists(_PS_MODULE_DIR_ . '/' . $row['module'] . '/' . $tab . '.php')) { include_once _PS_MODULE_DIR_ . '/' . $row['module'] . '/' . $tab . '.php'; } elseif (file_exists(PS_ADMIN_DIR . '/tabs/' . $tab . '.php')) { include_once PS_ADMIN_DIR . '/tabs/' . $tab . '.php'; } if (!class_exists($tab, false) or !$row['id_tab']) { echo Tools14::displayError('Tab file cannot be found.'); return false; } $adminObj = new $tab(); if (!$adminObj->viewAccess()) { $adminObj->_errors = array(Tools14::displayError('Access denied')); echo $adminObj->displayErrors(); return false; } return $row['id_tab']; }
/** * Display last SQL error * * @param bool $sql */ public function displayError($sql = false) { global $webservice_call; $errno = $this->getNumberError(); if ($webservice_call && $errno) { $dbg = debug_backtrace(); WebserviceRequest::getInstance()->setError(500, '[SQL Error] ' . $this->getMsgError() . '. From ' . (isset($dbg[3]['class']) ? $dbg[3]['class'] : '') . '->' . $dbg[3]['function'] . '() Query was : ' . $sql, 97); } else { if (_PS_DEBUG_SQL_ && $errno && !defined('PS_INSTALLATION_IN_PROGRESS')) { if ($sql) { Tools14::displayError($this->getMsgError() . '<br /><br /><pre>' . $sql . '</pre>'); } Tools14::displayError($this->getMsgError()); exit; } } }
protected function _postConfig($fields) { global $currentIndex, $smarty; $languages = Language::getLanguages(false); if (method_exists('Tools', 'clearCache')) { Tools14::clearCache($smarty); } /* Check required fields */ foreach ($fields as $field => $values) { if (isset($values['required']) and $values['required']) { if (isset($values['type']) and $values['type'] == 'textLang') { foreach ($languages as $language) { if (($value = Tools14::getValue($field . '_' . $language['id_lang'])) == false and (string) $value != '0') { $this->_errors[] = Tools14::displayError('field') . ' <b>' . $values['title'] . '</b> ' . Tools14::displayError('is required.'); } } } elseif (($value = Tools14::getValue($field)) == false and (string) $value != '0') { $this->_errors[] = Tools14::displayError('field') . ' <b>' . $values['title'] . '</b> ' . Tools14::displayError('is required.'); } } } /* Check fields validity */ foreach ($fields as $field => $values) { if (isset($values['type']) and $values['type'] == 'textLang') { foreach ($languages as $language) { if (Tools14::getValue($field . '_' . $language['id_lang']) and isset($values['validation'])) { if (!Validate::$values['validation'](Tools14::getValue($field . '_' . $language['id_lang']))) { $this->_errors[] = Tools14::displayError('field') . ' <b>' . $values['title'] . '</b> ' . Tools14::displayError('is invalid.'); } } } } elseif (Tools14::getValue($field) and isset($values['validation'])) { if (!Validate::$values['validation'](Tools14::getValue($field))) { $this->_errors[] = Tools14::displayError('field') . ' <b>' . $values['title'] . '</b> ' . Tools14::displayError('is invalid.'); } } } /* Default value if null */ foreach ($fields as $field => $values) { if (!Tools14::getValue($field) and isset($values['default'])) { $_POST[$field] = $values['default']; } } /* Save process */ if (!sizeof($this->_errors)) { if (Tools14::isSubmit('submitAppearanceconfiguration')) { if (isset($_FILES['PS_LOGO']['tmp_name']) and $_FILES['PS_LOGO']['tmp_name']) { if ($error = checkImage($_FILES['PS_LOGO'], 300000)) { $this->_errors[] = $error; } if (!($tmpName = tempnam(_PS_TMP_IMG_DIR_, 'PS')) or !move_uploaded_file($_FILES['PS_LOGO']['tmp_name'], $tmpName)) { return false; } elseif (!@imageResize($tmpName, _PS_IMG_DIR_ . 'logo.jpg')) { $this->_errors[] = 'an error occurred during logo copy'; } unlink($tmpName); } if (isset($_FILES['PS_LOGO_MAIL']['tmp_name']) and $_FILES['PS_LOGO_MAIL']['tmp_name']) { if ($error = checkImage($_FILES['PS_LOGO_MAIL'], 300000)) { $this->_errors[] = $error; } if (!($tmpName = tempnam(_PS_TMP_IMG_DIR_, 'PS_MAIL')) or !move_uploaded_file($_FILES['PS_LOGO_MAIL']['tmp_name'], $tmpName)) { return false; } elseif (!@imageResize($tmpName, _PS_IMG_DIR_ . 'logo_mail.jpg')) { $this->_errors[] = 'an error occurred during logo copy'; } unlink($tmpName); } if (isset($_FILES['PS_LOGO_INVOICE']['tmp_name']) and $_FILES['PS_LOGO_INVOICE']['tmp_name']) { if ($error = checkImage($_FILES['PS_LOGO_INVOICE'], 300000)) { $this->_errors[] = $error; } if (!($tmpName = tempnam(_PS_TMP_IMG_DIR_, 'PS_INVOICE')) or !move_uploaded_file($_FILES['PS_LOGO_INVOICE']['tmp_name'], $tmpName)) { return false; } elseif (!@imageResize($tmpName, _PS_IMG_DIR_ . 'logo_invoice.jpg')) { $this->_errors[] = 'an error occurred during logo copy'; } unlink($tmpName); } if (isset($_FILES['PS_STORES_ICON']['tmp_name']) and $_FILES['PS_STORES_ICON']['tmp_name']) { if ($error = checkImage($_FILES['PS_STORES_ICON'], 300000)) { $this->_errors[] = $error; } if (!($tmpName = tempnam(_PS_TMP_IMG_DIR_, 'PS_STORES_ICON')) or !move_uploaded_file($_FILES['PS_STORES_ICON']['tmp_name'], $tmpName)) { return false; } elseif (!@imageResize($tmpName, _PS_IMG_DIR_ . 'logo_stores.gif')) { $this->_errors[] = 'an error occurred during logo copy'; } unlink($tmpName); } $this->uploadIco('PS_FAVICON', _PS_IMG_DIR_ . 'favicon.ico'); } /* Update settings in database */ if (!sizeof($this->_errors)) { foreach ($fields as $field => $values) { unset($val); if (isset($values['type']) and $values['type'] == 'textLang') { foreach ($languages as $language) { $val[$language['id_lang']] = isset($values['cast']) ? $values['cast'](Tools14::getValue($field . '_' . $language['id_lang'])) : Tools14::getValue($field . '_' . $language['id_lang']); } } else { $val = isset($values['cast']) ? $values['cast'](Tools14::getValue($field)) : Tools14::getValue($field); } Configuration::updateValue($field, $val); } Tools14::redirectAdmin($currentIndex . '&conf=6' . '&token=' . $this->token); } } }