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

So, I know my code was working and I have tried un-doing all steps to see where the bug is, but I am still keep getting an error

my php id=0.

Can you guys show me how I can fix my code up?

The error is as follows:

undefined variable list_id. It works on my localmachine but not when uploaded to server.

Thanks.

The following is my code:

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");
}

Seems there are a few issues here. I have added the comments inline.

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;
}

All you need to do is instantiate the variable $list_id :

$list_id = 0; // <-- HERE

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

It looks as though you want to redirect to the index if there is no id parameter. Since you already check for its presence, redirect in the else clause. Remove the last block and add:

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

You may want to add exit; after the header() call in the if block as well, so that code that uses the database further down isn't executed.