Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL] Rejestracja
Forum PHP.pl > Forum > Przedszkole
Lethys
Mam rejestracje ktora nie dziala. Problem polega na tym ze kiedy wypelnie wszystkie pola i klikam rejestruj, pola pojawiaja sie puste i nic sie nie dzieje. Rekordy ni zostaja dodane do bazy.

Kod :

  1. <form method=post action=rejestracja.php?action=register>
  2. <table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#859FA7" width="500" align="center" height="200" bgcolor="#F2F2F2">
  3. <tr>
  4. <td width="100%" align="center">
  5. <table border="0">
  6. <tr><td>Użytkownik:</td><td><input type="text" name="user"></td></tr>
  7. <tr><td>Email:</td><td><input type="text" name="email"></td></tr>
  8. <tr><td>Powtórz mail:</td><td><input type="text" name="vemail"></td></tr>
  9. <tr><td>Hasło:</td><td><input type="text" name="pass"></td></tr>
  10.  
  11. <tr><td></td><td><input type="submit" value="Rejestracja" name="submit"></td></tr>
  12. </table>
  13. </form>
  14. </td>
  15. </tr>
  16. </table>
  17.  
  18. <?php
  19. ini_set('display_errors', 1);
  20.  
  21. include ("config.php");
  22. if ($action == register) {
  23. if (!$user || !$email || !$vemail || !$pass) {
  24. print "Musisz wypełnić wszystkie pola.";
  25. }
  26. $test1 = mysql_num_rows(mysql_query("select * from players where user='$user'")) or die(mysql_error());
  27. if ($test1 > 0) {
  28. print "Ktoś już się tak nazywa.";
  29. }
  30. $test2 = mysql_num_rows(mysql_query("select * from players where email='$email'")) or die(mysql_error());
  31. if ($test2 > 0) {
  32. print "Ktoś już użył tego adresu email";
  33. }
  34. if ($email != $vemail) {
  35. print "Emaile nie pasują'.";
  36.  
  37. }
  38. if ($ref) {
  39. mysql_query("update players set refs=refs+1 where id=$ref");
  40. }
  41. $haslo = md5($pass);
  42. $message = "Witam, zostałeś zarejestrowany w internetowej grze. Twoje dane do konta:<br>User:$user<br>Hasło:$pass<br> Życzymy miłej gry.";
  43. mysql_query("insert into players (user, email, pass) values('$user','$email','$haslo')") or die(mysql_error());
  44. mail("$email", "asdasd", $message,
  45. "From: rejestracja@asdasd.pl\r\n"
  46. ."Reply-To: rejestracja@asdasd.pl\r\n"
  47. ."X-Mailer: PHP/" . phpversion()) or die("could not send mail");
  48.  
  49. print "Zostałeś zarejestrowany, $user. Proszę sprawdź teraz swoją pocztę.";
  50. print "<br><a herf=index.php>login</a>";
  51. }
  52. ?>



Wywala mi takie bledy :

Cytat
Notice: Use of undefined constant localhost - assumed 'localhost' in D:\programy\WebServ\httpd\projektwl\config.php on line 5

Notice: Use of undefined constant root - assumed 'root' in D:\programy\WebServ\httpd\projektwl\config.php on line 6

Notice: Use of undefined constant western - assumed 'western' in D:\programy\WebServ\httpd\projektwl\config.php on line 8

Notice: Use of undefined constant register - assumed 'register' in D:\programy\WebServ\httpd\projektwl\rejestracja.php on line 28
motyl-pl
config.php pokaż ..
Kiedyś chyba ten sam problem miałeś:
http://forum.php.pl/index.php?showtopic=157460
Lethys
Obecnie mam taki kod :

  1. <form method=post action=regg.php?action=rejestruj>
  2.  
  3.  
  4. Użytkownik:<input type="text" name="user"><br>
  5. Email:<input type="text" name="email"><br>
  6. Powtórz mail:<input type="text" name="vemail"><br>
  7. Hasło:<input type="text" name="pass"><br>
  8. <br>
  9. <input type="submit" value="Rejestracja" name="submit">
  10.  
  11. <?php
  12. include ("config.php");
  13. ini_set('display_errors', 1);
  14. if ($action == rejestruj) {
  15. if (!$user || !$email || !$vemail || !$pass) {
  16. print "Musisz wypełnić wszystkie pola.";
  17. }
  18. $test1 = mysql_num_rows(mysql_query("select * from players where user='$user'")) or die(mysql_error());
  19. if ($test1 > 0) {
  20. print "Ktoś już się tak nazywa.";
  21. }
  22. $test2 = mysql_num_rows(mysql_query("select * from players where email='$email'")) or die(mysql_error());
  23. if ($test2 > 0) {
  24. print "Ktoś już użył tego adresu email";
  25. }
  26. if ($email != $vemail) {
  27. print "Emaile nie pasują'.";
  28.  
  29. }
  30.  
  31. $haslo = md5($pass);
  32. $message = "Witam, zostałeś zarejestrowany w internetowej grze. Twoje dane do konta:<br>User:$user<br>Hasło:$pass<br> Życzymy miłej gry.";
  33. mysql_query("insert into players (user, email, pass) values('$user','$email','$haslo')") or die(mysql_error());
  34. mail("$email", "asdasd", $message,
  35. "From: rejestracja@dasda.pl\r\n"
  36. ."Reply-To: rejestracja@asdasd.pl\r\n"
  37. ."X-Mailer: PHP/" . phpversion()) or die("could not send mail");
  38.  
  39. print "Zostałeś zarejestrowany, $user. Proszę sprawdź teraz swoją pocztę.";
  40. print "<br><a herf=index.php>login</a>";
  41. }
  42. ?>


