При "переходе" по JS-URI, на странице показывается значение, возвращенное последним выражением: Code: javascript:document.cookie Лучше бы он функционал написал. А ещё лучше - не занимался бы подобными разводами.
нужно реализовать капчу. вернее, передачу ее правильного значения между скриптами. я делал так. в начале страницы с формой PHP: <?php session_start(); session_register("pic_val"); ?> потом идет HTML: <img src="pic.php"> в pic.php рисуется капча и в ней присваивается значение сеансовой переменной $_SESSION["pic_val"] = $captcha; в скрипте, куда идет пользователь сравниваются значения капчи и введенное PHP: echo $_SESSION["pic_val"].$_POST["pic"] выводится только $_POST["pic"], т.е. сеансовой переменной значение не присваивается. как сделать, чтобы работало?
Помогите, нужен скрипт... Вот описание: Есть определённое количество очков. После скрипт считаем, если больше 50 очков он выводит скрипт по такому принципу: И так далее, например требования очков: 20,50,120,700,1000
if(mt_rand(0,200)%5==0&&$s<50) в каком порядке будут выполняться действия? расставь скобки PHP: $captcha = rand(1000, 9999); $_SESSION["pic_val"] = $captcha;
Проверь наличие session_start(); во всех скриптах (оно должно быть и в pic.php и в файле с формой, до вывода каких-либо данных) и убери session_register("pic_val"); Ну и проверить сниффером наличие айди сессии в передаваемых браузером данных, может что-то режет куки
спасибо =)) дело оказалось в session_start(); почему можно было убрать session_register("pic_val"); ?
Дык оно deprecated, плюс работает только если включено register_globals что вообще идея дурная. http://ru2.php.net/session_register
Piflit Не забудь кэшировать md5 значение , которое вставляешь в сессию. Если капча идет на регистрацию(например) , то не забудь при успешной регистранции сделать $_SESSION["pic_val"]=rand(1000,9999); т.к. если значение этой сессионной переменной не поменять, то юзер сможет регистрировать до бесконечности, вставив однажды нужный код.
всмысле?.. $_SESSION["pic_val"]=rand(1000,9999); почему-то не пашет... использовал session_destroy(); ЗЫ какое значение у параметров функции bcmod();?
В смысле, что когда рандомишь то, что будет выведенно на картинке, в соответствующую переменную сессии заносишь 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, то хэширование обязательно, если через сессии, то просто желательно...
Не сочтите за флейм, но разницы в плане "надежности" между хранением в $_SESSION самого кода и его md5 нет никакой - без шелла/инклуда/дыры-на-просмотр-произвольных-переменных на сервере с капчей пользователь содержимое $_SESSION узнать не может.
у меня есть в бд таблица с полями, у которых id (клолонка типа SERIAL) имеет значения 1, 2 и 3. (3 записи). как сделать, чтобы при удалении второй записи id третьей записи менялся с 3 на 2?
Автоматически не получится. А зачем? PHP ведь все равно по порядку выдирает из базы, не зачем использовать id, пронумеруй записи при выводе
ой, я синтаксиса не знаю, но там через условия то можно наверное написать заносишь функцию удаления в перменную, потом через if() проверяешь её на существования и в случает если она возвратит тру, в болке if {} выполняешь код от Macro =) Сори: если я бред пишу, но вроде так я пшп не знаю =(
$ok = mysql_query("DELETE FROM tablica WHERE id=3"); if ($ok) { mysql_query("UPDATE tablica SET id=2 WHERE id=3"); } ну вот так наверное, или я чего не так понял? 0_о