Autor Zpráva
RaZeM
Profil
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
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...');
}
?>
- Heslo máš v databázi uložené jako md5/sha1 hash a nabízíš uživateli možnost ho změnit, nebo ho máš buď nezašifrované vůbec a nebo zašifrované obousměrnou metodou?
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
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

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: