我的问题
我想检查网址是否包含一个?
,如果为true,则do something
我的PHP
我目前正在使用此脚本。
$lp_uri = $_SERVER['REQUEST_URI']; // or taken from another source //
if( strpos($lp_uri, '?') !== false ){
echo '<script>alert("one question mark");</script>';
}
我的问题
我不确定如何检查?
是否只出现 。你能帮忙吗?谢谢堆
原因
我的网站上有联系表单,一旦有人提交,就会在网址中添加一个参数,使其看起来像website.com?msgsent=1
。这意味着邮件已发送。但有时如果email
字段不正确,它仍会在网址中添加?
,以便网址看起来像website.com?
。
现在,我在联系表单上使用jQuery slideDown
延迟来吸引客户注意力,每次页面刷新时,slideDown
只需几秒钟。如果网址中包含?
,我想克服此问题,因为如果网址看起来website.com?
,则表示电子邮件地址错误。
希望这是有道理的。
答案 0 :(得分:4)
初始问题的解决方案(以防万一有人会在谷歌上发现此问题)是使用substr_count
:
if(substr_count($text, '?') == 1){
// do something
}
问题的解决方案是检查是否设置了msgsent
参数:
if(!isset($_GET['msgsent'])){
// message not sent - do something
}
答案 1 :(得分:0)
使用偏移可选参数
的可能解决方案<?php
if( strpos($lp_uri, '?') !== false ){
//1 or more question marks
$pos = strpos($lp_uri, '?'); //Grab the position of it
if(strpos($lp_uri, '?',$pos) === false) {
//No more after the first, hence only 1
}
}