注意:未定义的偏移量:第40行的C:\ xampp \ htdocs \ WebTech Mid Project \ registration.php中的2

时间:2020-03-07 12:18:57

标签: php web xampp

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

 <?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文件中是否存在电子邮件而没有出现任何错误?

2 个答案:

答案 0 :(得分:0)

您尚未关闭If语句。 我猜您在代码末尾忘记了一个}

答案 1 :(得分:0)

错误是因为

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

尝试将其修复为

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

在某些用户不存在此索引的情况下,也尝试从您的user.txt中进行调查。