2017-05-02 10 views
-2

私はPHPを初めて使用しており、以下を達成しようとしています。ユーザーが送信ボタンをクリックすると、PHPファイルをチェックし、エラーが見つかった場合は実行を停止してエラーメッセージを表示するか、続行する必要があります。PHP内のフォームからエラーをキャッチ

<?php include('mobile_check.php'); ?> 
<div class="tab-pane active" role="tabpanel" id="step1"> 
<div class="mobile-grids"> 
    <div class="mobile-left text-center"> 
     <img src="images/mobile.png" alt="" /> 
    </div> 
    <div class="mobile-right"> 
     <h4>Enter your mobile number</h4> 
     <label>+91</label><input type="text" class="mobile-text" name="req_number" value="" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = '';}" required=""> 
    </div> 
    <?php echo $mobileError; ?> 
</div> 
<ul class="list-inline pull-right"> 
    <li><button type="button" name="mob_submit" class="mob-btn btn btn-primary next-step">Next</button></li> 
</ul> 
</div> 

そして、私のPHPコードは次のような例外である必要があり

<?php 
if(isset($_POST['mob_submit'])) { 
    if (empty($req_number)) { 
     $error = true; 
     $mobileError = "Please Enter Mobile No."; 
    } else if (!preg_match("/^[0-9 ]{10}+$/",$req_number)) { 
     $error = true; 
     $mobileError = "Please Reenter correct no."; 
    } 
} 
?> 
+1

コードをフォーマットすると、スクロールする必要はありません。ありがとうございます。 – nogad

+0

"実行を停止し、エラーメッセージを表示するか、続行してください。だからいつそれは止まりますか?それはいつですか? – nogad

答えて

1

1オプションです:

私は現在持っているコードがある試し以内

try { 
    if(isset($_POST['mob_submit'])) { 
     if (empty($_POST['req_number'])) { 
      throw new exception("Please Enter Mobile No."); 
     } else if (!preg_match("/^[0-9 ]{10}+$/",$_POST['req_number'])) { 
      throw new exception("Please Reenter correct no."); 
     } 
    } 
} catch (Exception $e) { 
    echo $e->getMessage(); 
} 

ブロック例外がスローされた場合、すぐにcatchブロックにジャンプします。提供されたサンプルでは、​​私は単に例外メッセージをecho'dしました。

+0

私は本当にtry \ catchをもっと使うべきです。 – nogad

+0

それは働いていません...私が送信ボタンをクリックしている場合、次のステップに進んでいますが、req_numberは空です。 – user2018030

+0

フォームは投稿を使用しているか取得しています。最も簡単な方法は、送信したURLがアドレスバーに?req_number = 0と表示されているかどうかです。また、コードを更新しました。私は完全なPHPを提供していないと思いますが、フォーム入力の変数は$ _POSTのスーパーグローバルから取られていませんでした。実際に使用している場合は、$ _POSTを$ _GETに変更するようにしてください。 – Peter