PHP If和Else操作不正确

PHP If和Else操作不正确,php,if-statement,Php,If Statement,下面的PHP应该确定是否存在?purpose=email,然后确定是否存在sting包含?emailaddress。如果存在电子邮件地址,则会触发一组脚本,如果没有,则会触发另一组脚本。但不管怎样,它的行为就像emailaddress!=''

下面的PHP应该确定是否存在
?purpose=email
,然后确定是否存在sting包含
?emailaddress
。如果存在电子邮件地址,则会触发一组脚本,如果没有,则会触发另一组脚本。但不管怎样,它的行为就像
emailaddress!=''
<?php if($_GET['purpose'] == 'email') {?>
<?php   if($_GET['emailaddress'] !== '') {?>
  <script type="text/javascript">
    alert('<?php echo $_GET['emailaddress'];?>');
    window.setTimeout(function(){
      $('.dirops .loadpanel div span', window.parent.document).html('Complete');
      $('.dirops .loadpanel', window.parent.document).removeClass('slideup');
    },1000);
  </script>
<?php } else { ?>
  <script type="text/javascript">
    window.setTimeout(function(){
      $('.dirops .loadpanel div span', window.parent.document).html('Loading');
      $('.dirops .confirmemail', window.parent.document).addClass('slideup');
    },1000);
    $('#confirmemail', window.parent.document).attr('href', 'http://www.golfbrowser.com/A4/directions.php?purpose=email&start=<?php echo $_GET['start'];?>&end=<?php echo $_GET['end'];?>')
  </script>
<?php   } ?> 
<?php } ?> 

警报(“”);
setTimeout(函数(){
$('.dirops.loadpanel div span',window.parent.document).html('Complete');
$('.dirops.loadpanel',window.parent.document).removeClass('slideup');
},1000);
setTimeout(函数(){
$('.dirops.loadpanel div span',window.parent.document).html('load');
$('.dirops.confirmemail',window.parent.document).addClass('slideup');
},1000);
$('confirmemail',window.parent.document).attr('href','http://www.golfbrowser.com/A4/directions.php?purpose=email&start=&end=')
有什么想法吗


奇妙的

使用:
array\u key\u exists('emailaddress',$\u GET)
而不是
$\u GET['emailaddress']!=''

尝试
如果($\u GET['emailaddress']!=“”)
,即
=而不是
==

不知何故,我认为如果/else不起作用


尝试
var\u dump($\u GET)
也许
isset($\u GET['emailaddress'])
可以帮助您。

尝试更改前两行:

<?php if(array_key_exists('purpose', $_GET) && $_GET['purpose'] == 'email') {?>
<?php   if(array_key_exsist('emailaddress', $_GET) && $_GET['emailaddress'] != '') {?>


这是示例代码,对吗?如果不转义,您不会直接将查询字符串变量打印到页面中,对吗?“
echo$\u-GET['emailaddress'];
”--颤抖--您使用什么url访问脚本?
$\u-GET['emailaddress']
可能包含,例如,
'(任意JavaScript)
@RobinKnight危险来自我向您发送的链接到
?purpose=email&emailaddress=Hi')%3B%20警报('This%202nd%20alert%20is%20a%20XSS%20attack.
或类似的+1.我想象他的
如果因为他也在使用类型比较而失败,并且如果GET参数不存在,数组值是
null
,并且
null!='
true
。澄清一下:当emailaddress丢失时,它可能被设置了到
null
,和
null!=''
,导致“成功”条件运行。最好使用
if(空($\u GET['emailaddress'))
<?php if(array_key_exists('purpose', $_GET) && $_GET['purpose'] == 'email') {?>
<?php   if(array_key_exsist('emailaddress', $_GET) && $_GET['emailaddress'] != '') {?>