//创建cookie:setcookie("username",$username);
setcookie("passwd",$passwd);
echo "登陆成功!";此三行在任何条件下都会执行。请修改程序逻辑

解决方案 »

  1. 经管你的代码并不严密,但是本身并无大错。这是套用你的代码的测试,并未出现你说的现象!
    <?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;
         }
      }?>
      

  2. 确实有此现象
    http://218.69.190.24/php/mfc/存在上面的问题系统内有admin用户,密码 123456
      

  3. 估计是你使用了session_cache_limiter('private');函数
    如果是这样的话,出现次现象就不奇怪了
    第一次我用p,p登录成功,估计你不会有此用户和密码的
    第二次用你给的登录,显示 登录成功! p
    第三次还用你给的登录,显示 登录成功! admin
      

  4. 奇怪,
    用的就是上面的代码,没有用 session_cache_limiter('private');函数
      

  5. 那你查一下你的config.php中有没有这个函数
      

  6. for($i = 1;$i<$user_num;$i++)这里应该为$i=0如果你的数组只有一行数据,就会出现你的错误因为这个循环更本就不过了
    还有就是用判断不同在先的方式不太好,判断相同设置来设置cookie先这种方式比较好
      

类似问题 »