Witam!

Może to krótki i prosty skrypt, ale nie mogę sobie z tym poradzić, wiecie... dopiero zaczynam tongue.gif

Skrypt ma aktywować dostęp do strony przez kliknięcie w link wysłany na pocztę...


tabela

  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=latin2;


Plik form.html


  1. <?php
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <head>
  5. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />
  6. <title>Untitled Document</title>
  7. </head>
  8. <body>
  9. <form action="register.php" method="post">
  10. <input type="hidden" name="regEnd" value="true">
  11. Nazwa <input type="text" name="userName" maxlength="32"><br>
  12. Hasło <input type="password" name="userPasswd1" maxlength="8"><br>
  13. Powtórz Hasło <input type="password" name="userPasswd2" maxlength="8"><br>
  14. Podaj E-Mail <input type="text" name="userEmail" maxlength="64"><br>
  15. <input type="submit" value="Rejestruj">
  16. </form>
  17. </body>
  18. </html>
  19. ?>


plik register.php


  1. <?php
  2. if($_POST["regEnd"]=="true")
  3. {
  4. $connect = mysql_connect('localhost', 'reaktor2', '');
  5. $db = mysql_select_db('reaktor2_uk_db', '$connect');
  6.  $query=mysql_query("SELECT * FROM users WHERE u_name='$_POST[userName]' ");
  7.  if(!$_POST["userName"] OR !$_POST["userPasswd1"] OR !$_POST["userPasswd2"] OR !$_POST["userEmail"])
  8.  {
  9.  print"Nie wypelniono wszystkich pól";
  10.  }
  11.  elseif($_POST["userPasswd1"]!=$_POST["userPasswd2"])
  12.  {
  13.  print"Podane hasła nie sa takie same";
  14.  
  15.  }
  16.  elseif(strlen($_POST["userName"])<4 OR strlen($_POST["userPasswd1"])<4)
  17.  {
  18.  print"Nazwa i hasło muszą miec przynajmniej 4 znaki";
  19.  }
  20.  elseif(mysql_num_rows($query)==1)
  21.  {
  22.  print"Podana nazwa uzytkownika jest juz zajęta. Wybierz inna";
  23.  }
  24.  else
  25.  {
  26.  $actCode=str_shuffle("qwertyuiopasdfghjklzxcvbnm1234567890");
  27.  $headers="MIME-Version: 1.0rn";
  28.  $headers.="Content-type: text/html; charset=iso-8859-2rn";
  29.  $content="<html><head><title>Aktywacja Konta</title</head>
  30.  <body>
  31.  Aby aktywować konto na stronie XXXX musisz kliknąć poniższy link aktywujący:<br>
  32.  <a href="http://nazwa_hosta/register2.php?active=".$actCode.""> <a href="http://nazwa_hosta/register2.php?active=".$actCode."" target="_blank">http://nazwa_hosta/register2.php?active=&q...;actCode."</a> </a><br>
  33. Dziękuje admin strony XXXX</body></html>";
  34. mail($_POST["userEmail"], "Link Aktywacyjny", $content, $headers);
  35.  mysql_query("INSERT INTO users (u_name, u_password, u_email, u_activation_key) VALUES('$_POST[userName]', '$_POST[userPasswd1]', '$_POST[userEmail]', '$actCode')");
  36. echo("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.");
  37. @mysql_close($connect);
  38. }
  39.  
  40. }
  41. ?>



plik register2.php


  1. <?php
  2. if(!$connect = mysql_connect('localhost', 'reaktor2', '')){
  3. echo("blad mysql");
  4. }
  5. if(!$db = mysql_select_db('reaktor2_uk_db', '$connect')){
  6. echo("nie mozna wybrac bazy");
  7. }
  8. if($_GET["active"])
  9. {
  10.  mysql_query("UPDATE users SET u_active=1 WHERE u_activation_key='$_GET[active]' ");
  11. {
  12.  print"Aktywacja ukonczona pomyślnie. Możesz już korzystać z naszego serwisu.";
  13.  }
  14.  else
  15.  {
  16. print"Podano nieistniejący kod aktywacyjny.";
  17. }
  18. }
  19. else
  20. {
  21. include"form.inc";
  22. }
  23. ?>



I teraz tak...

link wysyła, po kliknięciu w link wywala "nie mozna wybrac bazyPodano nieistniejący kod aktywacyjny. "
ale w bazie w komórce u_activ przestawia z "0" na "1"

Bardzo proszę o pomoc...

Pewnie prosty błąd ale nie mogę sobie poradzić.

Pozdrawiam