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块