Login forma (Sesije)

Login forma (Sesije)

offline
  • Pridružio: 13 Mar 2009
  • Poruke: 229

Ja sam pokusao da napravim neki skolski primer logovanje koristeci sesije, al nece a proradi. Ne prijavljuje gresku ali nece da seloguje Smile E da
neko vreme javljao je gresku "mysql_num_rows(): supplied argument is not a valid MySQL" ali tad sam bio zadao select na pogresne promenjive i kad sam to ispravio ne jvalja gresku ali login ne sljaka Smile

<?php session_start(); if (isset ($_POST['imestudenta'])&& isset ($_POST['password'])) { //Ako je korisnik pokusao da se prijavi $imestudenta=$_POST['imestudenta']; $password=$_POST['password']; $db_conn=mysql_connect("localhost", "root",""); mysql_select_db("prijavaispita",$db_conn); $query="select *from studenti       where imestudenta='$imestudenta'       and password='$password'";        $rezultat=mysql_query($query,$db_conn); if (mysql_num_rows($rezultat)>0) {    //ako je korisnik pronadjen u bazi podataka    //registrujemo njegov indetifikator u sesiji    $HTTP_SESSION_VARS['valid_student']=$imestudenta; } } ?> <html> <body> <h1>Prijava ispita</h1> <?php    if (isset($HTTP_SESSION_VARS['valid_student']))    {       echo 'Vi ste prijavljeni kao: '.       $HTTP_SESSION_VARS['valid_student'].'<br />';       echo '<a href="logout.php">Log out</a><br />';    }    else    {       if (isset($password))       {          //ako se pokusaj prijavljivanja zavrsio neuspehom          echo 'Niste se uspesno logovali';       }       else       {          //Korisnik koji se jos nije prijavio ili se odjavio          echo 'Niste logovani';       }        //generisanje obrasca za prijavljivanje echo '<form action = "login.php" method = "post">'; echo '<table>'; echo '<tr><td>Vase ime:</td>'; echo '<td><input type="text" name="imestudenta"></td></tr>'; echo '<tr><td>Password:</td>'; echo '<td><input type="password" name="password"></td></tr>'; echo '<tr><td colspan="2" align="center">'; echo '<input type="submit" value="Logujte se"></td></tr>'; echo '</table></form>';    } ?> <br> <a href="studenti.php">Studentska sekcija</a> </body> </html>



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Pridružio: 08 Jan 2010
  • Poruke: 101

malo si pobrkao HTTP_SESSION_VARS i SESSION promenljive
nisam testirao kod ali mislim da bi trebalo da radi:

session_start(); if(isset($_SESSION['valid_student'])) {    // korisnik je ulogovan    echo "Vi ste prijavljeni kao: ".$_SESSION['valid_student']; } else {    // korisnik nije ulogovan    if(isset($_POST['imestudenta']) && isset($_POST['password'])) {       // korisnik je uneo podatke za login       $db_conn=mysql_connect("localhost", "root","");       mysql_select_db("prijavaispita",$db_conn);       $imestudenta = mysql_real_escape_string($_POST['imestudenta']);       $password = mysql_real_escape_string($_POST['password']);       $rezultat=mysql_query("select * from studenti where imestudenta='$imestudenta' and password='$password'", $db_conn);       if(mysql_num_rows($rezultat) > 0)          $_SESSION['valid_student'] = $imestudenta;    } }



offline
  • Pridružio: 13 Mar 2009
  • Poruke: 229

Probacu skript pa javljamt! Izgleda da moram jos da procitam o $_SESSION i $_HTTP_SESSION_VARS Smile Imam jos jedno pitanje:Kako ce skript da mi proveri da li je to taj password ako je u bazi on kritovan sa md5?

offline
  • Pridružio: 20 Dec 2004
  • Poruke: 2887
  • Gde živiš: Na Balkanu

password se čuva unutar baze kriptovan
korisnik kuca password, on se kriptuje, pa se takav upoređuje sa onim u bazi

offline
  • Pridružio: 15 Maj 2006
  • Poruke: 333
  • Gde živiš: Babušnica

Tako sto uneti password konvertujes u md5 i onda trazis u bazi taj konvertovani password. Ako ima poklapanja -> success u suprotnom ->failed.

offline
  • Pridružio: 13 Mar 2009
  • Poruke: 229

Napisano: 05 Mar 2010 1:14

aaaa to sad mi je jasno , uporedjuju se kriptovani passwordi Smile Tenki ju Smile

Dopuna: 06 Mar 2010 22:22

Ne znam gde mi je pamet svih ovih dana, mada mislim da je ostala u kafani:D

<?php session_start(); if (isset ($_POST['imestudenta'])&& isset ($_POST['password'])) { //Ako je korisnik pokusao da se prijavi $imestudenta=$_POST['imestudenta']; $password=$_POST['password']; // KAO STO NEKO GORE RECE MORA DA SE UPOREDI DA LI U BAZI POSTOJI SIFRA KRIPTOVANA KAO TAKVA $password=md5($_POST['password']); $db_conn=mysql_connect("localhost", "root",""); mysql_select_db("prijavaispita",$db_conn); $query="select *from studenti       where imestudenta='$imestudenta'       and password='$password'";         $rezultat=mysql_query($query,$db_conn); if (mysql_num_rows($rezultat)>0) {    //ako je korisnik pronadjen u bazi podataka    //registrujemo njegov indetifikator u sesiji    $HTTP_SESSION_VARS['valid_student']=$imestudenta; } } ?> <html> <body> <h1>Prijava ispita</h1> <?php    if (isset($HTTP_SESSION_VARS['valid_student']))    {       echo 'Vi ste prijavljeni kao: '.       $HTTP_SESSION_VARS['valid_student'].'<br />';       echo '<a href="logout.php">Log out</a><br />';    }    else    {       if (isset($password))       {          //ako se pokusaj prijavljivanja zavrsio neuspehom          echo 'Niste se uspesno logovali';       }       else       {          //Korisnik koji se jos nije prijavio ili se odjavio          echo 'Niste logovani';       }         //generisanje obrasca za prijavljivanje echo '<form action = "login.php" method = "post">'; echo '<table>'; echo '<tr><td>Vase ime:</td>'; echo '<td><input type="text" name="imestudenta"></td></tr>'; echo '<tr><td>Password:</td>'; echo '<td><input type="password" name="password"></td></tr>'; echo '<tr><td colspan="2" align="center">'; echo '<input type="submit" value="Logujte se"></td></tr>'; echo '</table></form>';    } ?> <br> <a href="studenti.php">Studentska sekcija</a> </body> </html>

Ali sta mene jos ovde interesuje, to je recimo ako necu da mi pise da sam logovan kao "ime" nego da mi pise da sam logovan kao "ime" "prezime" da li to mogu da odradim sve pod jednim sesion indetifikatorom ili mogu jednostavno da samo na ime nadovezem string $prezimestudenta. Kako bi to bilo sintaksno?

offline
  • Pridružio: 15 Maj 2006
  • Poruke: 333
  • Gde živiš: Babušnica

Mozda da ubacis funkciju koja ce vracati ime i prezime od zadatog id studenta

function prezime_ime($id){ $query="select ime, prezime from studenti       where id='$id'"; $rezultat=mysql_query($query,$db_conn); $row = mysql_fetch_row($rezultat); $ime = $row[0]; $prezime = $row[1]; $prezime_ime = $prezime.' '.$ime; return $prezime_ime; //podrazumeva se da promenis imena polja ime, prezime i id ako nisu ovako definisana }

Ko je trenutno na forumu
 

Ukupno su 533 korisnika na forumu :: 8 registrovanih, 1 sakriven i 524 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: Atomski čoban, cole77, dragonserbia, IchigoKurosaki, pera12345, Pohovani_00, Smd, wolverined4