• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Logowanie Cookies

Object Storage Arubacloud
0 głosów
893 wizyt
pytanie zadane 29 listopada 2019 w PHP przez manager96 Bywalec (2,050 p.)

Cześć, mam pytanie, zaczynamy poznawać ciasteczka coockies, zadaniem jest stworzenie skryptu logowania, tym razem zupełnie bez korzystania z sesji. Mam pytanie jak przerobić ten skrypt:


<?php
if($_COOKIE['login'] == 'zalogowany') echo '<font color=#D7D700>Już jestes zalogowany!</font>';
else
{
    if(isset($_POST['ok']))
    {
        $nick = $_POST['nick'];
        $pass = $_POST['pass'];
        if(empty($nick) || empty($pass)) echo '<font color=#E10000>Wpisz wszystkie pola!</font><br/>';
        else
        {  
            if($nick == LOGIN && $pass == HASLO)
            {
                $czas = time();
                setcookie("user", "$nick", $czas+3600);
                setcookie("haslo", "$pass ", $czas+3600);
                setcookie("login", "zalogowany", $czas+3600);
                echo '<font color=#00BB00>Zostałes poprawnie zalogowany!</font> Możesz teraz przejsć na <a href="index.php">stronę główna</a><br/>';
            } 
            else
            {
            echo '<font color=#aeb30d>Niestety podałes niepoprawne dane!</font><br/>';
            }
            
        }
    }
    else
    {
        echo '<form action="login.php" method="POST">
        Nick: <br />
        <input type="text" name="nick"><br />
        Hasło: <br />
        <input type="password" name="pass"><br />
        <input type="submit" name="ok" value="Zaloguj">
        </form><br/>';
    }
}
?>

Żeby zamiast LOGIN i HASLO każdy wpisywał swoje dane użyte podczas rejestracji? 

komentarz 29 listopada 2019 przez Arkadiusz Waluk Ekspert (287,950 p.)
A skąd te dane logowania mają się wziąć? Gdzie trafiają po rejestracji? Z tego miejsca musisz je odczytać i tu sprawdzić.

Poza tym to logowanie jest wadliwe, takich danych jak hasło nie trzyma się w ciasteczku, tym bardziej nie trzyma się w formie plain textu. Trzymanie w ciasteczku informacji, że ktoś jest zalogowany, też nie ma sensu, bo można to zmanipulować bez większego problemu. Nawet jeśli to tylko zadanie do nauki to po co uczyć się czegoś, czego się absolutnie nie robi.
komentarz 29 listopada 2019 przez manager96 Bywalec (2,050 p.)

Po to że potem będziemy musieli ładnie opisać czemu sesja jest bezpieczniejsza. I łatwiejsza kurczę, zmienne sesyjne wiadomo co robią, a jak odczytać (skąd) te wartości z coockies ? Jak to działa? 

W index.php mam jeszcze :

<?php
if($_COOKIE['login'] == 'zalogowany')
{
    echo 'Twój login: '.$_COOKIE['user'].'';
    echo '<br/>';
    echo 'Twoje hasło: '.$_COOKIE['haslo'].'';
    echo '<br/>';    
    echo 'Akcja: '.$_COOKIE['login'].'';
    echo '<br/>';
    echo '<a href="logout.php">Wyloguj</a>';        
}
else{
    echo 'Niezalogowany!!  <a href="login.php">zaloguj</a>';
}
?>

 

komentarz 29 listopada 2019 przez Arkadiusz Waluk Ekspert (287,950 p.)
To ja już nie bardzo rozumiem, czym jest plik pokazany na początku? Wygląda z jednej strony jak logowanie, bo sprawdza dane, z drugiej strony jak rejestracja, bo je zapisuje.

Jeżeli założenie jest takie, że w rejestracji zapiszesz to przez setcookie(), to później w momencie logowania możesz odczytać z $_COOKIE wartości.
komentarz 29 listopada 2019 przez manager96 Bywalec (2,050 p.)
plik na początku to plik login.php który służy do okodowania funkcji logowania wraz z formularze. Index.php wyświetla jedynie status czy jesteś zalogowany czy nie. Aktualnie co bym nie wpisał walidacja jest udana (nie wiem czemu) i zawsze mnie loguje nawet jeśli passy są błędne.
komentarz 29 listopada 2019 przez Arkadiusz Waluk Ekspert (287,950 p.)
A jak wygląda rejestracja? Dane zarejestrowanego po rejestracji są zapisywane do ciasteczka?
komentarz 29 listopada 2019 przez manager96 Bywalec (2,050 p.)
niestety nie, nie mam jeszcze formularzu rejestracji. Mam utworzonego na sztywno użytkownika w bazie danych.
komentarz 29 listopada 2019 przez Arkadiusz Waluk Ekspert (287,950 p.)
Czyli na formularzu logowania trzeba sprawdzić czy podane dane użytkownika pasują do któregoś rekordu z bazy? Wykonaj więc zapytanie do bazy z odpowiednim warunkiem i zobacz czy dane się zgadzają. Jeżeli tak to loguj, jeśli nie zwracaj błąd.

1 odpowiedź

0 głosów
odpowiedź 29 listopada 2019 przez Ehlert Ekspert (212,670 p.)

Przecież gdzieś sesję trzeba trzymać. Inaczej owa sesja nie może trwać. Bo gdzie zapiszesz że użytkownik jest zalogowany?

Mam wrażenie że próbujesz wymyślać jakieś metody, ale zaufaj mi. Wszystkie tematy związane z logowaniem po http zostały wyczerpane. Najlepsze metody i podejścia zostały opisane, więc warto z nich korzystać jeśli nie chcesz być developerem, który naraża tworzony produkt na wyciek danych.

Btw coockies to niepoprawny zapis, co więcej może się źle kojarzyć indecision

Podobne pytania

0 głosów
1 odpowiedź 532 wizyt
pytanie zadane 20 października 2016 w PHP przez MatiiTv Gaduła (3,790 p.)
+1 głos
2 odpowiedzi 195 wizyt
pytanie zadane 30 lipca 2016 w Sieci komputerowe, internet przez Paweł123 Nałogowiec (33,500 p.)
0 głosów
1 odpowiedź 214 wizyt
pytanie zadane 21 sierpnia 2020 w PHP przez Bakkit Dyskutant (7,600 p.)

92,548 zapytań

141,391 odpowiedzi

319,511 komentarzy

61,932 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...