在php中使用id的标头位置

时间:2018-03-03 17:31:37

标签: php header

是否可以在header()中添加行ID?我试图将header()置于if语句中,但我总是收到以下消息:

  

解析错误:语法错误,意外'' (T_ENCAPSED_AND_WHITESPACE),期望标识符(T_STRING)或变量(T_VARIABLE)或数字(T_NUM_STRING)

这是我的代码:

$result = mysqli_query($db_con,$query);
$target="Admin/upload/otherPic/".basename($_FILES['image']['name']);
if ($result){
    if(move_uploaded_file($_FILES['image']['tmp_name'], $target)){
        echo "<script>
            alert('Record updated successfully!');
            </script>";
        header("Location: admin-viewacc.php?id='$result['id'];'");
    }
    else{
        echo "Error updating record: " . mysqli_error($db_con);
    }
}

2 个答案:

答案 0 :(得分:1)

尝试使用,

header("Location: admin-viewacc.php?id=" . $result['id']);

最好在exit之后使用header($string)语句,因为它有时会变得有些混乱。

header("Location: admin-viewacc.php?id=" . $result['id']);
exit;

阅读本文 - header is not working when called within a function

答案 1 :(得分:1)

您需要fetch记录集(假设它是select查询)并且标题字符串中的ID周围不需要额外的单引号。

这容易出错 - 如果在调用某些PHP函数之前输出任何html,空格等,则会触发错误。为此,请不要添加javascript代码 - 而是在下一页显示消息。

if( $result ){

    if( move_uploaded_file( $_FILES['image']['tmp_name'], $target ) ){

        $result = mysqli_query( $db_con, $query );
        while( $rs=$result->fetch_object() )$id=$rs->id;


        $target = 'Admin/upload/otherPic/' . basename( $_FILES['image']['name'] );


        echo "
            <script>
                alert('Record updated successfully!');
            </script>";

        header( "Location: admin-viewacc.php?id={$id}" );

    } else{
        echo "Error updating record: " . mysqli_error( $db_con );
    }
}