|
|
|
|
|
для: Trianon
(07.02.2010 в 13:49)
| | Не мерял, если чесно... Я инициализацию делаю совершенно иначе, еще медленнее, но намного симпотичнее. А вот на счет удобнее прочесть и понять - у каждого свое видение удобства. Меня пугают собаки. С детства.)))
Потому что если предполагается возможность ошибки - знач что то не так, как задумано.
А если
>я ошибусь в написании лексем _POST и user.
или
если я напишу в первой записи 1-е упоминание _POST/user с ошибкой , а 2-е - правильно .
то какой смысл продолжать работу скрипта? | |
|
|
|
|
|
|
|
для: Николай2357
(07.02.2010 в 13:19)
| | Никоим образом не желая навязывать свою точку зрения, скажу лишь, что по-моему вред от собаки сильно зависит от того насколько велик контекст, ею блокируемый.
И сравнивая
$user = isset($_POST['user'])?$_POST['user']:null;
$user = @$_POST['user'];
|
я выберу второе. Потому что
1) вторую запись легче прочесть и понять. А контекст блокирования диагностики - минимален.
2) первая запись не поможет, если я ошибусь в написании лексем _POST и user.
3) первая запись помешает, если я напишу в первой записи 1-е упоминание _POST/user с ошибкой , а 2-е - правильно .
4) если сравнить скорость, можно схватиться за голову. Хотя это и меньшая боль. | |
|
|
|
|
|
|
|
для: t3ma
(07.02.2010 в 13:05)
| | Символ собаки - вещь вредная. Лучше инициализировать переменные явно
<?php
$user = isset($_POST['user'])?$_POST['user']:null;
|
но без собаки, как в первом варианте, еще хуже. Хотя если собака, то должна быть и потом, в запросе. А что касаемо mysql_num_rows(), то единственное значение лучше вытаскивать mysql_result(), для того она и. | |
|
|
|
|
|
|
|
для: Николай2357
(07.02.2010 в 12:53)
| | Зачем символ собаки ? его использовать не нужно
что за условие if (mysql_result($res,0) < 1) ? для этого есть функция mysql_num_rows() | |
|
|
|
|
|
|
|
для: Desh
(06.02.2010 в 23:06)
| |
<?php
$user = @$_POST['user'];
$pass = @$_POST['pass'];
$res = mysql_query("SELECT COUNT(*) AS login
FROM users
WHERE user = '". mysql_real_escape_string($user) ."'
AND pass = '". mysql_real_escape_string($pass) ."'"
);
if (mysql_result($res,0) < 1)
{
die("die");
}
|
так еще меньше бессмысленного кода. Только пароли в явном виде хранить - ооочень зря. | |
|
|
|
|
|
|
|
для: Тень&
(06.02.2010 в 23:03)
| | Ясно.
А функция занимается тем, что экранирует спец. символы) | |
|
|
|
|
автор: Тень& (06.02.2010 в 23:03) |
|
|
для: Тень&
(06.02.2010 в 23:02)
| | > А чем лучше?
Вернее даже так: меньше бессмыленного кода. | |
|
|
|
|
автор: Тень& (06.02.2010 в 23:02) |
|
|
для: Desh
(06.02.2010 в 22:56)
| | > Конечно не проверяет, это я не так выразился
Попробуйте сформулировать правильно. Что делает эта функция?
> А чем лучше?
Тем, что меньше кода.
Хотя, я тут вчитался в комментарий автора этого кода:
> данная проверка даст TRUE, если была sql инъекция
Полнейшая, как говорится, чушь. Но статью, очевидно, не поправят. | |
|
|
|
|
|
|
|
для: Тень&
(06.02.2010 в 22:26)
| | >mysql_real_escape_string() не проверяет данные.
Конечно не проверяет, это я не так выразился.
А чем лучше? | |
|
|
|
|
автор: Тень& (06.02.2010 в 22:26) |
|
|
для: Desh
(06.02.2010 в 20:17)
| | mysql_real_escape_string() не проверяет данные.
Лучше, естественно, использовать mysql_num_rows(), необходимо лишь добавить атрибут BINARY на столбец pass, либо использовать оператор с таким же названием. Автор статьи, видимо, не подозревал о таких вещах. | |
|
|
|
|