我可以在PHP中有2个标题位置吗?

我可以在PHP中有2个标题位置吗?,php,Php,所以,我知道我的代码正在运行,我已经尝试过取消所有步骤以查看bug所在的位置,但我仍然不断收到错误 我的php id=0 你们能告诉我怎么修改代码吗 错误如下: 未定义的变量列表\u id。它在本地计算机上工作,但在 上传到服务器 谢谢 以下是我的代码: if(!empty($_GET['id'])){ $list_id = intval(($_GET['id'])); try { $sql = 'SELECT * FROM items where id =' . $li

所以,我知道我的代码正在运行,我已经尝试过取消所有步骤以查看bug所在的位置,但我仍然不断收到错误

我的php id=0

你们能告诉我怎么修改代码吗

错误如下:

未定义的变量列表\u id。它在本地计算机上工作,但在 上传到服务器

谢谢

以下是我的代码:

if(!empty($_GET['id'])){
  $list_id = intval(($_GET['id']));
  try {
        $sql = 'SELECT * FROM items where id =' . $list_id;
        $query = $pdo->prepare($sql);
        $query->execute();
  } catch(Exception $e) {
        echo $e->getMessage();
        die();
  }
  $list = $query->fetch(PDO::FETCH_ASSOC);
  if ($list == FALSE) {

    header("location: index.php");
  } 


}

if ($list_id == 0) {
    header("location: index.php");
}

您只需实例化变量
$list\u id

$list_id = 0; // <-- HERE

if(!empty($_GET['id'])){
    $list_id = intval(($_GET['id']));
...
...

$list\u id=0;// 如果没有
id
参数,看起来好像要重定向到索引。由于您已经检查了它的存在,请在
else
子句中重定向。删除最后一个块并添加:

else
{
    header("location: index.php");
    exit;
}

您可能需要添加
退出if
块中调用
header()
之后的code>,这样就不会执行使用数据库的代码。

这里似乎有一些问题。我已经添加了内联评论

if(!empty($_GET['id'])){
    $list_id = intval($_GET['id']); //was double parenthesis here
    try {
            $sql = 'SELECT * FROM items where id =' . $list_id;
            $query = $pdo->prepare($sql);
            $query->execute();
        } catch(Exception $e) {
            echo $e->getMessage();
            die();
        }
    $list = $query->fetch(PDO::FETCH_ASSOC);
    $count = count($list); //count result and use for comparison instead of false
    if ($count === 0) {
        header("location: index.php");
        exit;
    } 

} else {
    header("location: index.php"); //if no $_GET, redirect
    exit;
}

如果您正确地缩进代码,您很快就会明白为什么会出现这种错误。您的行
if($list\u id==0){
在将设置
$list\u id
的条件块之外,因此无论
$list\u id
是否已初始化,它都将始终执行。我建议在任何位置头之后始终添加
退出
,这将避免不好的意外。此外,位置URI应该是绝对的,因此正确的语法应该是de>header(“位置:http://.”$\u SERVER['SERVER\u NAME'.“/fullpath to index.php”);