Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

02.01.2008, 02:39
|
|
Познающий
Регистрация: 01.01.2008
Сообщений: 50
Провел на форуме: 187422
Репутация:
71
|
|
Проверь наличие session_start(); во всех скриптах (оно должно быть и в pic.php и в файле с формой, до вывода каких-либо данных) и убери session_register("pic_val");
Ну и проверить сниффером наличие айди сессии в передаваемых браузером данных, может что-то режет куки
|
|
|

02.01.2008, 02:47
|
|
Banned
Регистрация: 11.08.2006
Сообщений: 1,522
Провел на форуме: 5128756
Репутация:
2032
|
|
Сообщение от Noiro
Проверь наличие session_start(); во всех скриптах (оно должно быть и в pic.php и в файле с формой, до вывода каких-либо данных) и убери session_register("pic_val");
Ну и проверить сниффером наличие айди сессии в передаваемых браузером данных, может что-то режет куки
спасибо =)) дело оказалось в session_start();
почему можно было убрать session_register("pic_val"); ?
|
|
|

02.01.2008, 02:51
|
|
Познающий
Регистрация: 01.01.2008
Сообщений: 50
Провел на форуме: 187422
Репутация:
71
|
|
Сообщение от Piflit
почему можно было убрать session_register("pic_val"); ?
Дык оно deprecated, плюс работает только если включено register_globals что вообще идея дурная.
Caution
If you want your script to work regardless of register_globals, you need to instead use the $_SESSION array as $_SESSION entries are automatically registered. If your script uses session_register(), it will not work in environments where the PHP directive register_globals is disabled.
http://ru2.php.net/session_register
|
|
|

02.01.2008, 03:27
|
|
Познающий
Регистрация: 09.09.2007
Сообщений: 66
Провел на форуме: 188412
Репутация:
41
|
|
Piflit
Не забудь кэшировать md5 значение , которое вставляешь в сессию.
Если капча идет на регистрацию(например) , то не забудь при успешной регистранции сделать $_SESSION["pic_val"]=rand(1000,9999); т.к. если значение этой сессионной переменной не поменять, то юзер сможет регистрировать до бесконечности, вставив однажды нужный код.
|
|
|

02.01.2008, 04:34
|
|
Banned
Регистрация: 11.08.2006
Сообщений: 1,522
Провел на форуме: 5128756
Репутация:
2032
|
|
Сообщение от Meanor
Piflit
Не забудь кэшировать md5 значение , которое вставляешь в сессию.
всмысле?..
Сообщение от Meanor
Piflit
Если капча идет на регистрацию(например) , то не забудь при успешной регистранции сделать $_SESSION["pic_val"]=rand(1000,9999); т.к. если значение этой сессионной переменной не поменять, то юзер сможет регистрировать до бесконечности, вставив однажды нужный код.
$_SESSION["pic_val"]=rand(1000,9999); почему-то не пашет... использовал session_destroy();
ЗЫ какое значение у параметров функции bcmod();?
Последний раз редактировалось Piflit; 02.01.2008 в 04:58..
|
|
|

02.01.2008, 05:33
|
|
Познающий
Регистрация: 09.09.2007
Сообщений: 66
Провел на форуме: 188412
Репутация:
41
|
|
В смысле, что когда рандомишь то, что будет выведенно на картинке, в соответствующую переменную сессии заносишь md5 хэш того отрандомленного числа/слова. Потом при проверке делаешь что-то вроде :
if($_SESSION["pic_val"] == md5($_POST['capcha']) {все нормально}
else {все плохо}
(это для того, чтобы "злоумышленник" не брал нужный капченый код из сессии)
А насчет session_destroy(); , это, впринципе, даже лучше... ^^
Про bcmod()
string bcmod ( string left_operand , string modulus )
целый остаток от деления левого числа на правое
PHP код:
<?php
echo bcmod('4', '2'); // -> 4=2*2+0 выведет 0
echo bcmod('2', '4'); // -> 2=4*0+2 выведет 2
?>
По посту внизу:
Скажем так, что если все делается через cookies, то хэширование обязательно, если через сессии, то просто желательно...
Последний раз редактировалось Meanor; 02.01.2008 в 06:02..
|
|
|

02.01.2008, 05:48
|
|
Познающий
Регистрация: 01.01.2008
Сообщений: 50
Провел на форуме: 187422
Репутация:
71
|
|
Сообщение от Meanor
if($_SESSION["pic_val"] == md5($_POST['capcha']) {все нормально}
else {все плохо}
(это для того, чтобы "злоумышленник" не брал нужный капченый код из сессии)
Не сочтите за флейм, но разницы в плане "надежности" между хранением в $_SESSION самого кода и его md5 нет никакой - без шелла/инклуда/дыры-на-просмотр-произвольных-переменных на сервере с капчей пользователь содержимое $_SESSION узнать не может.
|
|
|

02.01.2008, 22:54
|
|
Banned
Регистрация: 11.08.2006
Сообщений: 1,522
Провел на форуме: 5128756
Репутация:
2032
|
|
у меня есть в бд таблица с полями, у которых id (клолонка типа SERIAL) имеет значения 1, 2 и 3. (3 записи). как сделать, чтобы при удалении второй записи id третьей записи менялся с 3 на 2?
|
|
|

02.01.2008, 22:57
|
|
Постоянный
Регистрация: 11.11.2006
Сообщений: 595
Провел на форуме: 1845062
Репутация:
1079
|
|
Сообщение от Piflit
у меня есть в бд таблица с полями, у которых id (клолонка типа SERIAL) имеет значения 1, 2 и 3. (3 записи). как сделать, чтобы при удалении второй записи id третьей записи менялся с 3 на 2?
mysql_query("UPDATE tablica SET id=2 WHERE id=3")
Или тебе это хочется автоматически? А зачем?
|
|
|

02.01.2008, 23:39
|
|
Banned
Регистрация: 11.08.2006
Сообщений: 1,522
Провел на форуме: 5128756
Репутация:
2032
|
|
Сообщение от Macro
mysql_query("UPDATE tablica SET id=2 WHERE id=3")
гы. конечно автоматически))
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|