这是我的代码:
<?php
$url = $_GET["id"];
$servername = "XXXX";
$username = "XXXX";
$password = "XXXX";
$dbname = "XXX";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "DELETE FROM Table WHERE id='".$url."'";
if ($conn->query($sql) === TRUE) {
echo 'Row deleted successfully';
} else {
echo "Error deleting record: " . $conn->error;
}
$conn->close();
header('Location:index.php');
exit;
?>
但是标头重定向不起作用...... 这是错误日志:
严格标准:header():依靠系统的时区设置是不安全的。您必需使用date.timezone设置或date_default_timezone_set()函数。如果您使用了这些方法中的任何一种并且仍然收到此警告,则很可能拼错了时区标识符。我们在第24行的/homepages/5/d394578306/htdocs/XXXXX/XXXXXX/delete.php中选择'America / New_York'作为'EST / -5.0 / no DST'
警告:无法修改标题信息 - 已在/ homepages / 5 / d394578306 / htdocs / XXXXXX / XXXXXX中发送的标题(输出从/homepages/5/d394578306/htdocs/XXXXX/XXXXXX/delete.php:1开始)第24行的/delete.php
答案 0 :(得分:1)
<?php
删除PHP标记之前的空白 - 计为输出并停止header()
调用。
您还要进行一些echo
次呼叫,这两种呼叫都还停止重定向工作,因为echo会将内容/标头输出到浏览器。
答案 1 :(得分:1)
在我看来,标题的时区警告会导致输出,从而使函数本身无法正常工作。试着这样做:
@header('Location:index.php')
@
将禁止该特定函数调用的错误输出。
另外,正如Bulk正确指出的那样,你应该在第17行和第19行中禁用你的回音调用,或者在标题方法调用之下移动它们。
答案 2 :(得分:0)
根据时区错误,试试这个:
<?php
date_default_timezone_set("--HERE YOUR TIMEZONE---");
$url = $_GET["id"];
$servername = "XXXX";
$username = "XXXX";
$password = "XXXX";
$dbname = "XXX";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "DELETE FROM Table WHERE id='".$url."'";
if ($conn->query($sql) === TRUE) {
echo 'Row deleted successfully';
} else {
echo "Error deleting record: " . $conn->error;
}
$conn->close();
header('Location:index.php');
exit;
?>
现在更换“ - 你的时区---”。
您可以在此处找到您所在国家/地区的正确时区:http://php.net/manual/en/timezones.php