|
|
|
|
|
для: Unkind
(21.01.2008 в 13:34)
| | да. спасибо!!! уже разобрался :))) | |
|
|
|
|
|
|
|
для: afdm
(21.01.2008 в 13:26)
| | > почему нужно использовать ctype_digit(), а не is_int(). Или не принципиально? в чём отличие этих двух функций? (может быть в том, что ctype_digit не пропускает отриц. значения???)
a) ctype_digit() проверяет является ли каждый символ цифрами 0-9.
b) is_int() проверяет тип переменной.
<?php
var_dump(ctype_digit('123')); // bool(true)
var_dump(is_int('123')); // bool(false)
var_dump(ctype_digit('-123')); // bool(false)
var_dump(is_int(-123)); // bool(true)
?>
|
на "123" is_int() выдаст false , потому что это не integer, а string | |
|
|
|
|
|
|
|
для: afdm
(21.01.2008 в 13:21)
| | ещё два вопросика:
первый к Unkind'у: почему нужно использовать ctype_digit(), а не is_int(). Или не принципиально? в чём отличие этих двух функций? (может быть в том, что ctype_digit не пропускает отриц. значения???)
а второй такой: форму и обработчик вообще культурно делать в одном скрипте вместе? или лучше в двух разных? или тоже не принципиально?
спасибо!!! | |
|
|
|
|
|
|
|
для: Loki
(21.01.2008 в 11:14)
| | процитирую сам себя: :))
>PS все предыдущие замечания учтены и исправлены.
всё уже исправил... :))
ну раз вроде бы уже нет ошибок, думаю тему можно и закрыть :))) | |
|
|
|
|
|
|
|
для: afdm
(20.01.2008 в 23:33)
| |
<?
$query = @mysql_query("SELECT * FROM users WHERE name='$login'");
|
Переменная $login у вас берется из воздуха. | |
|
|
|
|
|
|
|
для: afdm
(20.01.2008 в 16:39)
| | Ну неужели я написал что-то и вправду без ошибок? :)))
PS все предыдущие замечания учтены и исправлены. | |
|
|
|
|
|
|
|
для: afdm
(20.01.2008 в 16:39)
| | up! | |
|
|
|
|
|
|
|
для: afdm
(20.01.2008 в 15:44)
| | да и ещё! можно ли форму и обработчик запихать в один скрипт? не в смысле как, а в смысле правильно ли это будет? или всё-таки в разных оставить... спасибо! | |
|
|
|
|
|
|
|
для: Unkind
(20.01.2008 в 14:42)
| | спасибо Unkind за советы...
пожалуй, действительно не буду вводить ограничения на длину пароля. кстати, а какое самое длинное название зоны? travel, 6 знаков? или ещё есть какие-то?
> В любом случае, вместо проверки соответсвия паттерну /^[\d]*$/ (кстати, такой паттерн пропускает пустую строку, что может вызвать ошибку в SQL-запросе) лучше использовать ctype_digit().
можно поподробнее? а такой паттерн специально должен пропускать пустую строку, т.к. поле не явл. обязательным.
> Идет обращение к неопределенным переменным $login, $passw.
да простите, не заметил... просто раньше они были, а сейчас нет. исправлено...
PS какие ещё есть замечания??? особенно в плане проверки и вывода ошибок?! | |
|
|
|
|
|
|
|
для: afdm
(20.01.2008 в 12:56)
| | По-моему, не стоит тратить время на такие проверки. Проще привести число к integer (если оно должно быть целым), чем делать проверку являются ли все символы цифрами. Одно отличие, которое может нарушить логику скрипта - возможность передавать отрицательные значения.
В любом случае, вместо проверки соответсвия паттерну /^[\d]*$/ (кстати, такой паттерн пропускает пустую строку, что может вызвать ошибку в SQL-запросе) лучше использовать ctype_digit().
Идет обращение к неопределенным переменным $login, $passw. Вообще в скрипте удаляете слеши и эскейпируете символы в $_POST['var'], а добавляете и проверяете $var.
Паттерн для e-mail ущемляет права владельцев ящиков на, допустим, доменах в зонах info, travel и т.д.
Если храните хеш, то не стоит, наверное, выдавать ошибку, если пароль длиннее 20 символов. И почему-то Вы так ограничиваете пользователя в наборе символов для пароля...На радость взломщикам. | |
|
|
|
|