Обратите внимание: неопределенный индекс: имя пользователя в C:\wamp64\www\115\index.php на линии 19.........Я не могу получить доступ к значениям переменных сеанса
Я не могу получить доступ к своим переменным значениям сеанса с другой страницы.
<?php session_start(); require_once 'config/db.php'; $errors=array(); $username=""; $email=""; if(isset($_POST['signup-btn'])){ $username=$_POST['username']; $email=$_POST['email']; $password=$_POST['password']; $passwordConf=$_POST['passwordConf']; if(empty($username)){ $errors['username']="Username required"; } if(!filter_var($email,FILTER_VALIDATE_EMAIL)){ $errors['email']="Email address is invalid!"; } if(empty($email)){ $errors['email']="Email required"; } if(empty($password)){ $errors['password']="Password required"; } if($password !== $passwordConf){ $errors['password']="The two passwords do not match"; } $emailQuery = "select * from users where email=? limit 1"; $stmt = $conn->prepare($emailQuery); $stmt->bind_param('s',$email); $stmt->execute(); $result=$stmt->get_result(); $userCount=$result->num_rows; $stmt->close(); if($userCount > 0){ $errors['email'] = "Email already exists"; } if(count($errors)===0){ $password = password_hash($password, PASSWORD_DEFAULT); $token = bin2hex(random_bytes(50)); $verified = false; $sql = "insert into users(username,email,verified,token,password)values(?,?,?,?,?)"; $stmt = $conn->prepare($sql); $stmt->bind_param('ssiss',$username,$email,$verified,$token,$password); if($stmt->execute()){ $user_id = $conn->insert_id; $SESSION['id']= $user_id; $SESSION['username']=$username; $SESSION['email']=$email; $SESSION['verified']=$verified; $_SESSION['message']="You are now logged in!"; $_SESSION['alert-class']="alert-success"; header('location:index.php'); exit(); } else{ $errors['db_error'] = "Database error: failed to register"; } } }
Это мой индексный файл ниже
<?php require_once 'controllers/authController.php'; ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css"> <link rel="stylesheet" href="style.css"> <title>Home Page</title> </head> <body> <div class="container"> <div class="row"> <div class="col-md-4 offset-md-4 form-div login"> <div class="alert <?php echo $_SESSION['alert-class']; ?>"> <?php echo $_SESSION['message']; ?> </div> <h3>Welcome, <?php echo $_SESSION['username']; ?></h3> <a href="#" class="logout">logout</a> <?php if(!$_SESSION['verified']): ?> <div class="alert alert-warning"> You need to verify your account. Sign in to your email account and click on the verification link we just emailed you at <?php echo $_SESSION['email']; ?> </div> <?php endif; ?> <?php if($_SESSION['verified']): ?> <button class="btn btn-block btn-lg btn-primary">I am verified!</button> <?php endif; ?> </div> </div> </div> </body> </html>
Что я уже пробовал:
Я попытался запустить еще один сеанс на странице индекса, но получил предупреждение о том, что два сеанса выполняются вместе