PHP.SU

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

Страниц (594): В начало « ... 584 585 586 587 [588] 589 590 591 592 ... » В конец

> Найдено сообщений: 8901
EuGen Отправлено: 03 Октября, 2007 - 13:47:45 • Тема: Вопрос по работе с proxy • Форум: Apache и другие веб-серверы

Ответов: 9
Просмотров: 617
Ну тогда в начале выполнения скрипта сделайте

И посмотрите что выдает PHP после вызова fopen.
EuGen Отправлено: 03 Октября, 2007 - 12:18:01 • Тема: Вопрос по работе с proxy • Форум: Apache и другие веб-серверы

Ответов: 9
Просмотров: 617
Проверьте в Вашем php.ini, что
EuGen Отправлено: 02 Октября, 2007 - 17:28:38 • Тема: Создание таблиц в базе • Форум: SQL и Архитектура БД

Ответов: 3
Просмотров: 46
valenok пишет:
Используйте для созданий таблиц phpmyadmin
Чем больше пишем ручками, тем больше ошибок вкрадывается.

А я всегда думал, что чем больше пишешь ручками, тем лучше понимаешь суть (((*
EuGen Отправлено: 27 Сентября, 2007 - 10:18:40 • Тема: Приемы безопасного программирования на PHP • Форум: Обсуждение статей

Ответов: 19
Просмотров: 17962
Во-первых, это запрос - пример того, что подход с функцией лишней не есть гут.
P.S.
Он всего лишь делает следующее: выбирает пользователей, которые были зарегистрированы с..по, или же тех, чей статус нам важнее этих данных
EuGen Отправлено: 26 Сентября, 2007 - 12:25:27 • Тема: Приемы безопасного программирования на PHP • Форум: Обсуждение статей

Ответов: 19
Просмотров: 17962
Не понял, зачем писать то, что уже есть в PHP??
EuGen Отправлено: 26 Сентября, 2007 - 09:31:15 • Тема: Приемы безопасного программирования на PHP • Форум: Обсуждение статей

Ответов: 19
Просмотров: 17962
А смысл в такой функции? В sql-запросах не только логин/пароль бывает.
Например:
PHP:
скопировать код в буфер обмена
  1.  
  2. $sql="SELECT * FROM users WHERE user_id IN (SELECT user_id FROM $rights_table) AND reg_date BETWEEN '$start_date' AND '$end_date' OR status=$status";
  3.  

И что, каждый раз функцию писать ?
EuGen Отправлено: 25 Сентября, 2007 - 18:22:43 • Тема: Приемы безопасного программирования на PHP • Форум: Обсуждение статей

Ответов: 19
Просмотров: 17962
Цитата:
select id from users where login=$login and pass=$pass

это безобразие уже давно в серьезных проектах не встречал.
EuGen Отправлено: 25 Сентября, 2007 - 17:52:35 • Тема: Приемы безопасного программирования на PHP • Форум: Обсуждение статей

Ответов: 19
Просмотров: 17962
2 valenok - в подходе, когда в самом начале скрипта делается экранирование символов у введенных переменных, есть некоторый изъян - а именно: если мы будем использовать эти переменные где-либо еще, кроме как в запросе, нам это экранирование "испортит" ввод пользователя (бывает и так, что нам нужно сохранить именно исходные данные без экранирования). В Вашем примере я бы предпочел:
PHP:
скопировать код в буфер обмена
  1.  
  2. $login = $_POST['login'];
  3. $pass = $_POST['pass'];
  4. $q = "SELECT `id` FROM `usres` WHERE `login`='".mysql_escape_string($login)."' AND `pass`='".mysql_escape_string($pass)."'";
  5.  

Таким образом и данные сохраняются, и экранирование идет в нужном месте.
(А вообще то логин с паролем обычно нигде кроме БД не нужны ((* ... так что данный пример вполне вероятно что и так можно было оставить, но для общего случая лучше использовать экранирование только в тех местах, где оно нужно)
EuGen Отправлено: 25 Сентября, 2007 - 17:46:28 • Тема: Оставить только кирилицу в строке • Форум: Регулярные выражения

Ответов: 14
Просмотров: 1031
Все решается довольно просто:
PHP:
скопировать код в буфер обмена
  1.  
  2. $pattern="/[x00-x7F]*/";
  3. //$var-то, где заменяем
  4. preg_replace($pattern,'',$var);
  5.  
EuGen Отправлено: 25 Сентября, 2007 - 13:59:07 • Тема: Приемы безопасного программирования на PHP • Форум: Обсуждение статей

Ответов: 19
Просмотров: 17962
по поводу запросов - я всегда прежде чем вставлять в запрос какую бы то ни было переменную использую , экранируя спец. символы. Кроме того, никогда не использую register_globals, так как небезопасно(почему - подумайте сами ...)
Далее, рекомендуется всегда инициализировать переменные, если требуется достичь большей безопасности. Приемы нехитрые, но помогают избежать многих "тупых" ошибок.
EuGen Отправлено: 24 Сентября, 2007 - 17:43:37 • Тема: Объект класса • Форум: Программирование на PHP

Ответов: 11
Просмотров: 668
а вот с этим можно согласиться, потому что зачастую все можно решить гораздо проще, нежели проделывать такие вещи с классами и их экземплярами ((*...
EuGen Отправлено: 24 Сентября, 2007 - 17:36:44 • Тема: Объект класса • Форум: Программирование на PHP

Ответов: 11
Просмотров: 668
Я так и не понял хороша или плоха идея с сохранением настроек. Ибо я в контексте веб-программирования PHP пока не придумал другой возможности, ведь, как заметил valenok, класс будет создаваться всегда, другое дело что мы можем заставить его создаваться с нужными параметрами.
EuGen Отправлено: 24 Сентября, 2007 - 17:14:43 • Тема: Объект класса • Форум: Программирование на PHP

Ответов: 11
Просмотров: 668
Вы должны во-первых, понять, какие именно настройки при инициализации объекта Вам нужно сохранить. То есть как минимум класс должен иметь конструктор, который принимает именно эти параметры.
Ну а как организовать хранилище - тут может быть много путей.
Первое что приходит в голову (правда это зачастую не есть самое правильное) - сделать таблицу настроек в виде: "ключ"-"значение", и вместе с ней хранилище времени последнего обновления сессии. Таким образом, во время обращения к скрипту Вы делаете запрос к базе данных - выбираете время обновления, которое там записано. и далее:
0)Это время+максимальный интервал (таймаут сессии) больше чем текущее время: создаете объект по новой
1)Иначе: загружаете настройки из таблицы-хранилища и вызываете конструктор класса с этими параметрами.
EuGen Отправлено: 24 Сентября, 2007 - 17:08:50 • Тема: Создание пользователя • Форум: SQL и Архитектура БД

Ответов: 1
Просмотров: 30
phpMyAdmin 2.7.0-pl2:
если достаточно прав, то после захода в интерфейс:
0)Кликаешь название сервера
1)Кликаешь "Привилегии"
2)Кликаешь "Создать пользователя"
Дальше по моему уже все ясно должно быть (*
EuGen Отправлено: 24 Сентября, 2007 - 17:03:48 • Тема: Объект класса • Форум: Программирование на PHP

Ответов: 11
Просмотров: 668
А Вас не смущает то, что каждый раз при загрузке страницы, скрипт выполняется заново от начала до конца, при этом переменные из "прошлого раза" не видны никоим образом, да и не могут быть видны.
Думаю, тут нужно создавать хранилище настроек класса и делать сессии по времени для пользователей. То есть есть загрузка страницы - заполняем хранилище - при следующей загрузке смотрим, не превышен ли интервал ожидания в сессии и если нет, то продолжаем использовать старые настройки. Другое дело, что я не знаю, подойдет ли Вам такой вариант.

Страниц (594): В начало « ... 584 585 586 587 [588] 589 590 591 592 ... » В конец
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB