Autor Zpráva
Michales
Profil
Ahoj vážení,

můžete mi někdo zkontrolovat můj kod na přihlášení?
Ikdyž mám zaškrtnuté tlačítko pamatovat si mě tak mě to stejně po nějaké době odhlásí.

Formulář:
<form class="clearfix" action="login_zpracuj.php" method="post">
                    <h1>Přihlášení<br>
          Login</h1>
                    <label class="grey" for="log">Nick:</label>
                    <input class="field" type="text" name="jmeno" id="log" value="" size="23" />
                    <label class="grey" for="pwd">Password:</label>
                    <input class="field" type="password" name="heslo" id="pwd" size="23" />
            <label><input name="rememberMe" id="rememberMe" type="checkbox" checked="checked" value="1" /> &nbsp;Pamatovat si mě?</label>        
                    <input type="submit" name="submit" value="Login" class="bt_login" />
                    </form>

login_zpracuj:
<?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 'settings_2.php';
  $name = $_POST['jmeno'];
  $pass = md5($_POST['heslo']);
  $remember = $_POST['rememberMe'];
    $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['UserMail'] = $Vysledek['mail'];
          $_SESSION['ip'] = $Vysledek['ip'];

   if(isset($_POST['remember'])){
      setcookie("cookname", $_SESSION['login'], time()+60*60*24*100, "/");
      setcookie("cookid", $_SESSION['UserID'], time()+60*60*24*100, "/");
   }
          $ip=$_SERVER["REMOTE_ADDR"]; 
$tm=date("Y-m-d-H-i-s");
$query = mysql_query("UPDATE uzivatele SET ip = '$ip', tm = '$tm' WHERE `jmeno` = '$name' ") or die (mysql_error());
          $bl=$_SERVER['HTTP_REFERER'];
          header("location: $bl"); // přesměrujeme na index
          exit;
        }else{
        $bl="index.php";
        echo "<p class=data> <center>Špatně zadané údaje</center>";
     print "<script>";
       print " parent.location='$bl';"; // Comment this line if you don't want to redirect
          print "</script>" ;
          exit;
        }
    mysql_free_result($query);
}else{
  echo "Zde nic není.";
}
ob_end_flush();
?>
Díky že mi někdo řekne co kde dělám blbě. Kritiku přijímám




Tak našel jsem chybu v tomto



if(isset($_POST['remember'])){

mělo by tam být



if(isset($_POST['rememberMe'])){

Ale nevím jestli je to právě to co to může způsobovat.


Tak to asi nebude tím, jakmile tu stránku na chvíli zavřu v prohlížeči tak mě to odhlásí.
Prosím další nápady?
Taps
Profil
Michales:
viz http://pecan.cz/index.php?id=42&n=prace-s-cookies

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: