2017-07-17 8 views
1

私は<?php echo $_SERVER['PHP_SELF']; ?>を使用しています。 私はページを更新するときにフォームを送信した後、それは何度もフォームを送信します。更新ページのデータを送信しないようにするにはPHP ['PHP_SELF']

最新のページにフォームを再送信しないようにしてください。私は、ヘッダーを使用したくない

if (isset($_POST["patientName"])){ 
    // set the PDO error mode to exception 
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
    $sql = "INSERT INTO `inpatient`(`patientId`, `patientName`, `guardianName`, 
    `age`, `gender`, `mobile`, `address`, `city`, `symptoms`, `reference`, `date`, `time`, `doctorName`, `email`) 
    VALUES('$patientId', '$patientName', '$guardianName', '$age', '$gender', '$mobile', '$address', '$city', '$symptoms', 
    '$reference', '$date', '$time', '$doctorName', '$email')"; 


    $conn->exec($sql); 
} 
    echo ' 
     <div style="position:absolute; bottom:0; left:0; z-index:1000; " class="alert alert-icon-left alert-success alert-dismissible fade in mb-2" role="alert"> 
            <button type="button" class="close" data-dismiss="alert" aria-label="Close"> 
             <span aria-hidden="true">x</span> 
            </button> 
            <strong>Well done!</strong> You successfully entered the <a href="#" class="alert-link">Patient</a> data. 
           </div> 
    '; 
} 
    catch(PDOException $e) 
    { 
    echo $sql . "<br>" . $e->getMessage(); 
    } 

$conn = null; 



?> 

は、ここではPHPのコードです。私は同じページに成功メッセージを印刷しています

+0

このページのコードを表示します。 – Tajgeer

+2

[ページの最新表示のために提出を避けるための最良の方法](https://stackoverflow.com/questions/5690541/best-way-to-avoid-the-submit-due-to-a-a-ページの更新) – Ali786

+0

これは、ポストリクエストを処理した後にリダイレクトする必要があることを変更するために、ブラウザの意図された動作です(この場合はリクエストを再作成します)。 – Filip

答えて

0

フォームが提出された後に応答を表示しないでください。他のページにリダイレクトするだけです。

header('Location: /path/to/record'); 
exit; 
+0

私はヘッダーを使用したくない、私は同じページに成功メッセージを印刷するのにechoを使用しています –

+0

ヘッダーを使用しない場合は、まずデータを処理した後に$ _POST変数を設定解除できます。例として、unset($ _ POST);次のステップで、header( 'Location:'。$ _ SERVER ['PHP_SELF'])を使用して同じページのページをリダイレクトします。 – Jigsdatta

関連する問題