![]() |
php Комментарии
Для комментариев создаю формочку и заношу с нее данные в БД.
PHP код:
Подскажите пожалуйста на первые же возникшие вопросы: 1. Как реализовать простешние смайлики. 2. Как сделать так, что бы избежать тегов со стороны пользователя? Да и что еще нужно знать для безопасности или функциональности. Простейшая версия моих комментаривев к примеру здесь - http://deykun.com/?projects=4 Спасибо |
Цитата:
Первый вариант лучше тем, то смайлики могут переехать в другую папку - не придётся лазить по БД и обновлять. Второй лучше тем, что меньше нагрузка на процессор - один раз надо только делать замену. Цитата:
|
Цитата:
|
Artem-Samsung,
HTML код:
<script language="JavaScript"> PHP код:
|
Ухты... Это оно, спасибо за исчерпывающий ответ
А где можно еще такие фокусы почитать? Ну как там формочку с выделением текста и подчеркивания сделать? |
И как то набор смайлов в отдельном окне можно выводить?
|
HTML код:
<a href="smilies.html" onClick="window.open('smilies.html', 'smilies_window');return false;">Еще смайлики</a> HTML код:
<script language="JavaScript"> |
Извините пожалуйста, но вот в ходе возникло пару мелких вопрос. Гугл четких ответов не дает, а я знаю, что это не сложно и где то в книге встречал (только к книге доступа нету).
Вопрос1: Как сделать что бы когда переход с новой строки в формочке, то он заменялся не на проблем, а на <br /> Вопрос2 (посерьезней): Подтверждение регистрации. Я приблизительно прикинул, как это будет выглядесь и реализироваться. На е-мейл приходит ссылка, нажав которую авторизирует, но как сделать рандомный текст? Цифры знаю, а вот буквы? |
А так, в общем работает в тестовом режиме ;)
http://deykun.com/index.php?projects=6 |
Цитата:
Цитата:
$text = substr(md5(rand()), 0, 6); Другой способ - создаётся массив символов (/просто строка), несколько раз генерируется случайное число от 1 до 26 (для лат.алфавита) и производится выборка. PHP код:
|
Спасибо, еще мелкий вопрос:
Как выборкой сделать только последних 2 строки? PHP код:
PHP код:
Да и я думал, что так будет получаться: PHP код:
PHP код:
Подскажите пожалуйста этот нюанс. |
Надо выбрать последние 2 записи и обратить их порядок.
PHP код:
|
Подскажите пожалуйста, что неправильно?
Выборка делается правильно. PHP код:
|
Вот это непонятно: if (!isset($_SESSION['login_result']) | $_SESSION['login_result'] !== 'OK') {
Должно быть две вертикальные черты, если условие "или". |
Да, две черты. Поправил. Но вот все равно. Что то как по мне не работает.
www.deykun.com Вам видно сейчас форму входа? Только что вывел на экран значение SESSION['login_result']. Оно равно 'OK'. Откуда ж оно взялось? $_SESSION['login'] - пусто |
Нет, форму не видно.
Я вот как понимаю: пользователь вызывает скрипт без параметров. Т.е. $_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: PHP код:
|
Спасибо, ошибку понял. Сейчас пробую что то исправить.
Значит такая схема как бы категорически неправильная? Т.е. можно пройти под любым логином с пустым паролем? О_о Вот, так исправил и вроде должно быть хорошо: PHP код:
|
if (isset($_POST['login']) && isset($_POST['pas'])) - не обязательно писать isset. Хотя и не помешает.
$pas = mysql_fetch_array($result); - тут я не помню, разве не mysql_fetch_assoc создаёт ассоциативный массив? ..._array возвращает массив, наверное, просто нумерованный. $pas['pas'] = trim($pas['pas']); - точно нужно обрезать? Впрочем, если нужно, значит пусть будет. Так вроде всё нормально. Хотя с сессиями я ни разу не работал, т.ч. толком не знаю, откуда они берутся и как всё это происходить должно. |
Цитата:
Если просто проверять наличие поля пароля, то так не покатит. Так как если пустое поле, то создается $_POST, но с пустым значением. Я же решил делать проверку и на этот момент. А обрезал так - на всякий случай Сейчас попробую создать ваторизацию для регистрации ) |
Время: 14:21. |
Время: 14:21.
© OSzone.net 2001-