am incercat si nici o sansa sa reusesc ceva, poate iti dai seama unde este problema
multumesc
acesta este si codu de login
Cod: Selectaţi tot
<?php
// De la https://marplo.net
/**
* Urmatoarea functie sterge randurile din tabelul user_temp mai vechi de 10 min
* verifica daca utilizatorul a incercat de mai multe ori autentificarea
* daca a incercat deja de 3 ori fara nume-parola confirmate
* solicita incercarea unei noi autentificari dupa 10 min
*/
function temp_user($nume) {
GLOBAL $conn;
$data = time();
$data_expir = $data-601;
$ip = $_SERVER['REMOTE_ADDR'];
/* Sterge randurile din tabelul user_temp mai vechi de 10 min */
$sql = "DELETE FROM `user_temp` WHERE `data`<$data_expir";
mysql_query($sql,$conn);
/* Adauga slashuri (pentru nume), daca PHP nu e setat sa adauge implicit */
if(!get_magic_quotes_gpc()) { $nume = addslashes($nume); }
/* Verifica daca numle este in tabelul user_temp */
$sql1 = "SELECT `nume`, `incercari`, `data` FROM `user_temp` WHERE `nume`='$nume'";
$result = mysql_query($sql1,$conn);
if(!$result || (mysql_numrows($result)<1)) {
$sql1 = "INSERT INTO `user_temp` (nume, ip, data) VALUES ('$nume', '$ip', '$data')";
mysql_query($sql1,$conn);
return 'continua';
}
else {
/* Gaseste nr. incercari asociata numelui */
$tbarray = mysql_fetch_array($result);
$incercari = $tbarray['incercari'];
if ($incercari<100) {
$incercari++;
// incrementeaza nr. incercari cu 1 si actualizeaza data
$sql1 = "UPDATE `user_temp` SET `incercari`='$incercari', `data`='$data' WHERE `nume`='$nume'";
$result = mysql_query($sql1);
return 'continua';
}
else if ($incercari>=3) {
$timp = 600 - ($data - $tbarray['data']);
return $timp; // Indica nr. incercari depasit si returneaza timpul pt. calculare asteptare
}
}
}
/**
* Urmatoarea functie verifica daca numele exista in baza de date
* daca da, verifica daca parola se potriveste cu cea din baza de date
* daca numele sau parola nu sunt corecte, returneaza eroarea (1 sau 2).
* pentru nume si parola confirmate returneaza 0.
*/
function confirmUser($nume, $parola) {
GLOBAL $conn;
/* Adauga slashuri daca este necesar (pentru query) */
if(!get_magic_quotes_gpc()) {
$nume = addslashes($nume);
$parola = addslashes($parola);
}
/* Verifica daca numle este in baza de date */
$q = "SELECT parola, aprobat from `utilizatori` WHERE `nume`='$nume'";
$result = mysql_query($q,$conn);
if(!$result || (mysql_numrows($result)<1)) {
return 1; //Indica nume neconfirmat
}
else {
/* Gaseste parola asociata numelui */
$dbarray = mysql_fetch_array($result);
$dbarray['parola'] = stripslashes($dbarray['parola']);
// Verifica daca utilizatorul este confirmat (aprobat 1)
if ($dbarray['aprobat']==0) {
return 3; // Inregistrarea nu a fost aprobata
}
/* Verifica daca parola scrisa este aceeasi cu cea gasita in baza de date */
else if($parola==$dbarray['parola']) {
return 0; // nume si parola confirmate
}
else {
return 2; // indica parola neconfirmata
}
}
}
/**
* Verifica autentificarea prin sesiune - daca utilizatorul este deja autentificat
* verifica daca utilizatorul a fost memorat in cookie
* adaug o sesiune ca utilizatoru este logat
* Apeleaza functia ce verifica daca datele din sesiune sunt corecte cu cele din baza de date
* returneaza TRUE daca utilizatorul este autentificat.
*/
function checkLogin() {
/* verifica daca utilizatorul este memorat in cookie */
if(isset($_COOKIE['cookname']) && isset($_COOKIE['cookpass'])) {
$_SESSION['nume'] = $_COOKIE['cookname'];
$_SESSION['parola'] = $_COOKIE['cookpass'];
}
/* verifica daca exista in sesiune numele si parola setate */
if(isset($_SESSION['nume']) && isset($_SESSION['parola'])) {
/* Confirma daca numele si parola sunt valide */
if(confirmUser($_SESSION['nume'], $_SESSION['parola'])===0) { $result = 'logat'; }
else {
/* daca variabilele sunt incorecte, sterge sesiunea, utilizatorul nu este logat */
unset($_SESSION['nume']);
unset($_SESSION['parola']);
$result = 'nelogat';
}
return $result;
}
/* Utilizatorul nu este logat */
else { return 'nelogat'; }
}
/**
* Determina daca va fi sau nu afisat formularul de autentificare
* arata ca utilizatorul este autentificat, bazat pe variabilele din sesiune, sau mesajele de eroare
*/
function displayLogin($mesaj) {
if(isset($_SESSION['nume']) && $mesaj=='logat') {
$result = '<center>Bine ai venit <b></b>, esti autentificat.<br />
<a href = "profile.php?profile='.$_SESSION['nume'].'">'.$_SESSION['nume'].'</a>
<a href="logout.php">Iesire</a></center>';
}
else if($mesaj=='nelogat') {
// Afiseaza formularul
$result = '<script src="verific.js"></script><!--/ https://marplo.net /-->
<form action="'. $_SERVER['PHP_SELF']. '" method="post" onsubmit="return regcheck(this)">
<table cellspacing="0" cellpadding="0" align="right" class="td">
<tr>
<td>Email adress:</td>
<td>Password:</td>
<td></td>
</tr>
<tr>
<td><div class="input-container"><input type="text" name="nume" maxlength="30" id="nume" /></div></td>
<td><div class="input-container"><input type="password" name="pass" maxlength="30" id="pass" /></div></td>
<td><input type="submit" class="greenButton2" name="sublogin" value="Login" /></td>
</tr>
<tr>
<td><input style="width:3px;height:3px;" type="checkbox" name="remember" checked="checked" />Tine-ma minte</td>
<td><a href="recuper.php">Recuperare parola</a></td>
<td></td>
</tr>
</form>';
}
else {
$result = '<table align="right" bordercolor="red" border=0" cellspacing="0" cellpadding="2" width="270"><tr><td align="center">'. $mesaj. '</td></tr></table>';
}
return $result;
}
/**
* Verifica daca numele si parola au fost trimise prin formularul de logare
* daca da, verifica lungimea numelui si parolei,
* apoi datele in baza de date si creaza sesiunea
*/
if(isset($_POST['sublogin']) && isset($_POST['nume']) && isset($_POST['pass'])) {
// Retinerea adresei (preluata din form) pt. revenire la pagina anterioara
$inapoi = '<br /><b><a href="#" onClick="history.back()">Reveniti</a></b> la pagina anterioara.';
// Elimina spatiile din marginile numelui si parolei
$_POST['nume'] = trim($_POST['nume']);
$_POST['pass'] = trim($_POST['pass']);
/* verifica daca toate campurile au fost completate */
if(!$_POST['nume'] || !$_POST['pass']){
$eroare='Nu ati completat toate campurile'. $inapoi;
}
/* verifica lungimea numelui */
else if(strlen($_POST['nume'])<3 || strlen($_POST['nume'])>32) {
$eroare='Numele trebuie sa contina intre 3 si 32 caractere'. $inapoi;
}
/* verifica lungimea parolei */
else if(strlen($_POST['pass'])<7 || strlen($_POST['pass'])>18) {
$eroare='Parola trebuie sa contina intre 7 si 18 caractere.'. $inapoi;
}
else {
// Verifica si adauga incercarea de logare in tabelul user_temp
$continua = temp_user($_POST['nume']);
if ($continua=='continua') {
$md5pass = md5($_POST['pass']); // Cripteaza parola
/* verifica daca numele este in baza de date si parola este corecta */
$result = confirmUser($_POST['nume'], $md5pass);
/* Seteaza mesajul in cazul in care nume sau parola sunt incorecte */
if($result==1) {
$eroare='Numele <b>'. stripslashes($_POST['nume']). '</b> nu este inregistrat.'. $inapoi. '<br />Daca ati uitat numele -> <a href="recuper.php">Recuperare nume</a>';
}
else if($result==2) {
$eroare='Parola incorecta.'. $inapoi. '<br/>Daca ati uitat parola -> <a href="logare/recuper.php">Recuperare parola</a>';
}
else if($result==3) {
die('<center><br /><br /><font color="red"><h3>Inregistrarea pt. <u>'. stripslashes($_POST['nume']). '</u> este neconfirmata.</h3></font> Verificati contul de e-mail folosit la inregistrare (inclusiv in Spamm) pt. mesajul cu link-ul de confirmare.<br /><br /> Daca doriti sa solicitati un nou e-mail de confirmare, <a href="logare/recuper.php?confirm=1">Click Aici</a></center>');
}
else {
/* daca numele si parola sunt corecte, inregistreaza variabilele in sesiune */
$_SESSION['nume'] = $_POST['nume'];
$_SESSION['parola'] = $md5pass;
/** Aici utilizatorul alege sa fie retinute datele pt.urmatoarea vizita
* seteaza doua cookie-uri, unul care pastreaza numele si al doilea pt. parola
* acestea expira in 100 de zile */
if(isset($_POST['remember'])){
setcookie("cookname", $_SESSION['nume'], time()+60*60*24*100, "/");
setcookie("cookpass", $_SESSION['parola'], time()+60*60*24*100, "/");
}
/* Auto redirect pentru a evita retrimiterea datelor la refresh */
echo '<meta http-equiv="Refresh" content="1;url='.$_SERVER['PHP_SELF'].'">';
exit;
}
}
else {
// Seteaza mesajul cu timpul ramas pana la o noua incercare de autentificare
$continua = floor($continua/60). ' minute, '. ($continua%60). ' secunde';
$eroare = 'Ati depasit nr. incercari permise pt. autentificare. Puteti reincerca dupa <br /><b>'. $continua. '</b>'. $inapoi. '<br /><font color="blue">Daca ati uitat parola -> <a href="logare/recuper.php">Recuperare parola</a></font>';
}
}
}
/* Seteaza variabila logged_in, care poate fi folosita in site pt. afisearea
* valoarea ei reprezinta ce va afisa in pagina, prin apelarea functiei displayLogin()
* Daca exista vreo eroare, apeleaza functia cu acea eroare, altfel, o apeleaza cu rezultatul altei functii checkLogin(), care verifica autentificarea */
$logged_in = (isset($eroare)) ? displayLogin($eroare) : displayLogin(checkLogin());
@mysql_close();
?>