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

Dołączenie sesji do systemu logowania PHP

Aruba Cloud PRO i VPS, Openstack, VMWare, MS Hyper-V
0 głosów
135 wizyt
pytanie zadane 12 kwietnia 2019 w PHP przez Sinq Nowicjusz (120 p.)

Cześć. PHP jeszcze nie tknąłem ale potrzebuję wykonać prosty system logowania. Chciałbym, aby użytkownik nie mógł wejść na daną podstronę bez zalogowania - wiem, że można do tego wykorzystać sesję PHP. Nie wiem jednak jak to zaimplementować.

<body>
    <form method="post" class="login-form">
        <div class="input-container">
            <i class="fas fa-user"></i>
            <input type="text" name="login" placeholder="Login" required>
        </div>
        <div class="input-container">
            <i class="fas fa-lock"></i>
            <input type="password" name="password" placeholder="Hasło" required>
        </div>
        <button name="submit">Logowanie</button>
    </form>
</body>

</html>

<?php

if(isset($_POST['submit'])){
    $user = $_POST['login'];
    $pass = $_POST['password'];
    if($user=="admin" && $pass=="pass"){
        $_SESSION['login'] = true;
        header('Location: generator.html');
    }
}

?>

 

1 odpowiedź

0 głosów
odpowiedź 12 kwietnia 2019 przez Luna Cognita Dyskutant (8,150 p.)
Przecież jest ok? Dodaj jeszcze action="" w <form> jak chcesz się odwołać do tego samego pliku
komentarz 12 kwietnia 2019 przez Sinq Nowicjusz (120 p.)
Logowanie działa, ale chciałbym zablokować użytkownikowi wejście na podstronę "generator.html" jeżeli nie będzie zalogowany.
komentarz 12 kwietnia 2019 przez Luna Cognita Dyskutant (8,150 p.)
dodaj na początku pliku sprawdzanie:

<?php if($_SESSION['login']) { ?>

 

i na końcu pliku:

 

<?php } ?>
komentarz 12 kwietnia 2019 przez Sinq Nowicjusz (120 p.)

Dodałem to do pliku, do którego ma być przekierowany użytkownik po zalogowaniu i wyskakuje błąd: Notice: Undefined variable: _SESSION. Po tym dodałem session_start() na początku i wyskakuje: Notice: Undefined index: login.

komentarz 12 kwietnia 2019 przez Luna Cognita Dyskutant (8,150 p.)
edycja 13 kwietnia 2019 przez Luna Cognita
Jak sama nazwa błędu wskazuje, zmienne nie są zadeklarowane, możesz je zadeklarować dodając np. $sessionLogin = $_SESSION['login'] na początku pliku itp, a następnie sprawdzasz:

 

<?php $sessionLogin = $_SESSION['login']; if($sessionLogin){ ?>

i na końcu dajesz

 

<?php } else { echo 'Login lub haslo jest niepoprawne.'; } ?>

Podobne pytania

0 głosów
4 odpowiedzi 202 wizyt
pytanie zadane 1 grudnia 2015 w PHP przez migacz100 Mądrala (5,410 p.)
+1 głos
3 odpowiedzi 630 wizyt
pytanie zadane 27 czerwca 2015 w PHP przez kamil_1996 Nowicjusz (130 p.)
+1 głos
1 odpowiedź 147 wizyt
pytanie zadane 6 marca 2021 w PHP przez Mateusz Wydra Nowicjusz (240 p.)

89,745 zapytań

138,348 odpowiedzi

309,369 komentarzy

59,659 pasjonatów

Advent of Code 2022

Top 15 użytkowników

  1. 747p. - Argeento
  2. 696p. - Mikbac
  3. 693p. - Michal Drewniak
  4. 692p. - rucin93
  5. 688p. - Łukasz Eckert
  6. 679p. - ssynowiec
  7. 678p. - TheLukaszNs
  8. 645p. - Jarosław Roszyk
  9. 640p. - adrian17
  10. 592p. - nidomika
  11. 522p. - JMazurkiewicz
  12. 515p. - Hubert Chęciński
  13. 506p. - tokox
  14. 501p. - Rafał Budzis
  15. 498p. - overcq
Szczegóły i pełne wyniki

Motyw:

Akcja Pajacyk

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

Sklep oferujący ćwiczenia JavaScript, PHP, rozmowy rekrutacyjne dla programistów i inne materiały

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...