Добрый день. Столкнулся с проблемой: Создаю ключ, сохраняю его в сессии, он передается get - ом на другую страницу через созданную в ниже в приемре ссылку, там сверяется ключ из сессии с тем что в массиве GET. $code = md5('fhj34985jnjfnjvnj5867'); session_start(); $_SESSION['code'] = $code; echo "<a href='money.php?code=".$_SESSION['code']."'>Проверить</a>"; ______________________________________________________________ принимающий скрипт(money.php). session_start(); $val = ($_SESSION['code']==$_GET['code']); var_dump($val); echo '<pre>'; print_r($_SESSION['code']); echo '<br>'; print_r($_GET['code']); все ок, имеем в браузере следуещее: boolean true 1c6c2ed4edb1e4fe0fb60e5f6b28106f 1c6c2ed4edb1e4fe0fb60e5f6b28106f НО! мне нужен случайный ключ, я меняю генерацию ключа, добавляю к хэшируемой строке rand(1, 25000) и все ломается. $code = md5(rand(1, 25000).'fhj34985jnjfnjvnj5867'); session_start(); $_SESSION['code'] = $code; echo "<a href='money.php?code=".$_SESSION['code']."'>Проверить</a>"; ________________________________________________________________ теперь имеем в браузере: boolean false 04e559ae3ecee15b066bb1fe8fde124d 6d8a4ef0792e78cd5157b0ba83402ccc Помогите разобраться, почему при сохранению в сессию ключ меняется? Пробовал различные генераторы не помогает, как только добавлю к ключу рандомно генерируемое значение вылезает проблема. Пробовал сохранить вместо сессий в базу или куки тоже самое....
видимо успеваешь где-то еще раз его сменить. Код (PHP): session_start(); if (empty($_SESSION['code'])) { $code = md5(rand(1, 25000).'fhj34985jnjfnjvnj5867'); $_SESSION['code'] = $code; } else { $code = $_SESSION['code']; }
в том то и дело что не меняю, я описал проблему в топике максимально упрощая, кроме того что написанно в скриптах больше ничего нет. Сначала столкнулся в среде фреймворка, потом все упростил и смоделировал тоже самое максимально просто в двух пхп файлах на пустом домене..... А кроме того с хэшом то работает. Только если добавить в него рандом вылазеет бок.
if (empty($_SESSION['code'])) { $code = md5(rand(1, 25000).'fhj34985jnjfnjvnj5867'); $_SESSION['code'] = $code; } действительно помогло, спасибо. Добавлено спустя 1 минуту: только не пойму почему менялось содержимое сессии....в скрипте не было кода с повторной записью...
Чудес не бывает, ищите редирект, лишни инклюд или типа того. На чистом index.php => money.php без хтабсцессов процитированный код будет работать 100пудово.