2012-11-18 23 views
0

我的问题检查一个字符在URL中出现一次

我要检查如果URL中包含一个?如果属实,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它addds参数的URL。这意味着消息已发送。但有时如果email字段不正确,它仍然会向网址添加?,因此网址看起来像website.com?

现在,我正在使用jQuery slideDown延迟我的联系表单以吸引客户的注意力,并且每次页面刷新时,都需要几秒钟才能到达slideDown。我想要解决这个问题,如果URL中有一个?,因为如果url看起来website.com?这意味着电子邮件地址是错误的。

希望这是有道理的。

+0

从技术上讲,URL中不应该多出一个'?'。您需要处理哪些类型的网址? –

+0

好的。我会更新问题 – nasty

+1

你应该修复你的js,而不是添加php来解决js的问题 – 2012-11-18 22:40:43

回答

4

为最初的问题(以防万一有人会发现在谷歌这个问题)的解决方案是使用substr_count

if(substr_count($text, '?') == 1){ 
    // do something 
} 

解决您的问题的方法是检查参数msgsent是否已设置:

if(!isset($_GET['msgsent'])){ 
    // message not sent - do something 
} 
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 
    } 
} 
相关问题