2017-06-29 70 views
1

這是我的代碼和PHP的Header()函數不能幫助我,有人可以幫我找到我的錯誤或其他解決方案嗎? 執行後,這個查詢「DELETE FROM PAGOS其中id = $ id爲」不回我tabla_pagos.php如何執行php中的表單後返回上一頁php

<?php 
     include "app/conexionqa.php"; 
     require("templates/menu.php"); 

     $id=$_GET["parametro"]; 

     $data = $conn -> query("SELECT * FROM pagos where id=$id"); 

     if(isset($_POST['eliminar'])){ 
     $idAdmin=$_POST["idAdmin"]; 
     $fPago=$_POST["fPago"]; 
     $status=$_POST["status"]; 
     $montoPagar=$_POST["montoPagar"]; 


     $sql= $conn -> query("DELETE FROM pagos where id=$id"); 
     header("Location: tabla_pagos.php"); 

     }?> 
    <!DOCTYPE html> 
    <html xmlns="http://www.w3.org/1999/xhtml"> 


    <body> 
     <br> 
     <br> 

     <section class="header__user"> 

     <!--<div id="edit" class="modal">--> 
      <div class="modal-content"> 
       <h3 class="center unbutu loginTitle blue-text">Eliminar registro</h3> 
        <?php foreach($data as $campo){?> 
       <form action="#" method="post"> 

        <label>Id</label> 
        <p><?php echo $id; ?></p> 
        <label>Invitado por:</label> 
        <input type="text" name="idAdmin" value="<?php echo $campo['idAdmin']; ?>"/> 
        <label>Fecha de pago</label> 
        <input type="text" name="fPago" value="<?php echo $campo['fPago']; ?>"/> 
        <label>Status</label> 
        <input type="text" name="status" value="<?php echo $campo['status']; ?>"/> 
        <label>Cantidad ultimo pago</label> 
        <input type="text" name="montoPagar" value="<?php echo $campo['montoPagar']; ?>"/> 
        <button class="btn waves-effect waves-light" type="submit" name="eliminar">Eliminar 
        </button> 
        <a href="tabla_pagos.php"> Cancelar</a> 

       </form> 

       <?php } ?> 
      </div> 
     </div> 
    </section> 

    </body> 
    </html> 
    <?php require("templates/footer.php"); 

?> 
+0

From manual「請記住,在發送任何實際輸出之前,必須調用header(),或者通過普通的HTML標籤,文件中的空行或PHP。」所以......包含文件中包含什麼內容? http://php.net/manual/en/function.header.php – Andreas

+0

那麼會發生什麼? – TimBrownlaw

+0

嗨安德烈亞斯!在我的包含文件中,我只有連接到數據庫 –

回答

0

從你的評論到馬特的回答,似乎你已經在你的文件menu.php輸出。

在header()函數之前,您不能有任何輸出。
http://php.net/manual/en/function.header.php

記住header()函數被髮送任何實際輸出之前,必須被調用,或者通過正常的HTML標記,空行的文件,或者從PHP。使用include或require函數或其他文件訪問函數讀取代碼,並在調用header()之前輸出空格或空行是非常常見的錯誤。使用單個PHP/HTML文件時存在同樣的問題。

+0

THAANKS,非常感謝,您的幫助非常有用,我刪除了一個不必要的要求,它起作用 –

+0

您確定沒有必要嗎?通常需要的是......必需的......如果我的回答是正確的,您可以接受我答案左側的答案。 – Andreas

0

您需要包括以阻止進一步的頁面處理您的通話header("Location: tabla_pagos.php");exit;通話。

<?php 
     include "app/conexionqa.php"; 
     require("templates/menu.php"); 

     $id=$_GET["parametro"]; 

     $data = $conn -> query("SELECT * FROM pagos where id=$id"); 

     if(isset($_POST['eliminar'])){ 
     $idAdmin=$_POST["idAdmin"]; 
     $fPago=$_POST["fPago"]; 
     $status=$_POST["status"]; 
     $montoPagar=$_POST["montoPagar"]; 


     $sql= $conn -> query("DELETE FROM pagos where id=$id"); 
     header("Location: tabla_pagos.php"); 
     exit;  
    }?> 

header() PHP文檔顯示了這個在它的例子:

<?php 
header("Location: http://www.example.com/"); /* Redirect browser */ 

/* Make sure that code below does not get executed when we redirect. */ 
exit; 
?> 

您可以在http://php.net/manual/en/function.header.php看到更多。

+0

嗨馬特溜冰場!我做了這些改變,但它給我一個警告。 - 警告:無法修改標頭信息 - /home/cimacomu/epokavirtual.com/cimacomunidad/eliminar.php中已發送的標頭(輸出開始於/home/cimacomu/epokavirtual.com/cimacomunidad/templates/menu.php:26)在線17 –

+0

@Frida告訴你在頭部之前有一些輸出,就像我在我的評論中提到的那樣。 – Andreas

+0

Menu.php聽起來像輸出在我的耳朵.... – Andreas