【问题标题】:Notice: Undefined offset: 2 in C:\xampp\htdocs\WebTech Mid Project\registration.php on line 40 [closed]注意:未定义的偏移量:第 40 行 C:\xampp\htdocs\WebTech Mid Project\registration.php 中的 2 [关闭]
【发布时间】:2020-03-07 12:18:57
【问题描述】:

我在尝试对在线食品配送系统进行注册验证时遇到错误。我收到以下代码的错误:

 <?php
session_start();
$nameErr=$unameErr=$emailErr=$passErr=$conpassErr=$existedErr=$conMsg=$matchErr="";
global $found;
if(isset($_REQUEST['submit'])){
    $name = $_REQUEST['name'];
    $uname = $_REQUEST['uname'];
    $email = $_REQUEST['email'];
    $pass =  $_REQUEST['pass'];
    $conpass = $_REQUEST['conpass'];
    if(empty(trim($name))){
       $nameErr = "Name is required"; 
    }
    else if(empty(trim($uname))){
       $unameErr = "User name is required"; 
    }
    else if(empty(trim($email))){
       $emailErr = "Email is required"; 
    }
    else if(empty(trim($pass))){
       $passErr = "Password is required"; 
    }
    else if(empty(trim($conpass))){
       $conpassErr = "Confirm password is required"; 
    }
    else{
        if((trim($pass)) != (trim($conpass))){
            $matchErr = "password and confirm password didn't match";
        }else{
            $file = fopen("user.txt", "r");
            while(!feof($file))  {
                $user = fgets($file);
                $data = explode('|',$user);
                if(trim($data[0]) == $uname){
                    $existedErr = "User name or email already existed";
                    $found=1;
                    fclose($file);
                    break;
                }
                else if(trim($data[2]) == $email){
                    $existedErr = "User name or email already existed";
                    $found=1;
                    fclose($file);
                    break;
                }
            }
            if(!$found){
                $file = fopen("user.txt", "a");
                $txt = $uname."|".$pass."|".$email."|".$name."\n";
                fwrite($file, $txt);
                fclose($file);
                $conMsg = "<br><h3>CONGRATULATIONS,Your registration is succesful !</h3><br>";
            }
        }
    }
}
?>

请帮助我为什么会收到此错误?我试图通过删除电子邮件匹配条件来解决此错误。然后这个错误没有显示。 如何检查 user.txt 文件中是否存在电子邮件而不会出现任何错误?

【问题讨论】:

  • 您可以为代码添加完整的错误消息吗?否则很难判断哪条线路出现故障。
  • 好的,当然。现在改变

标签: php web xampp


【解决方案1】:

错误是因为

else if(trim($data[2]) == $email){

尝试修复它

else if(isset($data[2]) && trim($data[2]) == $email){

如果某些用户没有此索引,也请尝试从您的 user.txt 进行调查。

【讨论】:

  • 好的,我会试试这个。谢谢你的回答。
  • 现在,它可以工作了。没有更多的问题..再次感谢
  • 哦..我不知道如何接受。给定的链接很有帮助..完成:)
【解决方案2】:

你还没有关闭你的 If 语句。 我猜你在代码末尾忘记了}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多