Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Jak zmodyfikować ten kod aby wysyłał emaile ?
Forum PHP.pl > Forum > Przedszkole
Arkasam
Witam

Standardowo na początku napiszę, że jestem początkującym w dziedzinie PHP i MySQL.
Mam następujący problem. Zakupiłem książkę pt. PHP5 i MySQL Biblia. Jeden z rozdziałów tzn. 44 to "Uwierzytelnianie użytkowników". Wszystko jest fajnie do chwili rejestracji nowego użytkownika. Nie wiem, co zmienić w skrypcie, aby email został wysłany. Poniżej przedstawiam kod źródłowy pliku register_funcs.inc (pozbawiony komentarzy)

Wielkie dzięki za pomoc exclamation.gif

  1. <?php
  2.  
  3. include_once('db_vars.inc');
  4.  
  5. $supersecret_hash_padding =
  6. 'Napis używany do przedłużania krótkich napisów do szyfrowania md5.';
  7.  
  8. function user_register() {
  9. global $supersecret_hash_padding;
  10.  
  11. if (strlen($_POST['user_name'])
  12. <= 25 && strlen($_POST['password1'])
  13. <= 25 && ($_POST['password1'] ==
  14. $_POST['password2']) && strlen($_POST['email'])
  15. <= 50 && validate_email($_POST['email'])) {
  16. if (account_namevalid($_POST['user_name']) ||
  17. strlen($_POST['password1'] >= 6)) {
  18.  
  19. $user_name = strtolower($_POST['user_name']);
  20. $user_name = trim($user_name);
  21. $email= $_POST['email'];
  22. $query = "SELECT user_id
  23. FROM user
  24. WHERE user_name = '$user_name'
  25. OR email = '$email'";
  26. $result = mysql_query($query);
  27. if ($result && mysql_num_rows($result) > 0) {
  28. $feedback = 'BŁĄD - Powtórzona nazwa
  29. użytkownika lub adres poczty elektronicznej';
  30. return $feedback;
  31. } else {
  32.  $first_name = $_POST['first_name'];
  33.  $last_name = $_POST['last_name'];
  34.  $password = md5($_POST['password1']);
  35.  $user_ip = $_SERVER['REMOTE_ADDR'];
  36.  $hash = md5($email.$supersecret_hash_padding);
  37.  
  38. $query = "INSERT INTO user (user_id, user_name, first_name,
  39. last_name, password, email, remote_addr,
  40. confirm_hash, is_confirmed, date_created)
  41.  VALUES (NULL, '$user_name', '$first_name',
  42.  '$last_name', '$password', '$email',
  43.  '$user_ip', '$hash', 0, NOW())";
  44. $result = mysql_query($query);
  45. if (!$result) {
  46. $feedback = 'BŁĄD - Błąd bazy danych';
  47. return $feedback;
  48. } else {
  49. $encoded_email = urlencode($_POST['email']);
  50. $mail_body = <<< EOMAILBODY
  51. Dziękujemy za rejestrację na Example.com.
  52. Kliknij poniższy odnośnik w celu potwierdzenia rejestracji:
  53.  
  54. [url="http://localhost"]http://localhost[/url]
  55. /confirm.php?hash
  56. =$hash&email
  57. =$encoded_email
  58.  
  59. Po otrzymaniu informacji o potwierdzeniu,
  60. będziesz już zalogowany na Exapmle.com
  61. EOMAILBODY;
  62. mail ($email, 'Potwierdzenie rejestracji
  63. na Example.com', $mail_body,
  64. 'From: [email="noreply@example.com"]noreply@example.com'[/email]);
  65.  
  66. $feedback = 'REJESTRACJA SIĘ UDAŁA.
  67. Wkrótce otrzymasz pocztę elektroniczną
  68. z prośbą o potwierdzenie';
  69. return $feedback;
  70. }
  71. }
  72. } else {
  73. $feedback = 'BŁĄD - Niewłaściwa nazwa
  74. użytkownika lub hasło';
  75. return $feedback;
  76. }
  77. } else {
  78. $feedback = 'BŁĄD - Proszę poprawnie
  79. wypełnić wszystkie pola';
  80. return $feedback;
  81. }
  82. }
  83.  
  84. function account_namevalid() {
  85.  
  86. if (strspn($_POST['user_name'],
  87. "abcdefghijklmnopqrstuvwxyz
  88. ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-") == 0)
  89. {
  90. return false;
  91. }
  92.  
  93. if (strspn($_POST['user_name'],
  94. "abcdefghijklmnopqrstuvwxyz
  95. ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_")
  96. != strlen($_POST['user_name'])) {
  97. return false;
  98. }
  99.  
  100. if (strlen($_POST['user_name']) < 5) {
  101. return false;
  102. }
  103. if (strlen($_POST['user_name']) > 25) {
  104. return false;
  105. }
  106.  
  107. if (eregi("^((root)|(bin)|(daemon)|(adm)|(lp)|
  108. (sync)|(shutdown)|(halt)|(mail)|(news)|(uucp)|
  109. (operator)|(games)|(mysql)|(httpd)|(nobody)|
  110. (dummy)|(www)|(cvs)|(shell)|(ftp)|(irc)|(debian)|
  111. (ns)|(download))$", $_POST['user_name'])) {
  112. return false;
  113. }
  114. if (eregi("^(anoncvs_)", $_POST['user_name'])) {
  115. return false;
  116. }
  117.  
  118. return true;
  119. }
  120.  
  121. function validate_email($email) {
  122. return (ereg('^[-!#$%&'*+./0-9=?A-Z^_`a-z{|}~]+
  123. '. [email=""]'@'[/email]. '[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+.' . '
  124. [-!#$%&'*+./0-9=?A-Z^_`a-z{|}~]+$', $email));
  125. }
  126.  
  127.  
  128. function user_confirm() {
  129. global $supersecret_hash_padding;
  130.  
  131. $new_hash = md5($_GET['email'].$supersecret_hash_padding);
  132. if ($new_hash && ($new_hash == $_GET['hash'])) {
  133. $query = "SELECT user_name
  134. FROM user
  135. WHERE confirm_hash = '$new_hash'";
  136. $result = mysql_query($query);
  137. if (!$result || mysql_num_rows($result) < 1) {
  138. $feedback = 'BŁĄD - nie znaleziono skrótu';
  139. return $feedback;
  140. } else {
  141. $email = $_GET['email'];
  142. $hash = $_GET['hash'];
  143. $query = "UPDATE user SET email='$email',
  144. is_confirmed=1 WHERE confirm_hash='$hash'";
  145. $result = mysql_query($query);
  146. return 1;
  147. }
  148. } else {
  149. $feedback = 'BŁĄD - Wartości się nie zgadzają';
  150. return $feedback;
  151. }
  152. }
  153.  
  154. ?>
potreb
Zrób edit posta i dodaj bbcode php i tag do tematu
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.