2017-02-25 12 views
0

検証後に別のページにフォームデータを渡したかったのです。
ユーザーは次のページに進むために正しいデータを入力する必要があります。
最初のページからデータを取得しようとしましたが、うまくいかないようです。
提出後に別のページにデータを渡すことはできません

<!DOCTYPE html> 
<html> 

<head> 

<meta charset ="utf-8"> 
<link rel="stylesheet" type="text/css" href="style.css"> 
<title> 
Register 
</title> 

</head> 

<body> 
<?php 
// define variables and set to empty values 
$firstNameErr = $surNameErr =""; 
$firstName = $surName = ""; 


if ($_SERVER["REQUEST_METHOD"] == "POST") { 

    $valid = true; 

    if (empty($_POST["firstName"])) { 
    $firstNameErr = "FirstName is required"; 
    $valid = false; 
    } else { 
    $firstName = test_input($_POST["firstName"]); 
    // check if name only contains letters and whitespace 
    if (!preg_match("/^[a-zA-Z ]*$/",$firstName)) { 
     $firstNameErr = "Only letters and white space allowed"; 
    } 

    } 

    if (empty($_POST["surName"])) { 
    $surNameErr = "surName is required"; 
    $valid = false; 
    } else { 
    $surName = test_input($_POST["surName"]); 
    // check if name only contain letters and whitespace 
    if (!preg_match("/^[a-zA-Z ]*$/",$firstName)) { 
     $firstNameErr = "Only letters and white space allowed"; 
    } 
    } 


    if($valid){ 
    header('Location: successReg.php'); 
    exit(); 
    } 
} 

function test_input($data) { 
    $data = trim($data); 
    $data = stripslashes($data); 
    $data = htmlspecialchars($data); 
    return $data; 
} 
?> 

<h2>PHP Form Validation Example</h2> 
<p><span class="error">* required field.</span></p> 
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"> 

    FirstName <input type="text" name="firstName" value="<?php echo $firstName;?>"> 
    <span class="error">* <?php echo $firstNameErr;?></span> 
    <br><br> 

    SurName <input type="text" name="surName" value="<?php echo $surName;?>"> 
    <span class="error">*<?php echo $surNameErr;?></span> 
    <br><br> 



    <input type="submit" name="submit" value="Submit"> 

</form> 
</body> 
</html> 

上記のコードは登録フォームを示しています。
送信ボタンを押した後、successReg.phpに送信します
ここにsuccessReg.phpコードです。 successReg.phpページの最後の行の

<!DOCTYPE html> 
<html lang= "en"> 
<head> 
<meta charset = "UTF-8" /> 
<title> Register successfully</title> 
</head> 
<body> 

<?php 

    /* Get each parameter value from the request stream and using ternary if operators check each parameter to see if it was set. If it is, store it in a variable. */ 

    $firstName = filter_has_var(INPUT_POST, 'firstName'); 
    $surName = filter_has_var(INPUT_POST, 'surName' ); 


    $firstName = filter_var($firstName , FILTER_SANITIZE_STRING , FILTER_FLAG_NO_ENCODE_QUOTES); 
    $firstName = filter_var($firstName,FILTER_SANITIZE_SPECIAL_CHARS); 

    $surName = filter_var($surName , FILTER_SANITIZE_STRING , FILTER_FLAG_NO_ENCODE_QUOTES); 
    $surName = filter_var($surName,FILTER_SANITIZE_SPECIAL_CHARS); 


    echo" $firstName"; 

?> 
</body> 
</html> 

、私が送信されたページからのデータがデータを取得できるかどうかを見ることがしようとしてメートル。
また、successReg.phpページでは、すべてのデータをデータベース「
」に挿入することを想定しています。テスト目的のためですが、動作しないようです。
データがフォームページから正常に渡された場合、私はSQLコードを続行します。
は間違いですか?何が恋しいですか?

答えて

0

あなたは、表示する値がわからずに成功ページにユーザーを送ります。あなたはこれをいくつかの方法で行うことができます。

あなただけ渡すことができますが、新しいページにそれらを送信すると、あなたは、最新のデータベースの挿入のIDを修正して、成功ページ(ないあなたがアクティブまだことを持っているよりも)上の結果を拾うことができ

、または

値を直接GETとして表示し、成功ページに表示します。このように

+0

if($valid){ echo '<a href="successReg.php?firstName=' . $firstName . '&surName=' . $surName . '">Continue on</a>'; exit(); } 
は、すべての検証が真であるとリダイレクト直後successReg.phpにデータを渡す方法はあります? – ccs

+0

私が書いたコードを試してみてください。うまくいくはずです。 –

+0

@ccsどうやって行きましたか? –

関連する問題