Не работает if ()

NOIP

Гуру форума
Регистрация
17 Фев 2008
Сообщения
327
Реакции
77
Доброго времени суток, Стоит задача, придумать уникальный ключ который будет генерироваться на двух разных серверах и при проверки они должны совпадать, пока только это пришло в голову но это не работает. Вот кусок кода

PHP:
$y = date("Y");
$m = date("m");
$d = date("d");

$y = $y * 2;
$m = $m * 12;
$d = $d * 9;

$finir = $y.$m.$d;

var_dump($finir);
echo "<br />";

$filename = $_GET['filename'];
$hash = $_GET['hash'];
echo "<br />";
var_dump($hash);


if ($_GET['hash'] == $finir)
echo "ssss";
Помогите понять, почему не работает условие? в адресной строке ?hash=4034108189 распечатываю переменные, $hash и $finir

Код:
string(10) "4034108189"

string(13) "4034108189"

Но условие не срабатывает, почему?

string(10) "4034108189"

string(13) "4034108189" Почему здесь string(13)
Может пробелы или чего там. У меня сработало усьо, когда подставил
test/?hash=4034108189 и вывело ssss

string(10) это первая переменная var_dump($finir); а string(13) это var_dump($hash); нету пробелов, где они здесь?

Когда открываю урл /?hash=4034108189
Код:
string(10) "4034108189"

string(13) "4034108189"
hi world
 
Последнее редактирование модератором:
string(10) "4034108189"

string(13) "4034108189" Почему здесь string(13)
Может пробелы или чего там. У меня сработало усьо, когда подставил
test/?hash=4034108189 и вывело ssss
<-------------- добавлено через 1430 сек. -------------->
У вас не выводится нижняя кода, то есть судя по названию темы, не срабатывает условие if()
Когда я скопировал ваш код, и запустил по адресу test/?hash=4034108189
я получаю такой результат
PHP:
string(10) "4034108189"
string(10) "4034108189" ssss

String в двух случаях 10.
Возможно, я что-то не так понял, тогда сорри :)
 
Как уже сказали - if не срабатывает, так как разные длинны строк. Возможно присутствую пробелы в начале и конце строки. Попробуйте прогнать обе переменных через trim перед сравнением...
 
Скорее всего не пробелы, а переносы строк.
Сделайте как тут написано через trim и должно сработать
 
if (intval($_GET['hash']) == intval($finir)) echo "ssss";

объяснять думаю не надо?
 
Probably, when you've copied the text it came with some hidden characters, so a simple comparative like ($_GET['hash'] == $finir) can return false. If you cast it to int like aurora2000 said, it will propably work.
 
Назад
Сверху