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

Logowanie sie administratora do innego pliku niz uzytkownik

0 głosów
329 wizyt
pytanie zadane 10 czerwca 2019 w PHP przez armanii64 Nowicjusz (140 p.)

cześć, jestem nowy na forum i szukam pomocy, ponieważ poniżej jest skrypt do logowania i chciałbym aby użytkownik ktory ma nick np. "adam" po zalogowaniu, został przekierowany do strony admin.php. reszta uzytkownikow normalnie loguje sie do strony panel.php. Bardzo uprzejmie dziekuje każdemu za pomoc.

<?php
    
    session_start();
    
    if ((!isset($_POST['login'])) || (!isset($_POST['haslo'])))
    {
        header('Location: index.php');
        exit();
    }
    

    require_once "connect.php";

    $polaczenie = @new mysqli($host, $db_user, $db_password, $db_name);
    
    if($polaczenie->connect_errno!=0)
    {   
        echo "Error: ".$polaczenie->connect_errno;
    }
    else
    {
        $login = $_POST['login'];
        $haslo = $_POST['haslo'];
        
        $login = htmlentities($login, ENT_QUOTES, "UTF-8");
        
        
        if ($rezultat = @$polaczenie->query(
        sprintf("SELECT*FROM uzytkownicy WHERE user='%s'",
        mysqli_real_escape_string($polaczenie,$login))))
        {
            $ilu_userow = $rezultat->num_rows;
            if($ilu_userow>0)
            {
                $wiersz = $rezultat->fetch_assoc();
                
                if(password_verify($haslo, $wiersz['pass']) )
                    {
                        
                        $_SESSION['zalogowany'] = true;
                        
                        
                        $_SESSION['id'] = $wiersz ['id'];
                        $_SESSION['user'] = $wiersz ['user'];
                        $_SESSION['drewno'] = $wiersz ['drewno'];
                        $_SESSION['kamien'] = $wiersz ['kamien'];
                        $_SESSION['zboze'] = $wiersz ['zboze'];
                        $_SESSION['email'] = $wiersz ['email'];
                        $_SESSION['dnipremium'] = $wiersz ['dnipremium'];
                        
                        unset($_SESSION['blad']);
                        $rezultat->free();
                        header('Location: panel.php');
                    }
                    else
                    {   
                        $_SESSION['blad'] = '<span style="color:red">Nieprawidłowy login lub haslo!</span>';
                        header('Location: index.php');
                    }
            
            } else {
                
                $_SESSION['blad'] = '<span style="color:red">Nieprawidłowy login lub haslo!</span>';
                header('Location: index.php');
                
            }
        }
        
        $polaczenie->close();
    }
?>

 

1 odpowiedź

–2 głosów
odpowiedź 10 czerwca 2019 przez dawid6512 Gaduła (4,550 p.)

