Skocz do zawartości
Zaloguj się, aby obserwować  
orton21

Logowanie

Polecane posty

Cześć,korzystając poradnika wyszło mi takie coś

 

 

	
		<?php
		// rozpoczęcie buforowania (jest to potrzebne by nie mieć błędów typu headers already sent)
		ob_start();
		
		// start sesji
		session_start();
		
		// połączenie z mysql
		mysql_connect('localhost', 'xxxxxx', 'xxxxxxxx')
		    or die('Nieudane polaczenie z baza danych...');
		
		// wybór bazy danych
		mysql_select_db('xxxxxxx')
		    or die('Nie udalo sie wybrac bazy danych...');
		
		// nagłówek
		echo '<center><h2>Logowanie</h2></center>';
		
		// sprawdzamy czy user jest już zalogowany
		if($_SESSION['logged']) echo 'Już jestes zalogowany!';
		else
		{
		    // tworzymy prosty formularz
		   
		    echo '<center><form action="index.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></center>';
		     // jeśli zostanie naciśnięty przycisk "Zaloguj"
		     if(isset($_POST['ok']))
		     {
		        $nick = trim($_POST['nick']);
		        $pass = trim($_POST['pass']);
		     
		        // sprawdzamy czy wszystkie dane zostały podane
		        if(empty($nick) || empty($pass)) echo 'Wpisz wszystkie pola!';
		       
		         // jeśli tak...
		        else
		        {
		            // filtrujemy dane
		            $nick = strip_tags( mysql_real_escape_string( HTMLSpecialChars($nick)));
		            $pass = strip_tags( mysql_real_escape_string( HTMLSpecialChars($pass)));
		           
		             // kodujemy hasło
		            $pass = md5($pass);
		           
		            // sprawdzamy czy istnieje użytkownik z takim loginem i hasłem
		            $result = mysql_query ("SELECT * FROM 'players' WHERE 'nick' = '{$nick}' AND 'pass' = '{$password}'");
		                          
		             // jeśli nie istnieje
		            if(mysql_num_rows($result)==0) echo 'Niestety podałes niepoprawne dane!';
		         
		             // jeśli tak...
		            else
		            {
		                // dodajemy wynik zapytania do tablicy
		                $row = mysql_fetch_array($result);
		           
		                 // ustawianie sesji że użytkownik jest zalogowany
		                $_SESSION['logged'] = true;
		
		                // dodawanie do sesji nick
		                $_SESSION['nick'] = $row['nick'];
		
		               
		                 // wyświetlenie komunikatu oznaczającego poprawne logowanie
		                echo 'Zostałes poprawnie zalogowany! Możesz teraz przejsć na <a href="index.php">stronę główna</a>';
		                }
		            }
		        }
		    }
		// rozłączenie z bazą danych
		mysql_close();
		
		// koniec buforowania
		ob_end_flush();
		?>
	
		
Tylko teraz gdy wpisuję poprawny login i hasło piszę że są niepoprawne dane. W bazie mam tak w tabeli players:
Nick Password
Test 6F56E9B0A9ADE2FEBFC78EC7370EA165



Nie wczytuje hasła bo jest zakodowane? Jeśli tak to jak mogę zrobić żeby logowanie działało? Z góry dziękuje za pomoc :)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Czyli mam zrobić tak jak tutaj na przykładzie?

$zdanie = "Przykladowe zdanie do zamiany";  //do zmiennej zdanie przypisujemy łańcuch
$zdanie = strtoupper($zdanie);           //zamieniamy litery na wielkie używając funkcji strtoupper
echo $zdanie;                      //wyświetlamy zamienione zdanie

Tylko to 'echo $zmienna ' gdzie mam umiescić?

