Pagina 1 din 2
autentificare
Scris: Mie Noi 01, 2006 1:47 pm
de Ioana_suciu
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.
Scris: Mie Noi 01, 2006 1:53 pm
de tudord
if($_session['autentifica']=="true")
{
//interoghezi bd-ul si afisezi numele userului
}
else
{
afisezi formularul
print'<form action> etc/
}
Scris: Mie Noi 01, 2006 2:32 pm
de Ioana_suciu
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?
Scris: Mie Noi 01, 2006 2:37 pm
de tudord
pare a fi corect... doar catrebuie sa mai pui la formular un buton de submit..
ce eroare da?
Scris: Mie Noi 01, 2006 3:18 pm
de Ioana_suciu
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.
Scris: Mie Noi 01, 2006 3:33 pm
de tudord
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
Scris: Mie Noi 01, 2006 3:52 pm
de Ioana_suciu
Scris: Mie Noi 01, 2006 4:18 pm
de tudord
$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
Scris: Mie Noi 01, 2006 6:02 pm
de Amenthes
Eu zic sa inlocuiesti:
if($_SESSION['user_curent']=="true")
cu:
if(isset($_SESSION['user_curent']))
Scris: Mie Noi 01, 2006 6:19 pm
de kyron
sau cu
[REZOLVAT]
Scris: Mie Noi 01, 2006 9:03 pm
de Ioana_suciu
multumesc baieti. merge, am inlocuit
if($_SESSION['user_curent']=="true")
cu:
if(isset($_SESSION['user_curent']))
Scris: Joi Noi 02, 2006 12:08 pm
de kyron
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"
Scris: Sâm Noi 04, 2006 3:34 pm
de Ioana_suciu
se pare ca mai este o ploblema. de ce functioneaza sub firefox, dar sub internet explorer nu?
Scris: Sâm Noi 04, 2006 5:58 pm
de Amenthes
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?
Scris: Sâm Noi 04, 2006 7:39 pm
de Ioana_suciu
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.