Autor | Zpráva | ||
---|---|---|---|
RaZeM Profil |
#1 · Zasláno: 15. 2. 2012, 19:31:44
Dobry den. Mam urobene zabudnute heslo tak ze pride po vyplneni emailu na email link ktory podla registracneho emailu a hesla automaticky prihlasi uzivatela..akurat ma to aj prihlasi aj videt ze ot je prihlasene ale akoby nejsom na ziadnom uzivatelovi akoby to nenaslo podla mailu uzivatela.. Neviem co tam mam presne dopisat k tomu tu je kod:
<?php $email = $_GET["email"]; include("config.php"); $db; mysql_select_db($dbname, $db); $vysledok = mysql_query( "SELECT * FROM uzivatelia WHERE email='$email'", $db); while ($zaznam = mysql_fetch_array($vysledok) ){ $heslo = $zaznam["heslo"]; if($heslo==$_GET[heslo]){ $_SESSION["id"]=true; header("Location: index.php?clanok=uvod"); } } ?> Neviem presne ako by osm mal zapisat tie SESSIONY alebo nieco aby to rozpoznalo podla toho mailu toho uzivatela.. prosim o rady..dakujem |
||
DarkMeni Profil |
#2 · Zasláno: 15. 2. 2012, 21:11:30
Psal si to z hlavy nebo to máš takto uložené?
<?php $email = $_GET["email"]; include("config.php"); $db; //V aplikaci používáš víc databází nebo jen jednu? mysql_select_db($dbname, $db); $vysledok = mysql_query( "SELECT * FROM uzivatelia WHERE email='$email'", $db); while ($zaznam = mysql_fetch_array($vysledok) ){ $heslo = $zaznam["heslo"]; if($heslo==$_GET[heslo]){ $_SESSION["id"]=true; header("Location: index.php?clanok=uvod"); } } ?> Jestli nechceš něco ve smyslu: <?php include "config.php"; mysql_select_db($dbname); $query_result = mysql_query("SELECT `id` FROM `uzivatelia` WHERE `email` = '".mysql_real_escape_string($_GET['email'])."' AND MD5(`heslo`) = '".mysql_real_escape_string($_GET['heslo'])."'"); if(mysql_num_rows($query_result) == 1){ $id = mysql_fetch_assoc($query_result); $_SESSION['id'] = $id['id']; header("location: prihlasen.php..."); }else{ header('location: prihlaseni_se_nezdarilo.php...'); } ?> |
||
RaZeM Profil |
tak pisal som to este s jednym chalaniskom.. to config vyzera takto:
<?php $db = mysql_connect("localhost", "blabla", "blabla"); $dbname = razem ?> no mam to v SHA1..cize te link na emaily ho ma len prihlasit potom ma ist uzivatel na profil a tam je zmenenie hesla. |
||
Again Profil |
Nevím pořád, co je na tom tak těžkého. Tak dobře minulé jsme skončili u odkazu, přes email (odkaz URL) pošleš 2 údaje - heslo v sha1 a email. Tyto údaje následně srovnáš s údaji v databázi a pokud takový uživatel existuje, potom podle emailové adresy získáš jeho heslo, jméno, id uživatele -> vložíš do SESSION a provedeš normální přihlášení ...
Zkus tohle: <?php include "config.php"; mysql_select_db($dbname); $count = mysql_query("SELECT id, jmeno, email, heslo FROM `uzivatelia` WHERE (email LIKE '".mysql_real_escape_string($_GET['email'])."') AND (heslo LIKE '".mysql_real_escape_string($_GET['heslo']).")") or die(mysql_error()); // Zkontroluje jestli daný uživatel je v databázi a poté vybere id, jmeno, email, heslo if (!$result = MySQL_Fetch_Array($count)){ // pokud uživatel není v databázi přesměruje na index.php Header("Location: index.php"); }else{ // nebo pokud je uživatel v databázi, přiřadíme SESSION a přesměrujeme na index.php (uživatel je přihlášený) Session_Start(); $_SESSION['id'] = $result['id']; $_SESSION['jmeno'] = $result['jmeno']; $_SESSION['email'] = $result['email']; $_SESSION['heslo'] = $result['heslo']; Header("Location: index.php"); } ?> Psal jsem to zpaměti, snad tam není žádná chyba ... |
||
RaZeM Profil |
no ja to fakt dalej neviem uz spravit tak aby to islo, trapim sa s tym od vcera stale :D .... no ide mi to po to overenie len neviem uz ako to overenie tam dorobit
pise chybu ze: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''rakomichal@gmail.com)' at line 1 |
||
RaZeM Profil |
#6 · Zasláno: 15. 2. 2012, 22:57:52 · Upravil/a: RaZeM
chybalo tam ' ..ale ja tak to nejde ma to neprihlasi ani nic nevypise
no uz to funguje..akurat tam boli 2 chybicky v kode ta ' a potom z get namiesto heslo si napisal email..ale uz to ide dobre dakujem velmi pekneee |
||
Časová prodleva: 12 let
|
0