# ДоХтор (26.03.2014 / 20:42)Там идет речь не о уязвимости при использовании unserialize, а о опастности не явного приведения типов, при сравнении.
прочитал статью об этой функции - там речь идёт об уязвимости:
=== в помощь.
# ДоХтор (26.03.2014 / 20:42)Там идет речь не о уязвимости при использовании unserialize, а о опастности не явного приведения типов, при сравнении.
прочитал статью об этой функции - там речь идёт об уязвимости:
# L!MP (18.04.2014 / 14:36)Да, я уже понял )
Там идет речь не о уязвимости при использовании unserialize, а о опастности не явного приведения типов, при сравнении.
=== в помощь.
Хотел спросить по поводу rand на mysql, где будет нагрузка меньше ?
$res = mysql_fetch_array(mysql_query("SELECT * FROM `table` WHERE `id` > '0' ORDER BY RAND() LIMIT 1"));$num = mysql_num_rows(mysql_query("SELECT `id` FROM `table`"));
$rnd = rand(1, $num);
$res = mysql_fetch_row(mysql_query("SELECT * FROM `table` WHERE `id` = '" . $rnd . "' LIMIT 1")); venom, первый вариант однозначно не советую. Если записей в таблице десятка 2, то всё будет хорошо. Но если будет больше тысячи записей, то нагрузка будет немаленькая и думать будет долго.
Второй способ не знаю... Но думаю лучше первого. А вообще если погуглить можно найти способы оптимизации первого способа, где всё выполняется в MySQL без участия пхп.
ValekS, Вот именно, что второй вариант и советуют , другого способа пока не видел ...
venom, Еще не забывай что во втором варианте могут быть пустые ИДы, бывает же что удаляешь запись, вот и все, может быть ошибка, короче первый вариант удобнее, но нагрузка большая, второй вариант быстрее и меньшая нагрузка но могут быть проблемы с удалеными записями
# valik619 (26.04.2014 / 19:11)Об этом я знаю , и по этому база заполняется в ручную без веб интерфейса (админке) , так что думаю с этим проблем не будет..
но могут быть проблемы с удалеными записями
venom, Тогда юзай второй вариант, а если планируешь добавить админку то у меня есть решение, если надо будет поищу
# valik619 (26.04.2014 / 19:22)Поищи...
у меня есть решение, если надо будет поищу
venom, Даже вот так будет лучше$num = mysql_results(mysql_query("SELECT count(*) FROM `table`"),0);
$rnd = rand(1, $num);