За последние 24 часа нас посетили 20704 программиста и 1584 робота. Сейчас ищет 1641 программист ...

Как сделать чтобы логин и пароль не сохранялись?

Тема в разделе "PHP для новичков", создана пользователем kolian899, 7 фев 2017.

  1. kolian899

    kolian899 Новичок

    С нами с:
    23 мар 2014
    Сообщения:
    11
    Симпатии:
    0
    Все привет, помогите или подскажите как такое реализовать.
    Есть форма авторизации ,где есть логин и пароль и чекбокс чужой компьютер.
    Вопрос в том как реализовать чекбокс чужой компьютер на php.
    Чтобы при использовании чек бокса происходила авторизация и переход на другую страницу, после закрытия браузера все сбрасывалось и требовало заново введите логин и пароль .
     
  2. alexblack

    alexblack Старожил

    С нами с:
    20 янв 2016
    Сообщения:
    640
    Симпатии:
    381
    Ну тут собственно дело в том,что без чекбокса setcookie() устанавливает куку на долгий период времени,а с чекбоксом expire у setcookie установлен в 0.А значение 0 означает что срок действия куки истечет с окончанием сессии(закрытие браузера)
    https://secure.php.net/manual/ru/function.setcookie.php
     
  3. kolian899

    kolian899 Новичок

    С нами с:
    23 мар 2014
    Сообщения:
    11
    Симпатии:
    0
    Не знаю , что делаю не так или не понимаю, что-то все сохраняется как есть, при перезапуска браузера.

    index.php

    Код (Text):
    1. <?php
    2. include_once 'date.php';
    3. session_start();
    4. if (isset($_POST['ok'])) {
    5.     if (trim(strip_tags($_POST['login'])) == LOGIN and trim(strip_tags($_POST['pwd'])) == PASSWORD) {
    6.         $_SESSION['login'] = $_POST['login'];
    7.         if (isset($_POST['alien'])){
    8.             setcookie('login', 'login', 0);
    9.         }
    10.         header("location:admin.php");
    11.     } else {
    12.         echo "Неправильно ввели логин или пароль";
    13.     }
    14. }
    15.  
    16. ?>
    17. <!doctype html>
    18. <html>
    19. <head>
    20.     <meta charset="utf-8">
    21.     <title>Форма Авторизации</title>
    22. </head>
    23. <body>
    24. <table>
    25.     <form method="post">
    26.         <tr>
    27.             <td>Имя:</td>
    28.             <td><input type="text" name="login"></td>
    29.         </tr>
    30.         <tr>
    31.             <td>Пароль:</td>
    32.             <td><input type="password" name="pwd"></td>
    33.         </tr>
    34.         <tr>
    35.             <td>&nbsp;</td>
    36.             <td><input type="checkbox" name="alien">Чужой компьютер
    37.             <td>
    38.             <td>&nbsp;</td>
    39.         </tr>
    40.         <tr>
    41.             <td>&nbsp;</td>
    42.             <td><input type="submit" name="ok" value="Войти"></td>
    43.         </tr>
    44.     </form>
    45. </table>
    46. </body>
    47. </html>
    admin.php
    Код (Text):
    1. <?php
    2. session_start();
    3. if (isset($_GET['quit'])) {
    4.     session_destroy();
    5.     header("location:index.php");
    6.     exit;
    7. }
    8. ?>
    9. <!doctype html>
    10. <html>
    11. <head>
    12.     <meta charset="utf-8">
    13.     <title>Добро пожаловать на сайт!</title>
    14. </head>
    15.  
    16. <body>
    17. <?php
    18. if (isset($_SESSION['login'])) echo "Добро пожаловать на веб-сайт, " . $_SESSION['login'] . '!'
    19.     . " <a href='index.php?quit=ok'>Выйти</a>";
    20. ?>
    21. </body>
    22. </html>
     
  4. Sergey_Tsarev

    Sergey_Tsarev Активный пользователь

    С нами с:
    17 мар 2016
    Сообщения:
    502
    Симпатии:
    105
    А если галочка не стоит, то куки вообще не будут создаваться?
    PHP:
    1. if (isset($_POST['alien'])){
    2.             setcookie('login', 'login', 0);
    3.         }
    В admin.php где условие, что если переменной в сессии не существует, то должен быть редирект на index.php?

    PHP:
    1. if (empty($_SESSION['login'])) {
    2. header("location:index.php");
    3. }
    И где проверка существования куки?
     
    kolian899 нравится это.
  5. kolian899

    kolian899 Новичок

    С нами с:
    23 мар 2014
    Сообщения:
    11
    Симпатии:
    0
    Спасибо, за мысли и подсказки! Вроде все заработало с таким кодом.
    Добавил в index.php
    Код (Text):
    1. if (isset($_POST['alien'])){
    2.     setcookie('login', 'login', time()+1);
    3. }else{
    4.     setcookie('login', 'login', time()+360000);
    5. }
    И в admin.php
    Код (Text):
    1. if (empty($_SESSION['login'] and $_COOKIE['login'])) {
    2.     header("location:index.php");
    3.     exit;
    4. }