【发布时间】:2011-07-01 06:50:33
【问题描述】:
我有一个页面,它有一个指向 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(),标签前没有空格<?php
代码顺序:
- 从
$_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(..部分时不会执行数据库语句,我想在您尝试更新数据库之前调用了header(..行,请查看并告诉我们。 -
我已经在问题中添加了序列。
-
发代码真的有那么难吗?