啥问题造成的呢?

hleren 2004-07-09 04:53:01
<?
ob_start();
require("config.php");
$user_array = file($userdatafile);
$user_num = count($user_array);
$username = $_POST["username"];
$passwd = $_POST["passwd"];

//验证用户名和密码是否为空:

if($username == "")
{
echo"<meta http-equiv=refresh content=7;URL='javascript:history.back(1);'><br><br><br><br><font size=3>请输
入<font color=ff0000>用户名</font></font><br><a href=javascript:history.go(-1);>返回</a><br><br><br>";
exit;
}
if($passwd == "")
{
echo"<meta http-equiv=refresh content=5;URL='javascript:history.back(1);'><br><br><br><br><font size=3>请输
入<font color=ff0000>用户密码</font></font><br><a href=javascript:history.go(-1);>返回</a>";
exit;
}
//验证登陆用户信息:

for($i = 1;$i<$user_num;$i++)
{
list($name,$pwd,$admin)=explode("|",$user_array[$i]);
if($username == $name and $passwd != $pwd)
{
echo "密码错误!";
exit;
}
if(($username != $name) and ($i == $user_num-1))
{
echo "此用户不存在!";
exit;
}
}

//创建cookie:

setcookie("username",$username);
setcookie("passwd",$passwd);

echo "登陆成功!";
ob_flush();
?>


这是个登陆验证文件,
不知道为什么
if(($username != $name) and ($i == $user_num-1))
{
echo "此用户不存在!";
exit;
}
这句怎么不起作用,随便填个不存在的用户名密码就提示登陆成功
...全文
157 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
hleren 2004-07-13
  • 打赏
  • 举报
回复
比较奇怪
hleren 2004-07-11
  • 打赏
  • 举报
回复
没有,确实没有使用过此函数
faucet 2004-07-11
  • 打赏
  • 举报
回复
for($i = 1;$i<$user_num;$i++)

这里应该为$i=0

如果你的数组只有一行数据,就会出现你的错误

因为这个循环更本就不过了


还有就是用判断不同在先的方式不太好,判断相同设置来设置cookie先这种方式比较好
tod204 2004-07-10
  • 打赏
  • 举报
回复
那你查一下你的config.php中有没有这个函数
hleren 2004-07-09
  • 打赏
  • 举报
回复
奇怪,
用的就是上面的代码,没有用 session_cache_limiter('private');函数
xuzuning 2004-07-09
  • 打赏
  • 举报
回复
估计是你使用了session_cache_limiter('private');函数
如果是这样的话,出现次现象就不奇怪了
第一次我用p,p登录成功,估计你不会有此用户和密码的
第二次用你给的登录,显示 登录成功! p
第三次还用你给的登录,显示 登录成功! admin
hleren 2004-07-09
  • 打赏
  • 举报
回复
确实有此现象


http://218.69.190.24/php/mfc/

存在上面的问题

系统内有admin用户,密码 123456
xuzuning 2004-07-09
  • 打赏
  • 举报
回复
经管你的代码并不严密,但是本身并无大错。这是套用你的代码的测试,并未出现你说的现象!
<?php
$user_array = array(
"xxx|aaa",
"aaa|aaa",
);
$user_num = count($user_array);
$username = "p";
$passwd = "p";

for($i = 1;$i<$user_num;$i++)
{
list($name,$pwd,$admin)=explode("|",$user_array[$i]);
if($username == $name and $passwd != $pwd)
{
echo "密码错误!";
exit;
}
if(($username != $name) and ($i == $user_num-1))
{
echo "此用户不存在!";
exit;
}
}

?>

ustb 2004-07-09
  • 打赏
  • 举报
回复
错了,应当是在循环结束后会无条件执行。
ustb 2004-07-09
  • 打赏
  • 举报
回复
//创建cookie:

setcookie("username",$username);
setcookie("passwd",$passwd);
echo "登陆成功!";

此三行在任何条件下都会执行。请修改程序逻辑
内容概要:本文研究了基于粒子群算法(PSO)融合动态窗口法(DWA)的无人机三维动态避障路径规划方法,提出了一种结合全局与局部规划优势的混合算法。通过PSO实现三维环境中避开静态障碍物的全局路径预规划,再以该路径为引导,利用DWA进行局部动态避障重规划,有效应对动态障碍物干扰,提升路径的安全性与实时性。文中详细阐述了三维环境建模、算法融合框架设计、PSO全局搜索机制以及DWA局部速度空间优化策略,并在静态与动态障碍场景下进行了仿真实验,验证了所提方法在路径平滑性、避障能力和计算效率方面的优越性能。; 适合人群:具备一定算法基础和Matlab编程能力,从事无人机控制、智能优化或路径规划相关研究的研究生及科研人员。; 使用场景及目标:①应用于复杂三维动态环境下的无人机自主导航系统开发;②为智能机器人、自动驾驶等领域提供融合全局优化与局部反应式控制的设计思路;③通过Matlab代码实现促进算法复现与进一步改进研究。; 阅读建议:建议结合文中的仿真实验结果与提供的Matlab代码,深入理解PSO与DWA的协同工作机制,重点关注算法参数设置对规划效果的影响,并可在现有模型基础上拓展更多动态障碍场景进行测试与优化。

21,889

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