Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z kodem do Rejestracji
Forum PHP.pl > Forum > PHP
Piotrek666
Witam wszystkich.

Ponieważ jestem dość zielony w sprawach php, mam problem z kodem do rejestracji

Proces rejestracji działa prawidłowo ale 2 pętle -if- nie chcą działać
pierwsza ma zwracać błąd że jedno z pól zostało nie wypełnione
druga wysyła zapytanie do bazy i zwraca komunikat o błędzie - że dany użytkownik już istnieje w bazie

niestety nie wiem co może być źle
jeśli wyśle pusty szablon rejestracji to kieruje mnie że rejestracja została ukończona - w bazie mam pusty wpis
jeśli wyśle szablon z powtarzającym się adresem E-mail to kieruje mnie że rejestracja została ukończona - ale nie mam żadnego wpisu w bazie sql


  1. <?php
  2. setcookie("fld_name",null,0,"/");
  3. setcookie("fld_surname",null,0,"/");
  4. setcookie("fld_addr",null,0,"/");
  5. setcookie("fld_postalcode",null,0,"/");
  6. setcookie("fld_city",null,0,"/");
  7. setcookie("fld_email");
  8.  
  9. // pierwsza pętla
  10. if ((!$_POST['name']) or (!$_POST['surname']) or (!$_POST['city']) or (!$_POST['email'])or (!$_POST['addr']) or (!$_POST['postalcode']))
  11. {
  12. setcookie("fld_name",$_POST['name'],0,"/");
  13. setcookie("fld_surname",$_POST['surname'],0,"/");
  14. setcookie("fld_addr",$_POST['addr'],0,"/");
  15. setcookie("fld_postalcode",$_POST['postalcode'],0,"/");
  16. setcookie("fld_city",$_POST['city'],0,"/");
  17. setcookie("fld_email",$_POST['email'],0,"/");
  18.  
  19. header("Location: <a href="http://error1&quot%3b%29;" target="_blank">http://error1");</a>
  20. }
  21.  
  22. include("dbman.class.php");
  23.  
  24. $DB = new tDbMan();
  25. $DB->dbhost = "";
  26. $DB->dbuser = "";
  27. $DB->dbpass = "";
  28. $DB->dbname = "";
  29. $DB->Connect();
  30. $DB->Query("SET NAMES 'UTF8'");
  31.  
  32. //druga pętla
  33. if ($DB->Count($DB->Query("SELECT * FROM `users` WHERE `email` = '".$_POST['email']."'"))>0)
  34. {
  35. header("Location: <a href="http://error2&quot%3b%29;" target="_blank">http://error2");</a>
  36. }else{
  37.  
  38. $pass = substr(strtoupper(md5(time())),0,6);
  39. $kontoe = $_POST['email'];
  40.  
  41. $query = "INSERT INTO `users` (name,surname,gender,email,addr,postalcode,city,password)
  42. values ('{$_POST['name']}','{$_POST['surname']}','{$_POST['gender']}','{$_POST['email']}','{$_POST['addr']}','{$_POST['postalcode']}','{$_POST['city']}','".md5($pass)."')";
  43. $DB->Query($query) or die("Error occured, Registration failed!");
  44. $userID = $DB->GetLastInsertId();
  45.  
  46. $mailmsg = 'bla bla bla'
  47. $naglowki .= "X-MailPersonSubscriberID: ".$userID."\r\n";
  48. $naglowki .= "X-MailPersonEmail: ".$_POST['email']."\r\n";
  49. $naglowki .= "MIME-Version: 1.0\r\n";
  50. $naglowki .= "Content-type: text/html; charset=utf-8\r\n";
  51. $naglowki .= "From: <...>\r\n";
  52. $naglowki .= "Message-ID: <".date("YmdHis")."mailer@11.com>\r\n";
  53. $naglowki .= "X-Mailer: PHP v".phpversion()."\r\n"; // These two to help avoid spam-filters
  54. $mail_sent = mail($_POST['email'],"Registration",$mailmsg,$naglowki);
  55. }
  56. header("Location: htp//success");
  57. ?>


Proszę o pomoc bo nie potrafie sobie poradzić z tą rejestracją
sciana.gif
Kocurro
Witam,

drogi kolego same wywołanie header niestety nie wystarcza. Funkcja ta służy do ustawiania informacji o nagłówku wysyłanym do przeglądarki, nie powoduje jednak przerwania działania aplikacji. Dlatego też jeśli używasz header location to musiałbyś po tym dać wywołanie die();

Jeśli dalej będziesz miał problemy, pytaj śmiało.

Pozdrawiam serdecznie,
Łukasz
Piotrek666
Zgadza się

Wszystko teraz ładnie działa
W życiu bym się nie domyslił że tak to ma wygladać

a właśnie... a jeśli tak dodać else pod koniec funkcji if to rozumiem że polecenie die już nie było potrzebne?


Pozdrawiam i dziękuje za pomoc
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.