<?php
     
    session_start();
     
    if ((!isset($_POST['login'])) || (!isset($_POST['haslo'])))
    {
        header('Location: index.php');
        exit();
    }
     
 
    require_once "connect.php";
 
    $polaczenie = @new mysqli($host, $db_user, $db_password, $db_name);
     
    if($polaczenie->connect_errno!=0)
    {   
        echo "Error: ".$polaczenie->connect_errno;
    }
    else
    {
        $login = $_POST['login'];
        $haslo = $_POST['haslo'];
         
        $login = htmlentities($login, ENT_QUOTES, "UTF-8");
         
         
        if ($rezultat = @$polaczenie->query(
        sprintf("SELECT*FROM uzytkownicy WHERE user='%s'",
        mysqli_real_escape_string($polaczenie,$login))))
        {
            $ilu_userow = $rezultat->num_rows;
            if($ilu_userow>0)
            {
                $wiersz = $rezultat->fetch_assoc();
                 
                if(password_verify($haslo, $wiersz['pass']) )
                    {
                         
                        $_SESSION['zalogowany'] = true;
                         
                         
                        $_SESSION['id'] = $wiersz ['id'];
                        $_SESSION['user'] = $wiersz ['user'];
                        $_SESSION['drewno'] = $wiersz ['drewno'];
                        $_SESSION['kamien'] = $wiersz ['kamien'];
                        $_SESSION['zboze'] = $wiersz ['zboze'];
                        $_SESSION['email'] = $wiersz ['email'];
                        $_SESSION['dnipremium'] = $wiersz ['dnipremium'];
                         
                        unset($_SESSION['blad']);
                        $rezultat->free();
                        
                        if($wiersz["user'] == "adam"){
                             header('Location: admin.php');
                        }else{
                             header('Location: panel.php');
                        }
                    }
                    else
                    {   
                        $_SESSION['blad'] = '<span style="color:red">Nieprawidłowy login lub haslo!</span>';
                        header('Location: index.php');
                    }
             
            } else {
                 
                $_SESSION['blad'] = '<span style="color:red">Nieprawidłowy login lub haslo!</span>';
                header('Location: index.php');
                 
            }
        }
         
        $polaczenie->close();
    }
?>

 

komentarz 11 czerwca 2019 przez armanii64 Nowicjusz (140 p.)

Warning: PHP Startup: Cannot send session cache limiter - headers already sent (output started at /zaloguj.php:2) in /zaloguj.php on line 4

Warning: Cannot modify header information - headers already sent by (output started at /zaloguj.php:2) in /zaloguj.php on line 57

 

takie bledy wyskakuja

komentarz 11 czerwca 2019 przez Mariusz08 Maniak (62,280 p.)

@dawid6512, Dawanie gotowców nie jest dobre, bo przez to osoba której pomagasz nie uczy się - lepiej dać wędkę niż rybę, nie wspominając o tym, że kod ma błędy które uniemożliwiają poprawne wykonanie skryptu.

komentarz 11 czerwca 2019 przez DeBos123 Nałogowiec (44,950 p.)
Ja osobiście tylko trochę się z tobą zgodzę. Samo dawanie gotowców nie jest dobre.

Z drugiej strony odnosząc się do twojego przykładu to po co dawać wędkę jeżeli ktoś nie umie łowić?

Jeżeli ktoś dostanie tego jednego gotowca i obszerne objaśnienie błędów i poprawek dotyczących jego kodu to moim zdaniem wszystko jest dobrze.
komentarz 11 czerwca 2019 przez dawid6512 Gaduła (4,550 p.)
wiecej minusUW pls, przeciez gosciu jest na poziomie mistrza w PHP

serio wiekszego debilizmu to ja nie widzialem, gosciu sobie ogarnie na przykladzie co i jak, przeciez to tylko 2-3 linijki...

a co do tego bledu, sprobuj ustawic session_start bezposrednio pod <?php

bez zadnych tabulacji itd
komentarz 11 czerwca 2019 przez DeBos123 Nałogowiec (44,950 p.)

serio wiekszego debilizmu to ja nie widzialem, gosciu sobie ogarnie na przykladzie co i jak, przeciez to tylko 2-3 linijki...

Jeżeli byś mu objaśnił czemu jego kod nie działa, a twój tak, to nie byłoby problemu.

komentarz 11 czerwca 2019 przez Mariusz08 Maniak (62,280 p.)

@DeBos123,

Jeśli nie umie łowić to ma dwie możliwości - albo nauczysz się łowić albo zginiesz z braku pożywienia. Jeśli nikt nie da mu gotowca, będzie musiał sam się nauczyć.

Gościu może sobie ogarnąć kod na przykładzie, jeśli chociaż w jakimś stopniu kuma PHP. Jeśli znajomość języka ogranicza się do kopiowania plików z poradników to trzeba mu wyjaśniać linijka po linijce a nie liczyć że sam ogarnie.

Ps. Oprócz session start są inne błędy w tym skrypcie.

 

komentarz 11 czerwca 2019 przez DeBos123 Nałogowiec (44,950 p.)

Jeśli nie umie łowić to ma dwie możliwości - albo nauczysz się łowić albo zginiesz z braku pożywienia. Jeśli nikt nie da mu gotowca, będzie musiał sam się nauczyć.

Dając mu gotowca z wytłumaczeniem uczysz go łowić i łowisz mu pierwszą rybę.

komentarz 11 czerwca 2019 przez Mariusz08 Maniak (62,280 p.)
Jest różnica między pokazaniem jak łowić i zachęceniem do samodzielnego lowienia a daniem ryby

Podobne pytania

0 głosów
2 odpowiedzi 218 wizyt
pytanie zadane 11 listopada 2020 w Java przez Jedwab Użytkownik (550 p.)
0 głosów
1 odpowiedź 1,789 wizyt
0 głosów
1 odpowiedź 273 wizyt
pytanie zadane 30 czerwca 2015 w C i C++ przez Pixel040 Gaduła (3,100 p.)

93,632 zapytań

142,556 odpowiedzi

323,056 komentarzy

63,139 pasjonatów

Advent of Code 2025

Top 15 użytkowników

  1. 2900p. - dia-Chann
  2. 2870p. - DziarnowskiJ
  3. 2827p. - Łukasz Piwowar
  4. 2783p. - raydeal
  5. 2758p. - Adrian Wieprzkowicz
  6. 2713p. - rucin93
  7. 2579p. - Łukasz Eckert
  8. 2523p. - Maurycy W
  9. 2459p. - CC PL
  10. 2082p. - Michal Drewniak
  11. 1885p. - robwarsz
  12. 1851p. - Mariusz Fornal
  13. 1811p. - rafalszastok
  14. 1600p. - Rafał Trójniak
  15. 1588p. - Tomasz Bielak
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! ♡

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

Kursy INF.02 i INF.03
...