Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] Przypomnienie...
Forum PHP.pl > Forum > Przedszkole
Pertvv
Witam. Mam problem. Ostatnio pisałem w jednym temacie na ten sam temat, ale pojawił się nowy problem. Wygląda to tak, że sprawdza nicka i maila czy istnieje w bazie, no ale jak chcę sprawdzić czy e-mail pasuje do nicka to też sprawdza, ale jak się się zgadza e-mail z nickiem to nie dodaje tylko pokazuje to samo jak w przypadku gdybym wpisał e-mail nie pasujący do siebie z nickiem. Jak to rozwiązać ?

  1. <?php 
  2.  
  3. mysql_connect ('localhost','root','some');
  4.  
  5. $email= mysql_query ("SELECT user FROM base WHERE user='".trim($_POST['nick'])."'");
  6. $nick= mysql_query ("SELECT email FROM base WHERE email='".trim($_POST['email'])."'");
  7. $chmailnick= mysql_query ("SELECT email,user FROM base WHERE email='".trim($_POST['email'])."' AND 
  8. user='".trim($_POST['nick'])."'");
  9. $chemail= mysql_fetch_assoc($email);
  10. $chnick= mysql_fetch_assoc($nick);
  11.  
  12. if (!empty($_POST['email']) && !empty($_POST['nick'])) {
  13.  
  14. if ($chemail > 1 && $chnick > 1 && $chemail == $chnick) {
  15.  
  16. $mail= $_POST['email'];
  17. $password= mysql_query("SELECT password FROM `base` WHERE `email`='".$_POST['email']."'");
  18. $subject= 'Forgotten password';
  19. $message= 'Yo, Your nick is: ' . $nick . 'Password: ' . $password;
  20. $header= 'From: example@example.com';
  21.  
  22. mail ($mail, $subject, $message, $header);
  23.  
  24. echo 'Password has been sent :)';
  25.  
  26. }
  27.  
  28. else {
  29.  
  30. if ($chemail < 1) {
  31.  
  32. echo 'E-mail does not exist in the base';
  33.  
  34. }
  35.  
  36. if ($chnick < 1) {
  37. echo 'Nick does not exist in the base';
  38. }
  39.  
  40. if ($chemail != $chnick) {
  41. echo 'E-mail does not fit Nick';
  42. }
  43.  
  44. }
  45.  
  46. }
  47.  
  48.  
  49.  
  50. else {
  51. echo 'Type all information';
  52. }
  53.  
  54. ?>


  1. <!DOCTYPE html
  2. PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  3. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  4. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
  5. <meta http-equiv="Content-type" content="application/xhtml+xml; charset=iso-8859-2" />
  6. <meta name="Description" content="Something" />
  7. <meta name="Keywords" content="Something" />
  8. <meta name="Author" content="Author " />
  9. <link rel="Stylesheet" href="style.css" type="text/css" />
  10. <title>Title</title>
  11. </head>
  12.  
  13. <form action="remind.php" method="post">
  14. <div id="remind">
  15. E-mail: <input type="text" name="email" />
  16. Nick: <input type="text" name="nick" />
  17. <input type="submit" value="Send" />
  18. </div>
  19. </form>
  20.  
  21.  
  22. </body>
  23. </html>
nithajasz
  1. <?php
  2. if(isset($_POST['user']) && isset($_POST['email'])){ // sprawdzenie czy zostały wypełnione wszystkie pola w formularzu
  3. $con = mysql_connect($host, $user, $pass); //nawiazanie połączenia z baza
  4. if($con) { // sprawdzenie czy polaczenie istnieje
  5. mysql_select_db($baza); //wybranie bazy
  6. $query = "SELECT id, user, email FROM base WHERE user='".trim($_POST['user'])."' AND email='".trim($_POST['email'])."'"; // pobranie z bazy rekordu zgadzajacego sie z podanymi w formularzu danymi
  7. $rQuery = mysql_query($query); 
  8. $result = mysql_fetch_array($rQuery); // operacje na bazie danych w celu wyjecia rekordu 
  9.  
  10.  
  11. if($result['id']){ // sprawdzenie czy rekord istnieje
  12. // ustawienia dla funkcji mail();
  13.  $mail= $_POST['email']; 
  14.  $password= mysql_query("SELECT password FROM `base` WHERE `email`='".trim($_POST['email'])."'");
  15.  $subject= 'Forgotten password';
  16.  $message= 'Yo, Your nick is: ' . $nick . 'Password: ' . $password;
  17.  $header= 'From: example@example.com';
  18.  
  19.  mail ($mail, $subject, $message, $header); //wyslanie emaila
  20.  
  21.  echo 'Password has been sent :)';
  22. } 
  23. else {
  24. echo 'Użytkownik nie istnieje w bazie danych!'; //operacja gdy nie znaleziono rekordu w bazie
  25. }
  26. }
  27. else {
  28. die ('Nie mozna nawiazac polaczenia z baza danych!'); // operacja gdy nie nawiazano polaczenia z baza
  29. }
  30. else {
  31.  echo 'Wypelnij wymagane pola!'; //operacja gdy nie wypelniono wszystkich pol
  32.  }
  33. ?>


Tak słowem odemnie dodatkowo, przechowuj hasło w bazie zaszyfrowane (md5()winksmiley.jpg, a zamiast przypomnienia generuj nowe hasło dla użytkownika i przed wysłaniem mu informacji poprzez mail(); zapisuj je w bazie. Dużo bezpieczniejsze to jest niż trzymanie hasła w czystej postaci.

Prosta funkcja do generowania haseł :

  1. <?php
  2. function random_passwd($num) { // $num = ilosc znaków hasła
  3. $string = str_shuffle('abcefghijklmnopqrstuvwxyz1234567890');
  4. $password = substr($string, 1, $num);
  5.  
  6. return $password;
  7. }
  8. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.