2015-02-06 39 views
0

在我的index.php頁面上獲得了一個簡單的表單,當我的post.php頁面上處理了提交時。這個網頁有一個重定向循環 - php

的index.php

<form id="form" action="post.php" method="post"> 
    Name:<br> 
    <input type="text" name="name"/> <br> 
    Gender:<br> 
    <input type="text" name="gender"/> <br> 
    Age:<br> 
    <input type="number" name="age" min="1" max="99"/> <br> 

    <input id="submit" type="submit" value="Input"> 
    </form> 

<div class="data"> 
    <?php 
     include ('post.php'); 
     foreach ($result as $row) { 
     echo $row['name'] . " "; 
     echo $row['gender'] . " " ; 
     echo $row['age'] . "<br>" . " "; 
     } 
    ?> 
</div> 

post.php中 下面是我的post.php中頁面的代碼,上方是我的頭,但我不斷收到同樣的錯誤,當我提交形成。

<?php 

header("Location: index.php"); 
try { 
    $dbh = new PDO('sqlite:mydb.sqlite3'); 
    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

    $dbh->exec("CREATE TABLE IF NOT EXISTS test (
      name VARCHAR(30), 
      gender VARCHAR(30), 
      age INTEGER)" 
      ); 

if (!empty($_POST)) { 
    $stmt = $dbh->prepare("INSERT INTO test (name, gender, age) VALUES (:name, :gender, :age)"); 
    $stmt->execute(array(':name' => $_POST['name'], ':gender' => $_POST['gender'],':age' => $_POST['age'])); 

    $title = $_POST['name']; 
    $message = $_POST['gender']; 
    $age = $_POST['age']; 
} 

    $result = $dbh->query('SELECT * FROM test'); 

    $dbh = null; 
} 
    catch(PDOException $e) { 

    echo $e->getMessage(); 
}  
?> 
+4

首先,您需要告訴我們您是如何導致無限重定向的。是否index.php重定向到post.php和post.php重定向到index.php ....因爲如果你真的只是移動到post.php當用戶點擊提交,這不應該發生。 – developerwjk 2015-02-06 21:22:36

+0

哪個網頁瀏覽器? – MonkeyZeus 2015-02-06 21:24:26

+0

只有當$ _POST被設置時纔會重定向? – 2015-02-06 21:25:44

回答

3

裏面index.phpinclude -ing的post.php文件,立即轉發你回到index.php

您需要在post.php有條件轉發,否則您需要重新修改您的邏輯。

+0

將我的標題放在我的If語句中時,它看起來工作正常,那是不好的做法? – Dianabolz 2015-02-06 21:35:02

+1

@daniel,在if語句中放置一個頭是很好的。在設置標題之前,您只需確保不要輸出任何內容到輸出。 – developerwjk 2015-02-06 21:36:28

+0

非常感謝。 – Dianabolz 2015-02-06 21:37:46

相關問題