0

私の質問

?URLに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>';
}

私の問題

?発生が1回だけかどうかを確認する方法がわかりません。手伝ってもらえますか?ありがとうヒープ

理由

私のウェブサイトに連絡フォームがあり、誰かがそれを送信すると、URLにパラメータが追加されてのようになりますwebsite.com?msgsent=1。これは、メッセージが送信されたことを意味します。ただし、emailフィールドが正しくない場合でも、URLにaが追加される?ため、URLはのようになりwebsite.com?ます。

現在、お問い合わせフォームでjQueryslideDown遅延を使用して顧客の注意を引き付けており、ページが更新されるたびに、に数秒かかりますslideDown。URLにが含まれている場合は、これを克服したいと思います。URLがそれを意味?しているように見える場合はwebsite.com?、メールアドレスが間違っているためです。

これが理にかなっていることを願っています。

4

2 に答える 2

4

最初の質問の解決策(誰かがグーグルでこの質問を見つけた場合に備えて)は、以下を使用することsubstr_countです:

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

msgsent問題の解決策は、パラメータが設定されているかどうかを確認することです。

if(!isset($_GET['msgsent'])){
    // message not sent - do something
}
于 2012-11-18T22:33:44.433 に答える
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
   }
}
于 2012-11-18T22:33:40.060 に答える