Edytowano przez orton21 (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Poprawiłem zapytanie,tylko że mam teraz tak

<?php

// rozpoczęcie buforowania (jest to potrzebne by nie mieć błędów typu headers already sent)
ob_start();

// start sesji
session_start();

// połączenie z mysql
mysql_connect('xxx', 'xxx', 'Jxxx')
    or die('Nieudane polaczenie z baza danych...');

// wybór bazy danych
mysql_select_db('xxxk')    
    or die('Nie udalo sie wybrac bazy danych...');

// nagłówek
echo '<center><h2>Logowanie</h2></center>';

// sprawdzamy czy user jest już zalogowany
if($_SESSION['logged']) echo 'Już jestes zalogowany!';
else
{
    // tworzymy prosty formularz
    
    echo '<center><form action="index.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></center>';
     // jeśli zostanie naciśnięty przycisk "Zaloguj"
     if(isset($_POST['ok']))
     {
        $nick = trim($_POST['nick']);
        $pass = trim($_POST['pass']);
 
      
        // sprawdzamy czy wszystkie dane zostały podane
        if(empty($nick) || empty($pass)) echo 'Wpisz wszystkie pola!';
       
         // jeśli tak...
        else
        {
            // filtrujemy dane
            $nick = strip_tags( mysql_real_escape_string( HTMLSpecialChars($nick)));
            $pass = strip_tags( mysql_real_escape_string( HTMLSpecialChars($pass)));
           
             // kodujemy hasło
        $pass = md5(strtoupper(md5($pass)));
   
            
            // sprawdzamy czy istnieje użytkownik z takim loginem i hasłem
            
     
                 $result = mysql_query ("SELECT * FROM `players` WHERE `nick`='$nick' AND `password`='$pass'");
                             
             // jeśli nie istnieje
            if(mysql_num_rows($result)==0) echo 'Niestety podałes niepoprawne dane!';
         
             // jeśli tak...
            else
            {
                // dodajemy wynik zapytania do tablicy
                $row = mysql_fetch_array($result);
           
                 // ustawianie sesji że użytkownik jest zalogowany
                $_SESSION['logged'] = true;

                // dodawanie do sesji id użytkownika, login oraz datę rejestracji
                $_SESSION['nick'] = $row['nick'];

               
                 // wyświetlenie komunikatu oznaczającego poprawne logowanie
                echo 'Zostałes poprawnie zalogowany! Możesz teraz przejsć na <a href="index.php">stronę główna</a>';
                }
            }
        }
    }
// rozłączenie z bazą danych
mysql_close();

// koniec buforowania
ob_end_flush();
?>

To dalej piszę niepoprawne dane. ;/

Edytowano przez orton21 (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

W jaki sposób kodujesz hasło, które zapisujesz w bazie?

 

 

$pass = md5(strtoupper(md5($pass)));

Robi następujące operacje

 

1) md5 z hasła
$pass1 = md5($pass);
2) zamiana liter owego haszu md5 na wielkie
$pass2 = strtoupper($pass1);
3) zrobienie haszu md5  z... tego, co jest wynikiem kroku 2/ więc... md5 z dużymi literami
$pass3 = md5($pass2);

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
$pass = strtoupper(md5($pass));

Raczej to tak powinno wyglądać, po co robisz 2 razy md5?

 

Dodatkowo zmień poradnik bo stosowanie <center> to jakaś masakra jest.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Nie każdy musi być orłem w danej dziedzinie, ale bez przesady. Jak się za coś zabiera, to chociaż podstawy trzeba znać,

a nie biadolić z każdą pierdółką na forum z zerowym własnym wysiłkiem.

 

Jeżeli złapiesz gumę i wołasz o pomoc, to zapewne ktoś się zlituje i ci postara się nakierować (nie wyręczając).

Ale jak owy ktoś powie ci, żebyś wziął klucz do kół i odkręcił śruby, a ty zapytasz co to jest ten klucz do kół,

to najwyższy czas wezwać mechanika/Assistance. Wtedy za drobną opłatą zrobi każde, nawet najbardziej debilne zadanie.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się

Zaloguj się, aby obserwować  

×