Poslao: 04 Mar 2010 19:42
|
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 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
<?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.
|
|
Poslao: 05 Mar 2010 00:07
|
offline
- milos.z
- Građanin
- 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;
}
}
|
|
|
|
Poslao: 05 Mar 2010 00:19
|
offline
- Pridružio: 13 Mar 2009
- Poruke: 229
|
Probacu skript pa javljamt! Izgleda da moram jos da procitam o $_SESSION i $_HTTP_SESSION_VARS Imam jos jedno pitanje:Kako ce skript da mi proveri da li je to taj password ako je u bazi on kritovan sa md5?
|
|
|
|
Poslao: 05 Mar 2010 00:40
|
offline
- Balkanac82
- Legendarni građanin
- 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
|
|
|
|
Poslao: 05 Mar 2010 00:41
|
offline
- MSMarkoN
- Ugledni građanin
- 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.
|
|
|
|
Poslao: 06 Mar 2010 22:22
|
offline
- Pridružio: 13 Mar 2009
- Poruke: 229
|
Napisano: 05 Mar 2010 1:14
aaaa to sad mi je jasno , uporedjuju se kriptovani passwordi Tenki ju
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?
|
|
|
|
Poslao: 07 Mar 2010 02:00
|
offline
- MSMarkoN
- Ugledni građanin
- 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
}
|
|
|
|