php - 使用 PHP 重定向页面会导致问题

标签 php mysql redirect

我有一个页面链接到一个 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> 之前没有空格标签

代码顺序:

  1. 数据来自 $_SESSION$_GET
  2. 处理数据并放入数组
  3. 数据放入mysql数据库
  4. 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/

相关文章:

php - 使用 PHP 在 MySQL 数组中搜索日历日期?

php - 从两个不同的产品中选择 *

apache - .htaccess mod_rewrite 循环

php - 在 ubuntu 13.10 上从 XAMPP 移动到 LAMP 后 htaccess 不工作(在 apache linux 服务器中启用 htaccess)

php - 让 Php 和 mysql 数据库进行通信

PHP 重定向安全

javascript - PHP 中的确认对话框,根据 mysql 数据库中找到的数据

javascript - 了解 ajax 在做什么

mysql - MySQL View 中自上次查询以来的新记录

regex - 不忽略请求参数的 nginx 规则