<?php header("content-type:text/html;charset=utf-8"); //编码include("conn/conn.php"); //链接数据库if(isset($_POST['xiugai'])){ //判断有没有修改按钮 $user=$_POST['user']; //定义用户名变量 $pwd=$_POST['pwd']; //原密码变量 $xpwd=$_POST['xpwd']; //新密码变量 $section=$_POST['section']; //部门名称变量 $name=$_POST['name']; //真实姓名变量 $insert=mysql_query("update tb_login set pwd='$xpwd',section='$section',name='$name' where user='$user' and pwd='$pwd'",$conn); //更新数据库语句 echo mysql_error(); if($insert){//判断是否执行 echo '<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />'; echo "<script>alert('?修改成功');window.location.href='index.php'</script>"; //修改成功 } else{ echo '<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />'; echo "<script>alert('?修改失败');window.location.href='guanli.php'</script>"; //修改失败 }}?>
这个是网页代码
<form action="guanli_ok.php" method="post" enctype="multipart/form-data" name="form2" id="form2"> <table width="527" height="282" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="194" height="46"><div align="left"><?php echo $_SESSION['user'];?> 用户信息修改</div></td> <td width="333"><div align="left"></div></td> </tr> <tr> <td height="46"><div align="right">用户名:</div></td> <td><div align="left"><input type="text" name="user" readonly="readonly" value="<?php echo $_SESSION['user'];?>"/></div></td> </tr> <tr> <td height="40"><div align="right">原密码:</div></td> <td><div align="left"><input type="text" name="pwd" /></div></td> </tr> <tr> <td height="30"><div align="right">新密码:</div></td> <td><div align="left"><input type="text" name="xpwd" /></div></td> </tr> <tr> <td height="30"><div align="right">确认密码:</div></td> <td><div align="left"><input type="text" name"quren" /></div></td> </tr> <tr> <td height="30"><div align="right">部门:</div></td> <td><div align="left"><input type="text" name="section" /></div></td> </tr> <tr> <td height="30"><div align="right">真实姓名:</div></td> <td><div align="left"><input type="text" name="name" /></div></td> </tr> <tr> <td height="30"> </td> <td><input type="submit" name="xiugai" value="确认修改"/> </td> </tr> </table> </form>
问题是最后就算我原密码是输入错误的提示也是修改成功跳转到了index.php页面 但是数据库没修改 原密码正确就一切正常
回复讨论(解决方案)
if($insert){//判断是否执行
这个判断是错误的
你只是检查了 update 命令是否有错,并没有检查到修改是否成功
mysql_affected_rows() 大于 0 才表示修改成功
没有认真看手册吧。
http://www.w3school.com.cn/php/func_mysql_query.asp
返回值
mysql_query() 仅对 SELECT,SHOW,EXPLAIN 或 DESCRIBE 语句返回一个资源标识符,如果查询执行不正确则返回 FALSE。
对于其它类型的 SQL 语句,mysql_query() 在执行成功时返回 TRUE,出错时返回 FALSE。
非 FALSE 的返回值意味着查询是合法的并能够被服务器执行。这并不说明任何有关影响到的或返回的行数。很有可能一条查询执行成功了但并未影响到或并未返回任何行。
检查是否影响到了行数,应该用mysql_affected_rows()函数来检查检测。

负载均衡会影响会话管理,但可以通过会话复制、会话粘性和集中式会话存储解决。1.会话复制在服务器间复制会话数据。2.会话粘性将用户请求定向到同一服务器。3.集中式会话存储使用独立服务器如Redis存储会话数据,确保数据共享。

Sessionlockingisatechniqueusedtoensureauser'ssessionremainsexclusivetooneuseratatime.Itiscrucialforpreventingdatacorruptionandsecuritybreachesinmulti-userapplications.Sessionlockingisimplementedusingserver-sidelockingmechanisms,suchasReentrantLockinJ

PHP会话的替代方案包括Cookies、Token-basedAuthentication、Database-basedSessions和Redis/Memcached。1.Cookies通过在客户端存储数据来管理会话,简单但安全性低。2.Token-basedAuthentication使用令牌验证用户,安全性高但需额外逻辑。3.Database-basedSessions将数据存储在数据库中,扩展性好但可能影响性能。4.Redis/Memcached使用分布式缓存提高性能和扩展性,但需额外配

Sessionhijacking是指攻击者通过获取用户的sessionID来冒充用户。防范方法包括:1)使用HTTPS加密通信;2)验证sessionID的来源;3)使用安全的sessionID生成算法;4)定期更新sessionID。

本文比较了PHP和ASP.NET,重点是它们对大规模Web应用程序,性能差异和安全功能的适用性。两者对于大型项目都是可行的,但是PHP是开源和无关的,而ASP.NET,


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

SublimeText3汉化版
中文版,非常好用

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

Dreamweaver CS6
视觉化网页开发工具

WebStorm Mac版
好用的JavaScript开发工具

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。