2017-02-18 7 views
0

У нас есть сеанс выхода из сценария, как:сессия выхода из системы, не закрывая сессию

<?php 
    //24 2 2015 
    session_start(); 
    session_destroy(); 
    header("location:login.php") 
?> 

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

Что делать, если я хотел иметь временный выход из системы, где после выхода из системы он направит нас на страницу входа в систему, где потребуется только пароль, поэтому сеанс не был уничтожен и имя пользователя было передано на эту страницу ...

поэтому, когда вы вводите пароль, он будет проверять ввод в таблице базы данных, где username = session username.

Надеюсь, что я был чист.


Обновление ::

templogout.php

<?php 
    //24 2 2015 
    session_start(); 
    $_SESSION['temp_logout'] = true; 
    header("location:templogin.php") 
?> 

templogin.php

<?php 
    //24 2 2015 
    session_start(); 
?> 
<form id="msform" action="templogincheck.php" method="post"> 
    <fieldset> 
     <input type="password" name="password" placeholder="Enter password here" required /> 
    <button type="submit" name="submit" class="submit action-button"> LogIn </button> 
</form> 

templogincheck.php

<?php 
    //15 2 2015 
    session_start(); 

    $Cser =mysqli_connect("localhost","text","text","text") or die("Server connection failed : ".mysqli_error($Cser)); 

    $password = md5($_REQUEST["password"]); 
    $mobile = $_SESSION['mobile']; 

    $s = "select * from users where password = '".$password."' and mobile = '".$mobile."'"; 
    $result = mysqli_query($Cser,$s); 
    $count = mysqli_num_rows($result); 
    if($count>0) 
    { 
     $_SESSION["mobile"] = $mobile; 
     $_SESSION["login"]="1"; 
     header("location:/index.php"); 
    } 
    else 
    { 
    header("location:/templogin.php"); 
    } 
?> 

index.php

Я надеюсь, что я сделал это правильно, но я должен предположить, у меня есть что-то неправильно причина он не работает ..

Am я прохождения сеанса мобильной чеку входа страница?

пользователя первая страница Логин:

<form id="msform" action="ulogincheck.php" method="post"> 
    <fieldset> 
    <h2 class="fs-title">LogIn</h2> 
    <h3 class="fs-subtitle">Please Enter your details accordingly<br/><br/> <small>(case sensitive)</small></h3> 
     <input type="text" name="email" placeholder="Email" required /> 
     <input type="text" name="mobile" placeholder="Mobile" required /> 
     <input type="password" name="password" placeholder="Password" required /> 
    <button type="submit" name="submit" class="submit action-button"> LogIn </button> 
</form> 

первая страница logincheck

session_start(); 
$email = $_REQUEST["email"]; 
    $mobile = $_REQUEST["mobile"]; 
    $password = md5($_REQUEST["password"]); 


    $s = "select * from users where email='".$email."' and password = '".$password."' and mobile = '".$mobile."'"; 

    $result = mysqli_query($Cser,$s); 

    $count = mysqli_num_rows($result); 

    if($count>0) 
    { 
     $_SESSION["email"] = $email; 
     $_SESSION["mobile"] = $mobile; 
     $_SESSION["login"]="1"; 
     header("location:/index2.php"); 
    } 
    else 
    { 
      header("location:/usersignin.php"); 

ответ

1

Вы можете добавить "temp_logout" поле переменной $_SESSION и когда вы перенаправить пользователя на страницу входа в систему, вы можете проверить на него $_SESSION["temp_logout"] и если это правда, добавить имя пользователя в поле ввода.

выход из сценария:

<?php 
    //24 2 2015 
    session_start(); 
    $_SESSION['temp_logout'] = true; 
    header("location:login.php") 
?> 

Войти Страница:

session_start() 
... 
//where the "username" input is 
<input name="username" <?php if(isset($_SESSION["temp_logout"]){ 
    echo 'value="'.$_SESSION["username"] .'" '; 
} ?> /> 
... 

после преуспевающим входа:

<?php 
    session_start(); 
    unset($_SESSION["temp_logout"]); 
?> 

Кроме того, в любом месте на сайте, не забудьте проверить, пользователь временно выйдет из системы; затем немедленно перенаправить его на страницу входа в систему

+0

Это отличное объяснение .. но что, если после выхода из системы пользователь перенаправляется на страницу входа, где, только на входе, для пароля, а так же входы и логины на странице logincheck.php, мы можем получить имя пользователя для проверки в таблице базы данных? (я надеюсь, что я понял) – harishk

+0

Да, имя пользователя все еще находится в переменной '$ _SESSION [" username "]', просто не забудьте session_start() (вы должны поместить его в начало каждого php-файла, который делает использование '$ _SESSION') –

+0

Я действительно обновил вопрос с вашим предложением ... но похоже, что у вас сбой .... надеюсь, что я был чист ... он просто направляет меня на страницу входа после ввода пароля. – harishk

0

это действительно зависит от вашей платформы: Вы можете только незадана что-то вроде password вместо разрушающего сессии

unset($_SESSION['password']); 

или установить еще один ключ в сессии:

$_SESSION['loggedIn'] = false; 

и перенаправить на страницу входа.

также вы можете поместить имя пользователя в cookie и уничтожить сеанс.

setcookie

Если вы хотите сохранить имя пользователя в куки, лучше зашифровать его по соображениям безопасности.

+0

так, ' ' – harishk

+0

@ mmt41 это сработает? – harishk

+0

@harishk проверить мой ответ –