语句有效,但不会重定向?

时间:2018-06-23 06:39:45

标签: php redirect

我已经花了好几个小时来解决这个问题。在我确定主机出现问题之前,我将在这里尝试。我不得不将该网站从一个主机移到另一个主机上,除了该文件之外,网站上的所有内容都在工作。这是一个CRM系统,这是“删除客户端”选项。它会删除客户端,但仅显示消息“客户端已删除。请稍等...”,它不会重定向。停留在此消息的页面上。我真的很茫然,因为其他文件具有完全相同的重定向并可以正常工作吗?

 <?php
include('dbopen.php');
$delete_id = $_GET['details_id'];
// sql to delete a record
$sql = "DELETE FROM details WHERE details_id= $delete_id";

if ($conn->query($sql) == TRUE) {

       //delets record but does not re-direct?
       header("refresh:3; url=clients.php");
       echo "client deleted.  Please hold...";


} else {
    echo "Error deleting record: Contact Dylan";
}

$conn->close();
?> 

3 个答案:

答案 0 :(得分:1)

将标头发送到浏览器时,代码无法正常工作的原因是,文件开头有空白。注意单个空格字符。发送任何内容后,即使它是空白,也无法将任何其他标头发送到浏览器。如果您检查日志文件或enable error display,您会注意到它给您一个错误,表明标题已发送。

答案 1 :(得分:1)

使用

header("Location: clients.php");

应该可以。但是,在标头函数之前,不应存在任何html或空格。 在您的代码中,

之前有一个小的空白
<?php 

标签。

答案 2 :(得分:0)

尝试这个:-

if ($conn->query($sql) == TRUE){
   //header("refresh:3; url=clients.php");
   echo "<script>alert('client deleted.  Please hold...');</script>";
   echo "<script>setTimeout(function(){window.location = 'clients.php' ;}, 3000) ; </script>" ;
}

使用此代码,它将按预期工作,但它使用JavaScript重定向而不是PHP标头,因为PHP标头在执行过程中不起作用。