在MySQL中更新后不会回显消息

时间:2013-01-04 05:44:28

标签: php mysql

我相信这段代码有效。但它不会回应确认或错误。

<?php

require 'config.php';

if($_SERVER["REQUEST_METHOD"] == "POST"){      

        $servername="localhost";
        $username="root";
        $conn=  mysql_connect($servername,$username)or die(mysql_error());

        mysql_select_db("web", $conn);

                    $mypassword=$_POST['pwd'];
                    $fname=$_POST['fname'];
                    $lname=$_POST['lname'];
                    $address=$_POST['address'];
                    $location=$_POST['location'];

                    $sqlsel="SELECT * FROM users WHERE username='$id' AND pwd='$mypassword' ";
                    $result=mysql_query($sqlsel,$conn) or die(mysql_error());  

                    $count=mysql_num_rows($result);

                    if($count==1){  
                        $sql="UPDATE users " .
                        "SET fname = '$fname', 
                        lname = '$lname',
                        address = '$address', 
                        location = '$location'" .
                        "WHERE pwd = '$mypassword'";

                        $res = mysql_query( $sql, $conn );
//IS THIS CORRECT TO REFRESH THE PAGE???
                        header("Location: edit.php?id=" . $id);
//IT WON'T ECHO....
                        echo 'Information updated.';
                        }

                    else {
//ALSO THIS ONE...
                    echo print "Invalid Password.";
                    }


                mysql_close($conn);
}
?>

它似乎适用于我的其他表单,但它不适用于此编辑表单。

我该如何解决这个问题?

3 个答案:

答案 0 :(得分:2)

标题位置后,任何内容都无效。 你能做的是

header("Location: edit.php?id=" . $id . "&msg=1");

然后在edit.php上 只需获得$ _GET [“msg”],如

if isset($_GET["msg"])
echo 'Information updated.';

答案 1 :(得分:1)

在浏览器开始重定向并且没有回显之后,您已发送重定向标头。删除标题调用。

评论这部分

//header("Location: edit.php?id=" . $id);

另外

echo print "Invalid Password.";

应该是

echo "Invalid Password.";

答案 2 :(得分:0)

当声明标题位置时,它将仅在第一个php / html声明

时重定向页面

任何不能工作或展示后的内容