【问题标题】:Passing variable in a url in header function [duplicate]在标头函数的url中传递变量[重复]
【发布时间】:2013-04-15 09:32:16
【问题描述】:

我正在尝试在标头函数中的 URL 中传递变量。我知道我可以这样做 index2.php?ID=<?=$objResult["ID"];?> 如果它不在标头函数中。但是,如果我尝试在标头函数中执行此操作,我的整个脚本就会崩溃。我也试过这个:

header("Refresh: 5;url=index2.php?ID=".$objResult["ID"]."");

但这给出了以下错误:

警告:无法修改标头信息 - 第 33 行 /var/www/Mail/index.php 中的标头(输出开始于 /var/www/Mail/index.php:25)

(第 33 行是标题行)

我的整个代码是这样的:

<?php
if($_POST)
{
    mysql_connect('localhost','root','root');
    mysql_select_db('NAW') or die (mysql_error());

    $Naam              =    $_POST['naam'];
    $Email             =    $_POST['email'];
    $Soort             =    $_POST['soort'];

    $sql = mysql_query("INSERT INTO Klant (Naam, Email, Soort) VALUES ('".$Naam."', '".$Email."', '".$Soort."')") or die (mysql_error());

    if ($sql === false) {

        die (mysql_error());

    }

    else {

        echo ''.$Naam.' is in de database toegevoegd.<br><br>';

    }

    $strSQL         = ("SELECT * FROM Klant WHERE Naam='".$Naam."'");
    $objQuery       = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
    $objResult      = mysql_fetch_array($objQuery);  

    header("Refresh: 5;url=index2.php?ID=".$objResult["ID"]."");


    if($sql){ return 1; } else { return 0; }

}
?>

如果有人能告诉我我做错了什么,将我推向正确的方向,那就太好了!

注意:

我知道我不应该因为 sql 注入而使用 mysql_*,但是因为这段代码永远不会在线并且只能在本地使用,所以这不是问题

【问题讨论】:

    标签: php url variables header


    【解决方案1】:

    如果已经有输出到页面,则不能发送标题:

    echo ''.$Naam.' is in de database toegevoegd.<br><br>';
    

    对此有一个很好的答案,here

    【讨论】:

    • Thnx,这解决了问题,并且确实是对其他答案的一个很好的解释! (我会在可能的情况下接受你的回答)
    猜你喜欢
    • 2018-12-14
    • 2019-06-28
    • 2015-10-04
    • 1970-01-01
    • 2013-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多