autentificare

Secţiune dedicată începatorilor.

Moderatori: Moderatori, Start Moderator

Ioana_suciu
PHPRomania Supporter
Mesaje: 17
Membru din: Lun Iul 31, 2006 5:14 pm

autentificare

Mesajde Ioana_suciu » Mie Noi 01, 2006 1:47 pm

salut. am si eu o intrebare.
am un site unde intr-o coloana am pus un formular pt autentificare pe site, cum este in coloana dreapta de pe acest site, am facut si scriptul de autentificare, nu stiu cum sa fac ca atunci cand cineva se autentifica sa dispara formularul si sa apara numele celui autentificat, iar daca nu se autentifica, sa ramana formularul.
multumesc anticipat.
Ultima oară modificat Sâm Noi 04, 2006 3:33 pm de către Ioana_suciu, modificat de 2 ori în total.



Avatar utilizator
tudord
Senior Member
Mesaje: 240
Membru din: Lun Feb 27, 2006 2:58 pm
Contact:

Mesajde tudord » Mie Noi 01, 2006 1:53 pm

if($_session['autentifica']=="true")
{
//interoghezi bd-ul si afisezi numele userului

}
else
{
afisezi formularul
print'<form action> etc/
}
viata e complicat de simpla... e ca un array()

Ioana_suciu
PHPRomania Supporter
Mesaje: 17
Membru din: Lun Iul 31, 2006 5:14 pm

Mesajde Ioana_suciu » Mie Noi 01, 2006 2:32 pm

