|
Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » [решено] php Комментарии |
|
[решено] php Комментарии
|
Ветеран Сообщения: 823 |
Профиль | Сайт | Отправить PM | Цитировать Для комментариев создаю формочку и заношу с нее данные в БД.
Вообщем самый примитив. Начинаю только открывать для себя такой раздел и мне очень было бы полезно получить как можно больше информации в качестве советов и ссылок. Подскажите пожалуйста на первые же возникшие вопросы: 1. Как реализовать простешние смайлики. 2. Как сделать так, что бы избежать тегов со стороны пользователя? Да и что еще нужно знать для безопасности или функциональности. Простейшая версия моих комментаривев к примеру здесь - http://deykun.com/?projects=4 Спасибо |
|
------- Отправлено: 02:25, 19-07-2008 |
Ветеран Сообщения: 823
|
Профиль | Сайт | Отправить PM | Цитировать Спасибо, еще мелкий вопрос:
Как выборкой сделать только последних 2 строки? Я же делаю приблизительно так:
Но здесь много кода получается, не считая еще дополнительного поля в таблице. Да и я думал, что так будет получаться: Но оно просто дублирует последнюю строку. Правильно вот так: (по крайней мере только так умею)
Но в этом случае считает оно всю абсолютно таблицу перебирает. Подскажите пожалуйста этот нюанс. |
------- Отправлено: 13:16, 20-07-2008 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
runs with scissors Сообщения: 642
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 13:48, 20-07-2008 | #12 |
Ветеран Сообщения: 823
|
Профиль | Сайт | Отправить PM | Цитировать Подскажите пожалуйста, что неправильно?
Выборка делается правильно.
|
------- Отправлено: 16:22, 23-07-2008 | #13 |
Кот Ти Сообщения: 7318
|
Профиль | Отправить PM | Цитировать Вот это непонятно: if (!isset($_SESSION['login_result']) | $_SESSION['login_result'] !== 'OK') {
Должно быть две вертикальные черты, если условие "или". |
Отправлено: 17:42, 23-07-2008 | #14 |
Ветеран Сообщения: 823
|
Профиль | Сайт | Отправить PM | Цитировать Да, две черты. Поправил. Но вот все равно. Что то как по мне не работает.
www.deykun.com Вам видно сейчас форму входа? Только что вывел на экран значение SESSION['login_result']. Оно равно 'OK'. Откуда ж оно взялось? $_SESSION['login'] - пусто |
------- Отправлено: 18:02, 23-07-2008 | #15 |
Кот Ти Сообщения: 7318
|
Профиль | Отправить PM | Цитировать Нет, форму не видно.
Я вот как понимаю: пользователь вызывает скрипт без параметров. Т.е. $_POST пустая. Правильно? Далее, скрипт делает запрос к БД ("SELECT `pas` FROM `".$pref."reg` WHERE login = '$_POST[login]'"). После чего результат парсится в переменную $pas. Но т.к. $_POST[login] пустая, значит и СУБД возвращает пустую строку. В $pas попадает ничего. Дальше по скрипту: сравнивается значение $pas['pas'], которая пустая и $_POST['password'], которая тоже не установлена. И они равны, разумеется - обе пустые. Тогда выполняется присваивание $_SESSION['login_result'] = 'OK' (ведь правильно присвоилось?) и $_SESSION['login'] = $_POST['login']. Но $_POST['login'] не существует, поэтому эта переменная в сессии будет пустой. Предлагаю вначале добавить проверку на наличие $_POST:
Тогда он не будет делать запрос к БД, если его делать не надо. |
Отправлено: 19:10, 23-07-2008 | #16 |
Ветеран Сообщения: 823
|
Профиль | Сайт | Отправить PM | Цитировать Спасибо, ошибку понял. Сейчас пробую что то исправить.
Значит такая схема как бы категорически неправильная? Т.е. можно пройти под любым логином с пустым паролем? О_о Вот, так исправил и вроде должно быть хорошо:
Прокоментируйте пожалуйста, так нормально или есть прокол, и как лучше сделать по другому.... |
------- Отправлено: 19:42, 23-07-2008 | #17 |
Кот Ти Сообщения: 7318
|
Профиль | Отправить PM | Цитировать if (isset($_POST['login']) && isset($_POST['pas'])) - не обязательно писать isset. Хотя и не помешает.
$pas = mysql_fetch_array($result); - тут я не помню, разве не mysql_fetch_assoc создаёт ассоциативный массив? ..._array возвращает массив, наверное, просто нумерованный. $pas['pas'] = trim($pas['pas']); - точно нужно обрезать? Впрочем, если нужно, значит пусть будет. Так вроде всё нормально. Хотя с сессиями я ни разу не работал, т.ч. толком не знаю, откуда они берутся и как всё это происходить должно. |
Отправлено: 19:55, 23-07-2008 | #18 |
Ветеран Сообщения: 823
|
Профиль | Сайт | Отправить PM | Цитировать Цитата Coutty:
Если просто проверять наличие поля пароля, то так не покатит. Так как если пустое поле, то создается $_POST, но с пустым значением. Я же решил делать проверку и на этот момент. А обрезал так - на всякий случай Сейчас попробую создать ваторизацию для регистрации ) |
|
------- Отправлено: 20:05, 23-07-2008 | #19 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
[решено] Открыть поддержку WinStyle 2009 (Голосование и комментарии) | VIP-men | Проект WinStyle | 28 | 02-12-2009 11:32 | |
Проблема с PHP(не передаются переменные из формы в PHP- скрипт) | Kirander | Вебмастеру | 21 | 03-08-2009 01:11 | |
C/C++ - [решено] PHP. Fatal error: Function name must be a string in /var/www/index.php on line 15 | Artem-Samsung | Программирование и базы данных | 6 | 29-11-2008 18:37 | |
[решено] Apache 2.2.8 + Php 5.2.6 + MySQL 5.0.51b (win) - не работает php | v0f41k | Вебмастеру | 4 | 11-05-2008 22:08 | |
комментарии на VisualC++6.5-проблема! | faterss | Программирование и базы данных | 4 | 02-07-2007 13:00 |
|