Вот эту ошибку выдает: Fatal error: Call to undefined method DB::esсape() in /www/polvmire/www/htdocs/index.php on line 52 Вот эта злополучная строка: // Store Код: // Store 49. if (isset($_SERVER['HTTPS']) && (($_SERVER['HTTPS'] == 'on') || ($_SERVER['HTTPS'] == '1'))) { 50. $store_query = $db->query("SELECT * FROM " . DB_PREFIX . "store WHERE REPLACE(`ssl`, 'www.', '') = '" . $db->escape('https://' . str_replace('www.', '', $_SERVER['HTTP_HOST']) . rtrim(dirname($_SERVER['PHP_SELF']), '/.\\') . '/') . "'"); 51. } else { 52. $store_query = $db->query("SELECT * FROM " . DB_PREFIX . "store WHERE REPLACE(`url`, 'www.', '') = '" . $db->esсape('http://' . str_replace('www.', '', $_SERVER['HTTP_HOST']) . rtrim(dirname($_SERVER['PHP_SELF']), '/.\\') . '/') . "'"); 53. } Как исправить?
Спасибо за помощь! Но вот смотрите: Код: <?php class DB { private $driver; public function __construct($driver, $hostname, $username, $password, $database) { if (file_exists(DIR_DATABASE . $driver . '.php')) { require_once(DIR_DATABASE . $driver . '.php'); } else { exit('Error: Could not load database file ' . $driver . '!'); } $this->driver = new $driver($hostname, $username, $password, $database); } public function query($sql) { return $this->driver->query($sql); } public function escape($value) { return $this->driver->escape($value); } public function countAffected() { return $this->driver->countAffected(); } public function getLastId() { return $this->driver->getLastId(); } } ?> Это указанный вами файл. И функция esсape там есть.
Посмотрите еще в system/database/mysql.php (или mysqli.php еслы вы используете mysqli) Там тоже должен быть метод escape()
Вот указанный вами файл. И там есть эта функция (60 строка): Код: <?php final class MySQLi { private $mysqli; public function __construct($hostname, $username, $password, $database) { $this->mysqli = new mysqli($hostname, $username, $password, $database); if ($this->mysqli->connect_error) { trigger_error('Error: Could not make a database link (' . $this->mysqli->connect_errno . ') ' . $this->mysqli->connect_error); } $this->mysqli->query("SET NAMES 'utf8'"); $this->mysqli->query("SET CHARACTER SET utf8"); $this->mysqli->query("SET CHARACTER_SET_CONNECTION=utf8"); $this->mysqli->query("SET SQL_MODE = ''"); } public function query($sql) { $result = $this->mysqli->query($sql); if ($this->mysqli->errno) { //$mysqli->errno } if (is_resource($resource)) { $i = 0; $data = array(); while ($row = $result->fetch_object()) { $data[$i] = $row; $i++; } $result->close(); $query = new stdClass(); $query->row = isset($data[0]) ? $data[0] : array(); $query->rows = $data; $query->num_rows = $result->num_rows; unset($data); return $query; } else { return true; } } else { trigger_error('Error: ' . mysql_error($this->link) . '<br />Error No: ' . mysql_errno($this->link) . '<br />' . $sql); exit(); } } public function escape($value) { return $this->mysqli->real_escape_string($value); } public function countAffected() { return $this->mysqli->affected_rows; } public function getLastId() { return $this->mysqli->insert_id; } public function __destruct() { $this->mysqli->close(); } } ?> --- Добавлено, 5 июл 2017 --- Все было нормально. Но в день передачи мне этого интернет магазину, утром кто-то вошел и в 10.15 изменил файл index.php
Спасибо всем! Оказалось просто поменяли английскую букву на русскую... Отсюда вопрос: есть ли сервис (программа) позволяющая обнаружить в английском тексте русскую букву (или что-то подобное)?. Теперь понятно для чего такой сервис нужен...
Обычно такие вещи делают когда заказчик не выполняет обязательства по оплате труда программиста. Тонкий намек о том что проект сдан, а денег все еще нет. Просто странно что вы спрашиваете об этом тут, а не у тех кто вам этот проект сдавал.
Программист взял 50 т.р. и его третий год ищут .... причем, несколько заказчиков! Давно нет у него доступов. А поменять букву может и не программист ... Так что кидают и программистов, и программисты кидают
Да тут много что не сходится. В день сдачи кто-то что-то изменил. День сдачи был когда? 3 года назад? Как сайт работал 3 года? Почему вы пытаетесь исправить эту ошибку только спустя 3 года?
Программист кидает когда не может сделать работу, а заказчик когда работа уже сделана. Если работа сделана и сдается - то программисту нет смысла кидать заказчика. А насчет 50 т.р. - дико интересно кто же делает такие предоплаты удаленному программисту? Познакомьте, может и я его кину...