am scriptul cu formularul care arata asa:
<?php
session_start();
if($_SESSION['user_curent']=="true"){
$extrage_nume="SELECT * FROM clienti where nume='".$_SESSION['user_curent']."'";
$extrage=mysql_query($extrage_nume);
$afis_nume=mysql_fetch_array($extrage);
$nume=$afis_nume['nume'];
echo"$nume";
}
else {
?>
<form action="login.php?" method="post">
<input type="text" name="user" size="14"/>
<input type="password" name="pass" size="14"/>
</form>
scriptul login.php:
if($_POST['user']=="" || $_POST['pass']==""){
header("Location: index.php");
exit;
}
include("conectare.php");
$parolaencriptata=md5($_POST['pass']);
$verificare_user="SELECT * FROM clienti WHERE nume='".$_POST['user']."' AND parola='".$parolaencriptata."'";
$verificare=mysql_query($verificare_user);
if(mysql_num_rows($verificare)!=1){
header("Location: index.php");
exit;
}
session_start();
$_SESSION['user_curent']=$_POST['user'];
$_SESSION['parola_encriptata']=$parolaencriptata;
$_SESSION['key_user']=session_id();
if($_SESSION['key_user']!=session_id()){
header("Location: index.php");
exit();
}
header("Location: index.php");
trebuie sa modific ceva sau este totul gresit?

Avatar utilizator
tudord
Senior Member
Mesaje: 240
Membru din: Lun Feb 27, 2006 2:58 pm
Contact:

Mesajde tudord » Mie Noi 01, 2006 2:37 pm

pare a fi corect... doar catrebuie sa mai pui la formular un buton de submit..

ce eroare da?
viata e complicat de simpla... e ca un array()

Ioana_suciu
PHPRomania Supporter
Mesaje: 17
Membru din: Lun Iul 31, 2006 5:14 pm

Mesajde Ioana_suciu » Mie Noi 01, 2006 3:18 pm

era si buton de submit:
<input type="image" src="images/login_buton.jpg"/>
</form>
dupa apasarea butonului, imi afiseaza din nou formularul, fara informatii in campuri.

Avatar utilizator
tudord
Senior Member
Mesaje: 240
Membru din: Lun Feb 27, 2006 2:58 pm
Contact:

Mesajde tudord » Mie Noi 01, 2006 3:33 pm

pai.. scriptul tai va functiona normal doar daca ai un utilizator cu numele "true"
asa ca trebuie sa schimbi ceva

schimba
if($_SESSION['user_curent']=="true")

cu

if($_SESSION['autentificat']=="true")



si in login.php
, acolo unde setezi variabilele de sesiune
mai adaugi asta

$_SESSION['autentificat']="true";

si cred ca va merge
viata e complicat de simpla... e ca un array()

Ioana_suciu
PHPRomania Supporter
Mesaje: 17
Membru din: Lun Iul 31, 2006 5:14 pm

Mesajde Ioana_suciu » Mie Noi 01, 2006 3:52 pm


Avatar utilizator
tudord
Senior Member
Mesaje: 240
Membru din: Lun Feb 27, 2006 2:58 pm
Contact:

Mesajde tudord » Mie Noi 01, 2006 4:18 pm

$extrage_nume="SELECT * FROM clienti where nume='".$_SESSION['user_curent']."'";
$extrage=mysql_query($extrage_nume);
$afis_nume=mysql_fetch_array($extrage);




aici e problema ta.. mysql_query($extrage_nume); nu returneaza valorile pe care le vrei tu.... pune asa
$extrage=mysql_query($extrage_nume) or die(mysql_error());

si vezi ce mesaj de eroare iti returneaza....
s'ar putea ca $_SESSION['user_curent'] sa nu aiba o valoare
viata e complicat de simpla... e ca un array()

Avatar utilizator
Amenthes
Senior Member
Mesaje: 1370
Membru din: Lun Dec 12, 2005 8:00 am
Contact:

Mesajde Amenthes » Mie Noi 01, 2006 6:02 pm

Eu zic sa inlocuiesti:

if($_SESSION['user_curent']=="true")

cu:

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

Avatar utilizator
kyron
Senior Member
Mesaje: 639
Membru din: Joi Sep 16, 2004 1:12 pm
Localitate: Bucuresti
Contact:

Mesajde kyron » Mie Noi 01, 2006 6:19 pm

sau cu

Ioana_suciu
PHPRomania Supporter
Mesaje: 17
Membru din: Lun Iul 31, 2006 5:14 pm

[REZOLVAT]

Mesajde Ioana_suciu » Mie Noi 01, 2006 9:03 pm

multumesc baieti. merge, am inlocuit
if($_SESSION['user_curent']=="true")
cu:
if(isset($_SESSION['user_curent']))

Avatar utilizator
kyron
Senior Member
Mesaje: 639
Membru din: Joi Sep 16, 2004 1:12 pm
Localitate: Bucuresti
Contact:

Mesajde kyron » Joi Noi 02, 2006 12:08 pm

si daca variabila aia de sesiune e setata, dar are valoarea "" sau "false" sau "blablabla", ce faci ? Intra in if-ul ala chiar daca e diferita de "true"

Ioana_suciu
PHPRomania Supporter
Mesaje: 17
Membru din: Lun Iul 31, 2006 5:14 pm

Mesajde Ioana_suciu » Sâm Noi 04, 2006 3:34 pm

se pare ca mai este o ploblema. de ce functioneaza sub firefox, dar sub internet explorer nu?

Avatar utilizator
Amenthes
Senior Member
Mesaje: 1370
Membru din: Lun Dec 12, 2005 8:00 am
Contact:

Mesajde Amenthes » Sâm Noi 04, 2006 5:58 pm

Kyron, din cate vad eu $_SESSION[] ala e setat cu valoarea userului din baza de data, deci numai daca se potriveste. Asa ca nu cred ca are cum sa fie setata la alte valori decat daca userul isi schimba username-ul.

Ioana, daca sunt diferente intre Firefox si IE atunci probabil e din cauza echo-urilor si Header(Location). Vezi sa nu ai nici un echo inainte de Header(Location). Codul care l-ai dat la inceput e valabil si acum, la problema asta?

Ioana_suciu
PHPRomania Supporter
Mesaje: 17
Membru din: Lun Iul 31, 2006 5:14 pm

Mesajde Ioana_suciu » Sâm Noi 04, 2006 7:39 pm

codul este valabil cel de sus cu o mica modificare la cel care contine formularul:
in loc de "if($_SESSION['user_curent']=="true")" este "if($_SESSION['autentificat']=="true") ", iar la login.php ultima linie este: header("Location: index.php?nume=".$_SESSION['user_curent']."");
dupa cum se vede nu este nici un echo inainte de header(location); sau poate trebuie abordata problema autentificarii altfel, dar nu stiu cum.
multumesc.


Înapoi la “PHP Incepători”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 21 vizitatori