В Log-in.php у меня есть
$email=$_POST['email']; $pass=$_POST['pass']; $_SESSION['type'] = 'user'; $_SESSION['email'] = $email; $_SESSION['pass']=$pass; header('location:./connect.php');
Я получаю ошибку, как undefined index email
для другого входа пользователя, с другой стороны я могу войти в систему как администратор здесь.
У меня есть форма входа в систему, которая видит, что это за вход, и передайте этот тип в сеансе в этом connect.php, чтобы проверить, какой тип он есть, а затем он работает хорошо, но, к сожалению, t изменить больше.
Форма входа в систему – это одна форма для пользователя, администратора и агентов, где я могу войти в систему как администратор, но я не могу войти в систему, поскольку она показывает ошибку
if(empty($_SESSION)) { session_regenerate_id(); session_start(); } @mysql_connect('localhost','root','') or die("ERROR in SERVER"); @mysql_select_db('module') or die("ERROR IN DATABASE"); $_SESSION['start'] = time(); // taking now logged in time if(!isset($_SESSION['expire'])){ $_SESSION['expire'] = $_SESSION['start'] + (60* 60) ; // ending a session in 30 seconds } $now = time(); // checking the time now when home page starts if($now > $_SESSION['expire']) { session_destroy(); } if(!empty($_SESSION['type'])) { $email = $_SESSION['email']; $pass = $_SESSION['pass']; $type = $_SESSION['type']; // admin login // if($type == 'admin'){ $admin = mysql_query("SELECT * FROM `admin` WHERE `email` ='$email' "); $res = mysql_fetch_array($admin); if($email == "" || $pass == "" || $email != $res['email'] || $pass != $res['pass']) { header('location:./login/login.php'); } } // user login // if($type == 'user') { $email = $_SESSION['email']; $pass = $_SESSION['pass']; $type = $_SESSION['type']; $user = mysql_query("SELECT `id` FROM `users` WHERE `email`='$email' AND `status`='1'"); $useres = mysql_fetch_array($user); // $trail = $useres['date']; // $time = explode("/",$trail); if($email != $useres['email'] || $pass != $useres['pass']) { echo mysql_error(); // header('location:./login/login.php'); } else if($pass = $useres['pass']){ // echo '<script> location.replace("./user.php"); </script>'; } } // agent login // if($type == 'agent') { $email = $_SESSION['email']; $pass = $_SESSION['pass']; $type = $_SESSION['type']; $agent = mysql_query("SELECT `id` FROM `sale_agents` WHERE `email`='$email'"); $agentres = mysql_fetch_array($agent); if($email != $agentres['email'] || $pass != $agentres['pass']) { header('location:./login/login.php'); } else if($pass = $agentres['pass']){ // echo '<script> location.replace("./agent.php"); </script>'; } } } else{ header('location:./login/login.php'); }
В некотором роде я получаю ошибку на другой странице страницы, также отображая адрес электронной почты, что теперь делать?
Определение сеанса перед всем, до выхода не должно быть, NO OUTPUT
<?php session_start(); ?>
Установите сеанс на странице, а затем у вас есть доступ к нему, например, это страница 1.php
<?php //This is page 1 and then we will use session that defined from this page: session_start(); $_SESSION['email]='email@example.com'; ?>
Использование и получение сеанса в 2.php
<?php //In this page I am going to use session: session_start(); if($_SESSION['email']){ echo 'Your Email Is Here! :) '; } ?>
ПРИМЕЧАНИЕ . Комментарии не выводятся.
Я думаю, что вы не устанавливаете сеанс, и из-за этого PHP не знает эту переменную сеанса .
Ваш логин должен быть таким
<?php session_start(); $email=$_POST['email']; $pass=$_POST['pass']; $_SESSION['type'] = 'user'; $_SESSION['email'] = $email; $_SESSION['pass']=$pass; header('location:./connect.php'); ?>
Установите этот код в login.php:
session_start(); $email = $_POST['email']; $pass = $_POST['pass']; $_SESSION['type'] = 'user'; $_SESSION['email'] = $email; $_SESSION['pass'] = $pass; header('location:./connect.php');
И это в connect.php:
session_start(); @mysql_connect('localhost', 'root', '') or die("ERROR in SERVER"); @mysql_select_db('module') or die("ERROR IN DATABASE"); $_SESSION['start'] = time(); // taking now logged in time if (!isset($_SESSION['expire'])) { $_SESSION['expire'] = $_SESSION['start'] + (60 * 60); } $now = time(); // checking the time now when home page starts if ($now > $_SESSION['expire']) { session_destroy(); header('location:./login/login.php'); } if (isset($_SESSION['email']) && !empty($_SESSION['email']) && isset($_SESSION['pass']) && !empty($_SESSION['pass']) && isset($_SESSION['type']) && !empty($_SESSION['type'])) { $email = $_SESSION['email']; $pass = $_SESSION['pass']; $type = $_SESSION['type']; // admin login // if ($type == 'admin') { $admin = mysql_query("SELECT * FROM `admin` WHERE `email`='$email'"); $res = mysql_fetch_array($admin); if ($email == "" || $pass == "" || $email != $res['email'] || $pass != $res['pass']) { session_destroy(); header('location:./login/login.php'); } } // user login // if ($type == 'user') { $user = mysql_query("SELECT `id` FROM `users` WHERE `email`='$email' AND `status`='1'"); $useres = mysql_fetch_array($user); // $trail = $useres['date']; // $time = explode("/",$trail); if ($email != $useres['email'] || $pass != $useres['pass']) { session_destroy(); header('location:./login/login.php'); } } // agent login // if ($type == 'agent') { $agent = mysql_query("SELECT `id` FROM `sale_agents` WHERE `email`='$email'"); $agentres = mysql_fetch_array($agent); if ($email != $agentres['email'] || $pass != $agentres['pass']) { session_destroy(); header('location:./login/login.php'); } } } else { header('location:./login/login.php'); }
Я надеюсь, что это поможет вам.