我似乎遇到了运行PHP 5.2的服务器运行以下代码的问题。
<?php
if (isset($mobile , $email , $key , $srcKey) && $srcKey === 'test') {
echo(sha1(($mobile.$email.$key)));
}
else {
die('Invalid Values');
}
?>
当以下请求发布到脚本时,我的5.2服务器上的一切正常:
http://www.test.com/php/script.php?email=caiger01%40hotmail.co.uk&mobile=07446337910&key=xpLOlsGyZq2NM4eYPUVHn8EJ9ahVfj9O&srcKey=test
但是在PHP 5.4中,似乎isset语句无论如何都返回false?
答案 0 :(得分:4)
似乎你使用的是注册全局变量,它不应该被使用,并且已经被弃用了。从PHP 5.4中删除。
答案 1 :(得分:1)
PHP 5.4没有为您创建这些变量的register_globals。
编写此代码的正确方法是:
<?php
if (isset($_GET['mobile'] , $_GET['email'] , $_GET['key'] , $_GET['srcKey']) && $_GET['srcKey'] === 'test') {
echo(sha1(($_GET['mobile'].$_GET['email'].$_GET['key'])));
} else {
die('Invalid Values');
}
?>