PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (183): В начало « ... 175 176 177 178 [179] 180 181 182 183 »

> Найдено сообщений: 2732
Bio man Отправлено: 05 Октября, 2011 - 20:31:34 • Тема: Классы в PHP • Форум: Объектно-ориентированное программирование

Ответов: 18
Просмотров: 5010
Eazy-E пишет:
да тут и без отладки все ясно было Улыбка

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. string(8) "{header}" //Из метода LoadTpl
  3. string(0) "" //Из метода ParseTpl
  4.  


Что говорит о том, что значение не передается...

Главный вопрос - как передать значение переменной из первого метода второму? Собственно и все.
какую переменную? $tpl?
(Добавление)
файл шаблона кинь
(Добавление)
откуда $heder берешь? если он вне класса то нужно его передать методу либо написать global $header если он вне класса
(Добавление)
походу ясно в чем проблема. {header} заменяется пустой строкой так как $header не обьявлена
Bio man Отправлено: 05 Октября, 2011 - 20:17:26 • Тема: Классы в PHP • Форум: Объектно-ориентированное программирование

Ответов: 18
Просмотров: 5010
сперва отладь каждый член, каждую переменную var_dump()'ом. тогда станет понятней где что не так
(Добавление)
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. class BuildTemplate
  3. {
  4. private $tpl;
  5.  
  6. function LoadTpl(){
  7. $this->tpl = file_get_contents (ROOT_DIR . '/theme/main.tpl');
  8. echo '<pre>';
  9. var_dump($this->tpl);
  10. echo '</pre>';
  11. require_once CORE_DIR . '/settings/site.php';
  12. }
  13. function ParseTpl(){
  14. $this->tpl = str_replace ('{header}', $header, $this->tpl);
  15. echo '<pre>';
  16. var_dump($this->tpl);
  17. var_dump($header);
  18. echo '</pre>';
  19. print $this->tpl;
  20. }
  21.  
  22. }
  23. $tpl = new BuildTemplate();
  24. $tpl->LoadTpl();
  25. $tpl->ParseTpl();
  26. echo '<pre>';
  27. var_dump($tpl);
  28. echo '</pre>';
  29. ?>

как то так
Bio man Отправлено: 30 Сентября, 2011 - 07:04:01 • Тема: что лучше и удобней? • Форум: Объектно-ориентированное программирование

Ответов: 17
Просмотров: 5691
caballero пишет:
значит нет такой статической проперти
такая ошибка при вызове вне класса, в классе не пробовал так сделать. В пхп6 нельзя будет обращатся к не статике через селф::
Bio man Отправлено: 29 Сентября, 2011 - 22:52:48 • Тема: MySQL или MySQLi? • Форум: Работа с СУБД

Ответов: 5
Просмотров: 1651
ясненько. почитал документацию на php.net, и как ни странно нашел ответы на все свои вопросы Радость
Bio man Отправлено: 29 Сентября, 2011 - 22:41:13 • Тема: MySQL или MySQLi? • Форум: Работа с СУБД

Ответов: 5
Просмотров: 1651
тоесть MySQLi это как бы встроенный класс для работы с БД? тоесть как я понел это замена всяким пользовательским классам для работы c MySQL? а с MySQL 5.x будет работать?
Bio man Отправлено: 29 Сентября, 2011 - 21:27:30 • Тема: MySQL или MySQLi? • Форум: Работа с СУБД

Ответов: 5
Просмотров: 1651
MySQLi использует тот же диалект SQL что и MySQL? надо устанавливать какие модули для MySQLi?? или можно работать с обычным сервером MySQL?
Bio man Отправлено: 29 Сентября, 2011 - 20:42:33 • Тема: mysql_query • Форум: Вопросы новичков

Ответов: 3
Просмотров: 186
кароче вот такая картина $sql = string 'SELECT * FROM `users` WHERE `username` = 'Bio man'' (length=50)

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '\'Bio man\'' at line 1
(Добавление)
зачем тогда передовать ссылку соединения в mysql_real_escape_string если им нельзя обработать весь запрос целиком?
(Добавление)
как оптимизировать
PHP:
скопировать код в буфер обмена
  1. $array = $db->getArray("SELECT * FROM `users` WHERE `username` = '{$db->escapeString($name)}'");

