我有一个页面链接到一个 php 页面,该页面从 $_GET 获取数据并更新数据库。之后,它将用户返回到主页:
header("Location: http://localhost/");
问题在于,这似乎“中断”了代码的 mysql 部分。如果我删除这个重定向,数据库中的所有内容都会更新,但是当我把它放回去时,什么都不会更新...
这是数据库更新代码,我正在使用我的一个类作为 mysql 包装器:
$conn->where('hash',$data1['hash']);
$conn->update(TABLE_ITEMS,$newData1);
$conn->where('hash',$data2['hash']);
$conn->update(TABLE_ITEMS,$newData2);
注意事项:
-页面上没有文本或 echo(),并且 <code><?php</code>
之前没有空格标签
代码顺序:
- 数据来自
$_SESSION
和$_GET
- 处理数据并放入数组
- 数据放入mysql数据库
-
header();
用于重定向页面
代码
<?php
require_once('config.php');
import();
if ( isset ( $_GET['g'] ) && isset ( $_SESSION['itemA'] ) && isset ( $_SESSION['itemB'] ) ) {
$itemA = $_SESSION['gameA'];
$itemB = $_SESSION['gameB'];
$newData1 = processData($itemA);
$newData2 = processData($itemB);
$conn->update(TABLE_ITEMS,$newData1);
$conn->update(TABLE_ITEMS,$newData2);
header('Location: http://localhost/');
} else {
header('Location: http://localhost/');
}
最佳答案
如果您在之前的内容输出时发送一个标题,您将收到一个错误,这可能会导致您的脚本停止执行。所以如果header在update之上,update可能根本就不会执行。是否看到此错误取决于您的设置。
<?
echo 'yo';
header('Location: ....'); // <-- error
Update(); // Never gets executed
输出不必是 echo
.开前甚至可以是一个空格<?
.
关于php - 使用 PHP 重定向页面会导致问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5066397/