Нужна помощь в логине php?

0

Это мой код для входа. когда я пытаюсь войти в систему в первый раз, он передает пустое значение session.but, когда я снова вернусь на страницу входа в систему и запишу это время успешно. Я не понял, что случилось с этим кодом? PLZ помочь мне.

session_unset();
    session_start();
    Global $i;
    $root = $_SERVER['DOCUMENT_ROOT']; 
    include($root."/signinConfig.php");
    function redirect($redirect=null)
    {
    header("Location : $redirect");
    }
           if (isset($_POST['submit']))
           {
            $check = mysql_query("SELECT * FROM user_reg WHERE `username` = '".$_POST['username']."'")or die("Dont Dare To Hack");  
            $check2 = mysql_numrows($check);
                if ($check2 == 0) 
                {   
    die('That user does not exist in our database. <a href="../Signup/registration.php" style="text-decoration: none;">Click Here To Register</a>');            
                } 
                else
                {
                    $i=0;
                    $password = mysql_result($check,$i,"password");
                    $_POST['pass'] = stripslashes($_POST['pass']); 
                    $pass = md5($_POST['pass']);  
            if ($pass == $password) 
        { 
            $_SESSION['username']= mysql_result($check,$i,"username");
            mysql_close();
            redirect("/User_CP/user_cp.php");
            } 
        else
        {
        die('Incorrect password, please try again.'); 
        }   
                }
            }//after this html code take place

в файле конфигурации я хранит код подключения к базе данных и код завершения сеанса. здесь

if (isset($_SESSION['LAST_ACTIVITY']) && (time() - $_SESSION['LAST_ACTIVITY'] > 1000)) { // last request was more than 30 minates ago 
    session_destroy();   // destroy session data in storage 
    session_unset();     // unset $_SESSION variable for the runtime 
    } 
$_SESSION['LAST_ACTIVITY'] = time(); // update last activity time stamp 
  • 0
    Просто предложение, вы можете избежать ввода перед запуском запроса с помощью mysql_real_escape_string(..)
  • 0
    @Thrustmaster даже сейчас не может войти
Показать ещё 1 комментарий
Теги:

1 ответ

1

Хорошо, прежде всего, ваша функция redirect отсутствует exit(); после header

function redirect($redirect=null)
    {
    header("Location : $redirect");
    exit();
    }

Проблема в том, что если вы не дадите exit, код будет продолжать работать после функции redirect.

например, здесь вы

redirect("/User_CP/user_cp.php");

И он перенаправит страницу, но php все равно будет запущен, и если после этой строки у вас будет функция session_destroy() или session_unset(), она будет завершена, и сеанс будет истекать.

Также возможно, что даже если сеанс не уничтожается, он может вызвать некоторые конфликты.

Попробуйте exit() и сообщите мне.

  • 0
    все еще получаю ту же проблему.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню