COOLBOY007, А собственно в чём у них у всех разница? Одна же вроде суть, фильтровать.
Может кто конкретно тогда объяснить что фльтрует каждая функция и от чего?
добавлено спустя:
Вроде всё, норм работает. Теперь можете комментировать недостатки:
$cookie_log='';
$cookie_pass='';
if (isset($_COOKIE['nickname']) && isset($_COOKIE['password'])){
$cookie_log=htmlspecialchars(mysql_escape_string($_COOKIE['nickname']));
$cookie_pass=md5(mysql_escape_string($_COOKIE['password'])+buka);
}else{
if (isset($_COOKIE['sess']) && !empty($_COOKIE['sess'])){
$sess = htmlspecialchars($_COOKIE['sess']);
}else{
$sess = sess();
setcookie("sess", $sess);
}}
$q = mysql_query("SELECT * FROM `$mysql[pref]users` WHERE (`time` >= '".$livetime."' AND `sess` = '".$sess."') OR (`nickname` = '".$cookie_log."' AND `password` = '".$cookie_pass."');");
if(mysql_num_rows($q)!= 0){
$user = mysql_fetch_array($q, 1);
if ($user['nickname'] == $cookie_log && $user['password'] == $cookie_pass && $user['time'] < $livetime){
$sess = sess();
setcookie("sess", '');
}else{
$sess=$user['sess'];
setcookie("sess", '');
}}else{
if (isset($_COOKIE['sess']) && !empty($_COOKIE['sess'])){
$sess = htmlspecialchars($_COOKIE['sess']);
}else{
$sess = sess();
setcookie("sess", '');
setcookie("sess", $sess);
}}
при занесении в базу - mysql real escape string.
При выводе - хтмлспециалшарс
if(isset($_COOKIE['sess']) && !empty($_COOKIE['sess']))
Два раза то зачем проверять?
З.Ы не по русски как то ты кодиш)
JoiNeD, а где дважды? Объясни!
добавлено спустя 2 минуты:
Istsam, это я понял, а что конкретно каждая из них отфильтровывает? 
JoiNeD, а что тебя не устраивает? Первая проверка чтобы узнать задана ли данная переменная. Вторая что бы узнать содержит ли она какие либо данные.
Если вызвать сразу empty(), а куки еще не задавались, то это может привести к NOTICE сообщению
А если проверять только isset(), то можно пустую переменную пропустить, что тоже не желательно
На счет фильтрации лучше все таки использовать mysql_real_escape_string() при запросе к базе. У них с htmlspecialchars() разные таблицы символов для фильтрации на сколько я понимаю.
nitron, с чего это вдруг она выдаст сообщение об ошибке? И ты хоть в одном нормальном скрипте видел подобное?
06 Янв 2012, 3:54