i pojawia sie blad :

Notice: Use of undefined constant rejestruj - assumed 'rejestruj' in D:\programy\WebServ\httpd\projektwl\regg.php on line 15

A config jest na pewno dobry ale w razie czego dam:

  1. <?php
  2.  
  3.  
  4.  
  5. $dbhost = localhost;
  6. $dblogin = root;
  7. $dbhaslo = "";
  8. $db = gra;
  9.  
  10. mysql_connect ($dbhost,$dblogin,$dbhaslo) or die ("Nie masz uprawnien");
  11. mysql_select_db("$db") or die ('select error');
  12.  
  13. mysql_query("set names'utf8'");
  14. mysql_query("set character_set utf8_unicode_ci");
  15.  
  16.  
  17. ?>
_olo_1984
a masz gdzieś zdefiniowane te stałe ? localhost, root, gra ? Pewnie nie, więc jeżeli są to wartości string to jak je zapisać poprawnie, czy nie "string" lub 'string' ?
Lethys
hmm nie mam pojecia, zawsze robilem tak jak tym razem i dzialalo. Jezeli ktos wie jak powinienem to edytowac niech pomoze tongue.gif

Z gory dzieki
sadistic_son
Linijki od 5 do 8:
  1. $dbhost = 'localhost';
  2. $dblogin = 'root';
  3. $dbhaslo = "wpisz tu haslo";
  4. $db = 'gra';
Linijka 12:
  1. mysql_select_db($db) or die ('Error wyboru bazy!');
Lethys
Poprawilem ale niczego to nie zmienia, ciagle to samo czyli puste pola forumalrzu zamiast dodanie do bazy.
daros17
Jeśli masz puste miejsca w bazie to może warto dodać takie coś?

  1. $connection = mysql_query("INSERT INTO users SET user='$user', pass='$haslo', email='$email', vemail='$vemail'");
Lethys
no spoko ale to niczego nie zmieni.

Problem w tym ze nic sie nie dzieje zamiast dodawac do bazy
daros17
Jak to nic się nie dzieje?

Jeśli podam prawidłowe dane to co się dzieje? Pokazuje Witam, zostałeś zarejestrowany w internetowej grze ? Wysyła mail?
_olo_1984
a może if ($action == 'register') lub if ($_GET['action'] == 'register')
poza tym do tego przydało by się może jakieś else
a reg. globals jest na on ? Jeżeli off to trzeba rpzepisać wszsytko na $_POST/$_GET
Lethys
Wgrałem plik rejestracji na serwer żeby było wiadomo o co chodzi.

Skrypt rejestracji : Rejestracja

Kod :

  1. <form method=post action=regg.php?action=rejestruj>
  2.  
  3.  
  4. Użytkownik:<input type="text" name="user"><br>
  5. Email:<input type="text" name="email"><br>
  6. Powtórz mail:<input type="text" name="vemail"><br>
  7. Hasło:<input type="text" name="pass"><br>
  8. <br>
  9. <input type="submit" value="Rejestracja" name="submit">
  10.  
  11. <?php
  12. include ("config.php");
  13. ini_set('display_errors', 1);
  14. if ($action == rejestruj) {
  15. if (!$user || !$email || !$vemail || !$pass) {
  16. print "Musisz wypełnić wszystkie pola.";
  17. }
  18. $test1 = mysql_num_rows(mysql_query("select * from players where user='$user'")) or die(mysql_error());
  19. if ($test1 > 0) {
  20. print "Ktoś już się tak nazywa.";
  21. }
  22. $test2 = mysql_num_rows(mysql_query("select * from players where email='$email'")) or die(mysql_error());
  23. if ($test2 > 0) {
  24. print "Ktoś już użył tego adresu email";
  25. }
  26. if ($email != $vemail) {
  27. print "Emaile nie pasują'.";
  28.  
  29. }
  30.  
  31. $haslo = md5($pass);
  32. $message = "Witam, zostałeś zarejestrowany w internetowej grze Western Life. Twoje dane do konta:<br>User:$user<br>Hasło:$pass<br> Życzymy miłej gry.";
  33. mysql_query("insert into players (user, email, pass) values('$user','$email','$haslo')") or die(mysql_error());
  34. mail("$email", "Western Life", $message,
  35. "From: rejestracja@westernlife.pl\r\n"
  36. ."Reply-To: rejestracja@westernlife.pl\r\n"
  37. ."X-Mailer: PHP/" . phpversion()) or die("could not send mail");
  38.  
  39. print "Zostałeś zarejestrowany, $user. Proszę sprawdź teraz swoją pocztę.";
  40. print "<br><a herf=index.php>login</a>";
  41. }
  42. ?>


Kod jest bardzo okrojony, czysty proces rejestracji ktory niestety nie dziala.

Już nie mam zielonego pojęcia co zrobić żeby zadziałało sad.gif
sazian
popraw to o czym pisał _olo_1984
w linii 14 to if ($action == rejestruj) { na to if ($_GET['action'] == 'rejestruj') {
Lethys
Poprawilem, niczego to niezmienilo :/
sazian
linia 16 if (!$user || !$email || !$vemail || !$pass) {
nie ma takich zmiennych
poczytaj to http://pl.wikibooks.org/wiki/PHP/Formularze
przede wszystkim rodził Adresy URL
i nie sprawdzaj tak (!$user) danych z formularza
do tego służą metody empty i isset
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.