вот твк не работает
PHP:
скопировать код в буфер обмена
  1. $array = $db->getArray("SELECT * FROM `users` WHERE `username` = ".$db->escapeString($name));

(Добавление)
все, сам понел
PHP:
скопировать код в буфер обмена
  1.     $array = $db->getArray('SELECT * FROM `users` WHERE `username` = "'.$db->escapeString($name).'"');

(Добавление)
Цитата:
зачем тогда передовать ссылку соединения в mysql_real_escape_string если им нельзя обработать весь запрос целиком?
Bio man Отправлено: 29 Сентября, 2011 - 20:31:22 • Тема: mysql_query • Форум: Вопросы новичков

Ответов: 3
Просмотров: 186
почему mysql_query возвращает false если строка обработана ф-цией mysql_real_escape_string????? без обработки все нормально
Bio man Отправлено: 29 Сентября, 2011 - 19:43:34 • Тема: что лучше и удобней? • Форум: Объектно-ориентированное программирование

Ответов: 17
Просмотров: 5691
caballero пишет:
статичечкие данные можно вызвать и через $this-> и через self::

неа
Цитата:
Notice: Undefined property: database::$instance
Bio man Отправлено: 29 Сентября, 2011 - 19:22:04 • Тема: что лучше и удобней? • Форум: Объектно-ориентированное программирование

Ответов: 17
Просмотров: 5691
что лучше для не статических данных? статические данные понятное дело не вызовешь через $this->(в том числе и константы). может $this-> лучше, так как лучше документирует? ваши советы
Bio man Отправлено: 29 Сентября, 2011 - 17:08:24 • Тема: SQL иньекции и способы защиты • Форум: Работа с СУБД

Ответов: 8
Просмотров: 3351
Мелкий пишет:
Нет. А зачем он здесь?
думал раньше что дополнительная какая нибудь защита будет. вот мне кажется в htmlentities есть смысл или я ошибаюсь?
Bio man Отправлено: 29 Сентября, 2011 - 17:04:44 • Тема: SQL иньекции и способы защиты • Форум: Работа с СУБД

Ответов: 8
Просмотров: 3351
ясно. а вот есть ли смысл в этом?
PHP:
скопировать код в буфер обмена
  1. protected function escapeString($sql) { // Экранирует специальные символы в строке
  2.                 $sql = addslashes($sql);
  3.                 return mysql_real_escape_string($sql, $this->connection);
  4.         }

то есть есть ли смысл в addslashes?
Bio man Отправлено: 29 Сентября, 2011 - 16:50:56 • Тема: SQL иньекции и способы защиты • Форум: Работа с СУБД

Ответов: 8
Просмотров: 3351
mysql_real_escape_string спасает от всех типов инъекций? даже от UNION? допустим есть запрос "SELECT * FROM users WHERE login=$login AND pass=$pass" и в переменную пасс передать что то типо qwerty' or 1=1 и обработать этот запрос с mysql_real_escape_string то эта ф-ция предотвратит вход в систему? аналогичный вопрос с инъекцией типа DELETE, UPDATE, INSERT...
Bio man Отправлено: 29 Сентября, 2011 - 16:42:33 • Тема: Выборка по строке • Форум: Работа с СУБД

Ответов: 4
Просмотров: 1402
напиши пример запроса. не совсем понял тебя, но если название поля слишком длинное, например, user_access_controll_accaunt то выбрать это поле не получется. сам сталкивался с таким, долго думал в чем дело, потом изменил название на более короткое и все заработало
Bio man Отправлено: 29 Сентября, 2011 - 16:39:03 • Тема: SQL иньекции и способы защиты • Форум: Работа с СУБД

Ответов: 8
Просмотров: 3351
всем привет. как защитится от SQL инъекций?
я полагаю, что одних лишь addslashes и mysql_real_escape_string будет маловато, хотелось бы узнать еще способы защиты от такого рода атак. и к слову в чем разница между addslashes и mysql_real_escape_string? ведь обе ф-ции добавляют слэши перед спец. символами...

Страниц (183): В начало « ... 175 176 177 178 [179] 180 181 182 183 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB