2012-11-13 115 views
-1

我是新的PHP,但我已經做了一個註冊腳本,工作正常。但問題是每次按下提交按鈕來檢查我的錯誤,我將進入一個新的頁面。PHP錯誤顯示

我的問題是我如何讓錯誤出現在同一頁上?

我用於html表單的代碼。

我想錯誤顯示在我犯的錯誤div框任何想法?

<div id="RegistrationFormLayout"> 
<h1>Registration Page</h1> 
     <div id="ErrorMessage"></div> 
      <form action="script/registration.php" method="post"> 
      <label for="Username">Username</label> 
      <input type="text" name="Regi_username"> 

      <label for="FirstName">FirstName</label> 
      <input type="text" name="Regi_Firstname"> 

      <label for="LastName">LastName</label> 
      <input type="text" name="Regi_Lastname"> 

      <label for="EamilAddress">Regi_EmailAddres</label> 
      <input type="text" name="Regi_EmailAddres"> 

      <label for="Password">Password</label> 
      <input type="password" name="Regi_password"> 

      <button type="submit" value="Submit" class="Login_button">Login</button> 
     </form>   
     </div> 
+1

使用會話錯誤信息存儲爲字符串,並顯示在同一頁上是否存在 – GBD

+1

當你點擊提交表單,它重定向到'script/registration.php'因爲你的'action =「script/registration.php」'。 – irrelephant

+0

表單在'registration.php'中? – itachi

回答

0

如果我理解正確,那麼您希望表單驗證錯誤在那裏。這是一種非常常見的模式,簡單的解決方案是始終將窗體的action屬性設置爲顯示窗體的同一頁面。這允許您在嘗試顯示錶單之前執行表單處理(如果存在$ _POST值)。如果驗證成功,則將重定向頭髮送到「下一步」頁面(使用header())。

的基本模式是這樣的(非常非常簡單的PHP)

<?php 

if(count($_POST)) { 
    $errors = array(); 
    $username = trim($_POST['Regi_username']); 
    if(empty($username)) { 
    $errors[] = 'username is required'; 
    } 

    if(count($errors) == 0) { 
    header('Location: success.php'); 
    die(); 
    } 
} 
<ul class="errors"> 
    <?php foreach($errors as $error) { ?> 
    <li><?php echo $error;?></li> 
    <?php } ?> 
</ul> 
+0

Okey謝謝我會檢查出來;) –

+0

我使用<?php include'script/registration.php'; ?>我在同一個registration.php中有表單,然後工作 –