0

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

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

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

我该如何解决这个问题?

4

3 回答 3

2

在标头位置之后,任何事情都不起作用。你能做的是

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

然后在 edit.php 上得到 $_GET["msg"] 之类的

if isset($_GET["msg"])
echo 'Information updated.';
于 2013-01-04T06:24:19.537 回答
1

在该浏览器开始重定向并且不回显之后,您已经发送了重定向标头。删除标头调用。

注释掉这部分

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

echo print "Invalid Password.";

应该

echo "Invalid Password.";
于 2013-01-04T05:45:57.120 回答
0

当标头位置被声明时,它只会在它的第一个 php/html 声明时重定向页面

之后的任何东西都无法工作或显示

于 2013-01-04T05:46:04.617 回答