[PHP][MySQL] Logowanie


(master of disaster) #1

Witam!

Mam problem z logowaniem, otóż jak odświerze strone to już nie jestem zalogowany.

kod:


(kostek135) #2

Bo jest to źle napisane po przeładowaniu strony zmienna post zostaje wyzerowana

if($login) {


   $rezultat=mysql_query("select id FROM tabela WHERE user='$user' AND pass='$pass'");


   if(@mysql_num_rows($rezultat)) { 

      $row = mysql_fetch_row($rezultat);

      $_SESSION['uzytkownik'] = $row[0];

      include("includes/logged.php");

      exit;

   }

   else {

      echo "Podales zle dane. Sproboj ponownie.";

   }


 }

else {

        include("includes/not_logged.php");

        exit;

}

Wykonuje się więc ostatni else.


(master of disaster) #3

To co zrobić, usunąć to else ? możesz podać kod ?


(kostek135) #4
<?php

session_start();


mysql_connect('localhost','root','haslo') or die(mysql_error());

mysql_select_db('nk') or die(mysql_error());


$user = strip_tags($_POST['user']);

$pass = strip_tags(md5($_POST['pass']));

$login=$_POST['login'];

if($login)

{

   $rezultat=mysql_query("select id FROM tabela WHERE user='$user' AND pass='$pass'");

   if(@mysql_num_rows($rezultat))

   { 

      $row = mysql_fetch_row($rezultat);

      $_SESSION['uzytkownik'] = $row[0];

   }

   elseif(!isset($_SESSION['uzytkownik']))

   {

      echo 'Podales zle dane. Sproboj ponownie.';

   }

}

if(isset($_SESSION['uzytkownik']))

{

   include('includes/logged.php');

}

else

{

   include('includes/not_logged.php');

}

?>

Powinno być dobrze, niemniej nie sprawdzałem.

EDIT uaktualniłem kod, zapomniałem o warunku co będzie, jeśli sesja już istnieje, a zmienna login nie będzie istnieć.


(master of disaster) #5

Dzięki wielkie :wink:


(Szarex2 0) #6

A ja mam pytanie dotyczące tej linijki:

$pass = strip_tags(md5($_POST['pass'])); [/code]

Wynik funkcji md5 nie zawiera już tagów. Po co stosować więc strip_tags dla ciągu md5? Jakiś sens miało by za to:

[code=php]$pass = md5(strip_tags($_POST['pass']));