autentificare
Moderatori: Moderatori, Start Moderator
-
Ioana_suciu
- PHPRomania Supporter
- Mesaje: 17
- Membru din: Lun Iul 31, 2006 5:14 pm
autentificare
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.
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.
-
Ioana_suciu
- PHPRomania Supporter
- Mesaje: 17
- Membru din: Lun Iul 31, 2006 5:14 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?
<?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?
-
Ioana_suciu
- PHPRomania Supporter
- Mesaje: 17
- Membru din: Lun Iul 31, 2006 5:14 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
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()
$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
$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()
-
Ioana_suciu
- PHPRomania Supporter
- Mesaje: 17
- Membru din: Lun Iul 31, 2006 5:14 pm
[REZOLVAT]
multumesc baieti. merge, am inlocuit
if($_SESSION['user_curent']=="true")
cu:
if(isset($_SESSION['user_curent']))
if($_SESSION['user_curent']=="true")
cu:
if(isset($_SESSION['user_curent']))
-
Ioana_suciu
- PHPRomania Supporter
- Mesaje: 17
- Membru din: Lun Iul 31, 2006 5:14 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, 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
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.
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.
Cine este conectat
Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 22 vizitatori

