Registrace: Přihlášení uživatelů

Minule jsme uživatele registrovali, nyní si je přihlásíme. K tomu využijeme sessions.

Začneme pěkně z ostra, většinu znáte z minula. Chceme-li od uživatele dostat údaje, zobrazíme mu formulář. Jednoduchý formulář pro přihlášení může vypadat náspedovně:
login.php

<h1>Login</h1>
<form action="login_zpracuj.php" method="post">
  <input type="hidden" name="sent" value=""/>
    <input type="text" name="jmeno" maxlength="32"/> <strong>Už. jméno</strong> <br/>
    <input type="password" name="heslo" maxlength="32"/> <strong>Heslo</strong> <br/>
  <input type="submit" name="send" value="Přihlaš"/>
</form>

O přihlášení se nám postará následující soubor:
login_zpracuj.php

<?php
ob_start();
/*
* Tetno soubor zjisti zda se takovy uzivatel s takovym heslem v databazi nachazi.
* Pokud ano, do sessions o tom ulozime informaci.
* Jinak se samozrejme presmerujeme zpet a dame uzivateli vedet, ze zadal spatne udaje
*/
session_start(); // Budeme pracovat se session, musíme je nastartovat.
if(isset($_POST['jmeno'])){
  require_once 'db.php';
  $name = $_POST['jmeno'];
  $pass = md5($_POST['heslo']);
    $query = mysql_query("SELECT * FROM `uzivatele` WHERE `jmeno` = '$name' and `heslo` = '$pass'") or die (mysql_error());
    // Vybereme uživatele se zadaným jménem a heslem
      $Vysledek = mysql_fetch_array($query);
        if($Vysledek['jmeno']){ // pokud tato proměnná obsahuje data, bylo zadané správné jméno a heslo
          // Do sessions si uložíme pár informací o přihlášeném
          $_SESSION['prihlasen'] = 1;
          $_SESSION['login'] = $Vysledek['jmeno'];
          $_SESSION['UserId'] = $Vysledek['id'];
          $_SESSION['UserWeb'] = $Vysledek['web'];
          $_SESSION['UserMail'] = $Vysledek['mail'];
          $bl="index.php";
          header("location: $bl"); // přesměrujeme na index
          exit;
        }else{
          $bl="index.php?Alert=6";
          header("location: $bl"); // špatně zadané údaje
          exit;
          // echo "Zadal jsi špatné údaje";
        }
    mysql_free_result($query);
}else{
  echo "Zde nic není.";
}
ob_end_flush();
?>

Do sessions jsme si uložili informace o přihlášeném uživateli, dokud se uživatel neodhlásí nebo nezavře okno prohlížeče, tyto informace budou dostupné.
Pokud byste chtěli uživatele přihlásit jen třeba na 30 minut, není problém si do sessions uložit aktuální čas a ten poté při každé akci kontrolovat jestli není starší 30minut a přidávat další. V případě času staršího 30minut sessions zničit.

Další použité funkce:

Jak celou registraci zasadit do webu vám ukážu v příštím článku, kde bude i možnost stažení.

Ukázka: Registrace v PHP – ukázka

Navazující články


<Starší | tento článek | Novější>

Napsáno: 13. 8. 2006, 00:33 | Přečteno: 32445x | Kategorie: PHP School | Napsal: peCan.cz |
Víte kdy jste maximálně opilí? Když nezvládáte bez cizí pomoci ležet na zemi.
Petr Graubner | ICQ- 264912843, Jabber - pecan27@njs.netlab.cz | RSS | Šlape na miniRS | Styl CoolStyle | Zpracováno za: 0.185s | Počet SQL dotazů ve fóru: 1 | Admin