2013-11-06 2 views
0

Я хочу, чтобы пользователь перешел на следующую страницу после нажатия кнопки отправки, но вместо этого прямо, когда эта страница загружает ее, перенаправляет пользователей на следующую страницу. Также этот код дает мне ошибки в выражении «else» над заголовком.Почему это оператор if перенаправляет пользователей на следующую веб-страницу

<center> 

<?php 
     include "functions.inc"; 
     $datafile = "users.dat"; 
     if (array_key_exists('submit', $_POST)) 
// Function to check the password length 
      { 
      $the_user = $_POST['newuser']; 
      var_dump($the_user); 

      $users = arrayfile_to_array($datafile); 
      // Validate user name and password 

      // If valid, save to the file of users 
      $users[] = $the_user; 
      array_to_arrayfile($users, $datafile); 
      } 
      else 
      { 
      if (!file_exists($datafile)) // Data file doesn't exist, so create it 
      { 
       $users = array(); 
     array_to_arrayfile($users, $datafile); 
      } 
      else 
      { 
       $users = arrayfile_to_array($datafile); 
      } 
      else 
      { 
      if (array_key_exists('submit', $_POST))  
      { 
      header('Location: 04invoice.php'); 
      } 
      } 








?> 
    <form name="<?php $_SERVER["PHP_SELF"] ?>" method="post"> 
     Username: <input type="text" name="newuser[username]"> 
     <br>Password: <input type="text" name="newuser[password]"> 
     <br>Confirm Password: <input type="text" name="newuser[confirm_password]">  
      <br>Email: <input type="text" name="newuser[mail]"> 


     </select><br> <input type="submit" name="submit" value="Sign Up"> 
    </form> 

</center> 
+4

Отформатируйте свой код .. похоже, что у вас есть 2 elses назад –

+1

Вы не можете использовать 'header()' после того, как вы выведете что-то на страницу. Этот тег '

' предотвратит успешное выполнение любого вызова 'header()'. – afuzzyllama

+0

У вас есть 'if'' else'' else'. Вы имели в виду использовать 'elseif'? –

ответ

0

У вас есть два еще находится в пути, который является семантически бессмысленным и синтаксически недопустим:

 if (!file_exists($datafile)) // Data file doesn't exist, so create it 
     { 
      $users = array(); 
    array_to_arrayfile($users, $datafile); 
     } 
     else 
     { 
      $users = arrayfile_to_array($datafile); 
     } //HERE ------------------------------------------- 
     else 
     { 
     if (array_key_exists('submit', $_POST))  
     { 
     header('Location: 04invoice.php'); 
     } 
     } 

Что «еще еще» что делать?

Я также предлагаю правильно отступы от вашего кода; это позволит увидеть, какие части вашей логики соответствуют друг другу намного легче.

Смежные вопросы