Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] Aktywacja konta
Forum PHP.pl > Forum > PHP
kunegunda
Poniżej zamieszcam skrypt potwierdzenia rejestracji - aktywacji konta. I niby wszystko działa dobrze ale po rejestracji wysłany mail, nie zawiera linka do aktywacji (jest pusty). Co jest nie tak w tym kodzie? Dodam że dane do tabeli mysql są dodawane poprawnie.


  1. <?php
  2.  
  3. $conn=@mysql_connect('***,'**','***) or die ('Brak połączenia z bazą danych');
  4. @mysql_select_db('db977129') or die ('Błąd podczas wyboru bazy danych');
  5.  
  6. if($_POST["regEnd"]=="true")
  7. {
  8. $query=mysql_query("SELECT * FROM users WHERE u_name='$_POST[userName]' ");
  9. if(!$_POST["userName"] OR !$_POST["userPasswd1"] OR !$_POST["userPasswd2"] OR !$_POST["userEmail"])
  10. {
  11. print"Nie wypelniono wszystkich pól";
  12. }
  13. elseif($_POST["userPasswd1"]!=$_POST["userPasswd2"])
  14. {
  15. print"Podane hasła nie sa takie same";
  16. }
  17. elseif (!eregi("^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,4}$",$_POST["userEmail"]))
  18. {
  19. print"Podany email nie jest prawidłowy";
  20. }
  21. elseif(strlen($_POST["userName"])<4 OR strlen($_POST["userPasswd1"])<4)
  22. {
  23. print"Nazwa i hasło muszą miec przynajmniej 4 znaki";
  24. }
  25. elseif(mysql_num_rows($query)==1)
  26. {
  27. print"Podana nazwa uzytkownika jest juz zajęta. Wybierz inna";
  28. }
  29. else
  30. {
  31. $_POST["userPasswd1"]=SHA1($_POST["userPasswd1"]);
  32. $actCode=str_shuffle("qwertyuiopasdfghjklzxcvbnm1234567890");
  33. $headers="MIME-Version: 1.0\r\n";
  34. $headers.="Content-type: text/html; charset=iso-8859-2\r\n";
  35. $content="<html><head><title>Aktywacja Konta</title</head>
  36. <body>
  37. Aby aktywować konto na stronie XXXX musisz kliknąć poniższy link aktywujący:<br>
  38. <a href=\"http://drzewex.yoyo.pl/activ/register.php?active=".$actCode."\"> http://twojastrona.com/www/register.php?ac...;actCode." </a><br>
  39. Dziękuje admin strony XXXX</body></html>";
  40. mail($_POST["userEmail"], "Link Aktywacyjny", $content, $headers);
  41. mysql_query("INSERT INTO users (u_name, u_password, u_email, u_activation_key) VALUES('$_POST[userName]', '$_POST[userPasswd1]', '$_POST[userEmail]', '$actCode')");
  42. print"Zostales zarejestrowany pomyslnie, jednak ta strona wymaga aktywacji kont przez email. Na podany adres emailowy zostal wyslany klucz aktywacyjny. Email powinien zostac wyslany w ciagu kilku minut, jesli tak sie nie stanie skontaktuj sie z administratorem strony.";
  43. }
  44. }
  45. elseif($_GET["active"])
  46. {
  47. mysql_query("UPDATE users SET u_active=1 WHERE u_activation_key='$_GET[active]' ");
  48. if(mysql_affected_rows()==1)
  49. {
  50. print"Aktywacja ukonczona pomyślnie. Możesz już korzystać z naszego serwisu.";
  51. }
  52. else
  53. {
  54. print"Podano nieistniejący kod aktywacyjny.";
  55. }
  56. }
  57. else
  58. {
  59. include"form.inc";
  60. }
  61. ?>


Tabela sql:

  1. CREATE TABLE users (
  2. u_id int(11) NOT NULL AUTO_INCREMENT,
  3. u_name varchar(32) NOT NULL DEFAULT '',
  4. u_password varchar(40) NOT NULL DEFAULT '',
  5. u_email varchar(64) NOT NULL DEFAULT '',
  6. u_activation_key varchar(40) NOT NULL DEFAULT '',
  7. u_active int(1) NOT NULL DEFAULT '0',
  8. PRIMARY KEY (u_id)
  9. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;


Z góry dziękuje za jakąkolwiek pomoc
tehaha
rozumiem, że wiadomość jest wysyłana tylko link zawarty w wiadomości nie działa, wydaje mi się, że ta część może być za to odpowiedzialna:
  1. <a href=\"http://drzewex.yoyo.pl/activ/register.php?active=".$actCode."\"> <a href="http://twojastrona.com/www/register.php?ac...;actCode.&quot;" target="_blank">http://twojastrona.com/www/register.php?ac...;actCode."</a> </a><br>
a dokładniej ta kropeczka i cudzysłów w nazwie linku, spróbuj z czymś takim:
  1. <a href=\"http://drzewex.yoyo.pl/activ/register.php?active=".$actCode."\">http://drzewex.yoyo.pl/activ/register.php?active=".$actCode."</a><br>
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.