Php 密码更改脚本无法正常工作输出是';这是不对的

Php 密码更改脚本无法正常工作输出是';这是不对的,php,mysql,Php,Mysql,密码更改脚本不起作用输出总是显示为出错 <html> <body> <center> <form method="POST"> Enter New Password:<input type="password" name="password"/><br \> Confirm Password:<input type="password" name="conpassword"/><br \> <b

密码更改脚本不起作用输出总是显示为出错

<html>
<body>
<center>
<form method="POST">
Enter New Password:<input type="password" name="password"/><br \>
Confirm Password:<input type="password" name="conpassword"/><br \>
<button name="submit" value="Change My Password"/>
<button type="clear"/>
</form>
</center>
</body>
</html>
<?php
@mysql_connect("localhost","root","");
mysql_select_db("sarath");
if(isset($_POST['submit']))
{

session_start();
if(!isset($_SESSION['name']))
header("location:login.php");
$n=$_SESSION['name'];
$p=$_POST['password'];
$cp=$_POST['conpassword'];
if($p==$cp)
{
 $query="UPDATE student
         SET password='$p'
         WHERE username='$n';";
 $r=mysql_query($query);
     if($r)
         echo "password changed successfully";
}
else
    echo "please enter the same password";
}
else
echo "something wrong";
?>

输入新密码:
确认密码:

你犯了一些错误,比如

  • 您需要为if(!isset($\u SESSION['name'])使用{}

  • 在查询中,您编写了以下使用的查询:;在查询结束之前;始终位于php行的末尾

    $query=“更新学生设置密码='$p',其中用户名='$n';”

  • 请尝试以下代码:

    <?php
        session_start();
        @mysql_connect("localhost","root","");
        mysql_select_db("sarath");
        if(isset($_POST['submit']))
        {
            if(!isset($_SESSION['name'])) 
           {
             header("location:login.php");
             $n=$_SESSION['name'];
             $p=$_POST['password'];
             $cp=$_POST['conpassword'];
             if($p==$cp)
             {
                $query="UPDATE student SET password='$p' WHERE username='$n'";
                $r=mysql_query($query);
                if($r)
                    echo "password changed successfully";
             }
             else
                  echo "please enter the same password";
           }
        }
        else 
        {
           echo "something wrong";
        }
    ?>
    

    这意味着未设置$\u会话('name')。当您重定向到更改密码页面时,必须设置会话变量并在更改密码页面中调用它。您还可以执行var_转储($_SESSION('name'));检查是否已设置。

    您是否收到任何错误代码?如果收到,请添加到您的问题中。当您单击“提交”按钮时会发生什么情况?
    元素不是无效元素,因为如果未使用关闭按钮正确关闭
    ,它们将被视为格式错误。这是第一步。您还应更改
    输入:
    ,然后将满足您的
    if(设置($\u POST['submit'])
    条件。或添加
    type=“submit”
    点击你的按钮,看看这是否对你有效:
    更改我的密码
    警告:编写你自己的访问控制层并不容易,而且有很多机会使它严重出错。这有很多危险,因为你没有这样做。此代码允许任何人从你的网站获取任何信息。不要编写你自己的身份验证系统。警告:如果你只是在学习PHP,请不要使用该界面。它是如此可怕和危险,以至于在PHP7中被删除。类似的替换和类似的指南解释了最佳实践。你的用户参数不是,也有可以利用的。你做了什么?你需要提供一个解释。i首先,包含echo错误内容的else块不应该在那里,因为每次执行else块时,if子句都不会执行,我只是删除了else块