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