Beispiel #1
0
 /**
  * @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;
 }
Beispiel #2
0
 /**
  * @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;
 }
Beispiel #3
0
 /**
  * @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;
 }
Beispiel #4
0
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'];
}
Beispiel #5
0
 /**
  * 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;
         }
     }
 }
Beispiel #6
0
 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);
         }
     }
 }