logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Logowanie - PHP i MySQL. Skrypt do prostego logowania/rejestracji użytkowników.

axel77 04 Mar 2006 08:12 10315 5
REKLAMA
  • #1 2372014
    axel77
    Poziom 12  
    Posty: 96
    Pomógł: 1
    Ocena: 1
    Witam,
    czy ktos zna jakis skrypt do zrobienia prostego logowania/rejestracji użytkowników w PHP i MySQL? Potrzebne mi są do zabezpieczenia strony. Szukalem troche w internecie, ale niewiele znalazlem.

    I jeszcze jedno pytanie:

    
    Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at D:\WebServ\httpd-users\eszb\baza\funkcje.php:205) in D:\WebServ\httpd-users\eszb\baza\system\index2.php on line 3
    
    Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at D:\WebServ\httpd-users\eszb\baza\funkcje.php:205) in D:\WebServ\httpd-users\eszb\baza\system\index2.php on line 3
    


    co oznaczają te błędy?

    pozdrawiam,
    Michał


    Moderowany przez LEM:

    Przeniesiono z Sieć Internet, Sieci LAN WLAN

  • REKLAMA
  • #2 2374983
    Józef18
    Poziom 32  
    Posty: 1607
    Pomógł: 168
    Ocena: 165
    axel77 napisał:

    
    Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at D:\WebServ\httpd-users\eszb\baza\funkcje.php:205) in D:\WebServ\httpd-users\eszb\baza\system\index2.php on line 3
    
    Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at D:\WebServ\httpd-users\eszb\baza\funkcje.php:205) in D:\WebServ\httpd-users\eszb\baza\system\index2.php on line 3
    

    Jaki kod zawiera plik index2.php ?
    Masz błąd w linii 3 co zawiera ta linia oprócz function.session-start ??

    Pozdrawiam
    Józef
  • REKLAMA
  • #3 2375136
    trzepiz
    Poziom 14  
    Posty: 127
    Pomógł: 6
    Ocena: 1
    Jesli chodzi o samo logowanie to moze to pomoze ..
    http://komputery.katalogi.pl/temat11765/

    aczkolwiek najlepiej i najprosciej zaczac interesowac sie systemami CMS tam wszystko mozna zabezpieczyc na haslo ; czyli kazdy uzytkownik podajas swoj login i haslo - ma nadane prawa do przegladania, sciagania, komentarza itd - w zaleznosci co kto potrzebuje ..

    odsyłam do www.post-nuke.pl -- moze cie to zainteresuje :)
  • REKLAMA
  • #4 2375441
    Troll_u
    Poziom 12  
    Posty: 104
    Pomógł: 3
    Ocena: 3
    jezeli chodzi o te bledy, to na 99% jest to wina kodu. Chodzi o to, że jest w php szereg takich funkcji, ktore musza zostac wykonane zanim jakiekolwiek dane trafia do przegladarki, i session_start() do takich należy:

    jeśli chcesz proste logowanie oparte na mysl + php to masz:

    
    <?
    function lacz()
    {
    $zapytanie=mysql_connect(host, user, haslo);
    if(!$zapytanie)
    	{
    	echo "Połączenie z serwerem bazy danych: <font color='#AA0000'><b>Error</b> Połączenie z serwerem bazy danych nie może zostać zrealizowane, prosimy spróbować póĽniej.</font><br>";
    	} 
    $select_db = mysql_select_db("nazwa_bazy_danych");
    if(!$select_db)
    	{
    	echo "Połączenie z bazą danych: <font color='#AA0000'><b>Error</b> Połączenie z bazą danych nie może zostać zrealizowane, prosimy spróbować póĽniej.</font><br>";
    	} 
    
    }
    
    
    function formularz_loguj()
    {
    ?>
    <form method=post>
    <table><tr>
    <td><tt>Login:</tt></td>
    <td><input type="text" name="login" size="20"></td>
    </tr><tr>
    <td><tt>Hasło:</tt></td>
    <td><input type="password" name="haslo" size="20"></td>
    </tr><tr>
    <td><input type="hidden" name="loguj" value="tak"></td>
    <td><button type="submit" name="wyslij">Loguj</button></td>
    </tr></table></form>
    <?php
    }
    
    
    
    lacz(); // laczymy sie z baza
    if($loguj=="tak") // jesli nacisnieto guzik 'loguj' na forumlarzu
    {
    $zapytanie = "SELECT login, haslo FROM access WHERE login = '$login' AND haslo = password('$haslo')";  
    //wynik 
    $wykonaj = mysql_query($zapytanie); 
    //jeżeli sie udalo to tworzysz sesje 
    if($UsrInfo = mysql_fetch_array($wykonaj)) 
    { 
    $Login = $UsrInfo['login']; 
    session_start(); 
    session_register('Login'); 
    header("Location: main.php"); // przekieruj do strony glownej
    exit; 
    } 
    else 
    { 
    header("Location: index.php"); //przekieruj spowrotem fdo logowania
    exit; 
    } 
    }
    
    session_start(); 
    if (session_is_registered('Login')) 
    { 
    header("Location: main.php"); 
    exit;
    }else{
    formularz_loguj();
    }
    
    


    a potem na kazdej stronie na ktorej chcesz zeby obowiazywalo logowanie

    
    
    <?php 
    session_start(); 
    
    echo "<html>
    <head>
    <META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=iso-8859-2\">
    </head>";
     
    if (session_is_registered('Login')) 
    { 
    TREŚĆ STRONY!!
    }
    else { 
    print("nie jestes zalogowany!"); 
    } 
    ?>
    
    


    Dodano po 2 [minuty]:

    a jesli chodzi o CMS to polecam Mambo Open Source
  • REKLAMA
  • #5 2376430
    ostry_18
    Poziom 24  
    Posty: 824
    Pomógł: 64
    Ocena: 35
    wtrace sie: widze ze plik funkcje.php jest includowany do indexa2.php przed session start. powinno byc odwrotnie. plik funkcje.php wysyła jakies znaki (w lini 205) do przeglądarki (nawet chociazby ' ' - spacje) i przed tymi znakami musza byc wyslane headery HTTP. jak nagłowki sa juz wysłane, to session_stary(), ani setcookie() ani header() nei bedą działac.
  • #6 2376510
    Troll_u
    Poziom 12  
    Posty: 104
    Pomógł: 3
    Ocena: 3
    no wlasnie o tym mowilem :)
REKLAMA