Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP + MySQL] Prosty skrypt rejestracji.[SOLVED]
Forum PHP.pl > Forum > PHP
ecox
Jest to mój pierwszy post na tym forum, więc na początku chciałbym przywitać się ze wszystkimi.

Jestem początkującym programistą PHP, napisałem prosty skrypt który ma za zadanie przeprowadzić rejestrację na stronie. Wszystko byłoby jak najbardziej ok, ale nie jest bo warunek w którym są polecenia zapytań do bazy nie spełnia się. Nie mam pojęcia dlaczego tak jest gdyż jak już wspomniałem jestem początkującym w tym temacie.
[php]
pyro
$user_reg_pass = "INSERT INTO `users` (`user_password`) VALUES('.addslashes($login).')";
$user_reg_login = "INSERT INTO `users` (`user_login`) VALUES('.addslashes($password).')";

przyjrzyj sie temu kawalkowi kodu i popraw winksmiley.jpg
ecox
Cytat(pyro @ 3.11.2008, 20:24:44 ) *
$user_reg_pass = "INSERT INTO `users` (`user_password`) VALUES('.addslashes($login).')";
$user_reg_login = "INSERT INTO `users` (`user_login`) VALUES('.addslashes($password).')";

przyjrzyj sie temu kawalkowi kodu i popraw winksmiley.jpg




Nie jestem pewien co w tych liniach jest źle. Może nawiasy przy tabelach i komórkach, a może funkcja addslashes() jest źle umieszczona. Nawet jeżeli jest to napisane błędnie, to nie zmienia to faktu iż else if nie jest wykonywane. Gdyby było wyplułoby "rejestracja zakończona" - nie wypluwa.
kefirek
Zobacz tak
  1. <?php
  2. mysql_connect("localhost", "database", "passwd")or die(mysql_error());
  3. mysql_select_db("database")or die (mysql_error());
  4. ?>
  5.  
  6. <html>
  7. <head>
  8. <title>Formularz rejestracyjny</title>
  9. </head>
  10.  
  11. <form action="ble.php" method="POST">
  12. Login: <input type=text name='login'><br/>
  13. Haslo: <input type=password name='password'><br/>
  14. <input type=submit value='Rejestruj'><br/>
  15. <input type=hidden value='1' name='send'>
  16. </form>
  17.  
  18. <?php
  19. $login = $_POST['login'];
  20. $password = $_POST['password'];
  21.  
  22. $user_reg_pass = "INSERT INTO users (user_password) VALUES ('".addslashes($login)."')";
  23. $user_reg_login = "INSERT INTO users (user_login) VALUES ('".addslashes($password)."')";
  24.  
  25. if ($_POST["send"] == 1){
  26.    if ($_POST['login'] == 0 && $_POST['password'] == 0){
  27.     echo 'Prosze wprowadzic dane do formularza'.'<br/>';
  28.    }else {
  29.        mysql_query("$user_reg_pass");
  30. mysql_query("$user_reg_login");
  31. echo 'Zakonczono rejestracje';
  32.     }
  33. }
  34. ?>
ecox
Dziękuję za pomoc, problem z wysyłaniem został naprawiony. Jednakowóż mam kolejny bardzo podobny problem z tymże formularzem:

  1. <?php
  2. mysql_connect("localhost", "database", "password")or die(mysql_error()); 
  3. mysql_select_db("database")or die (mysql_error());
  4. ?>
  5.  
  6. <html>
  7. <head>
  8. <title>Formularz rejestracyjny</title>
  9. </head>
  10.  
  11. <form action="ble.php" method="POST">
  12. Login: <input type=text name='login'><br/>
  13. Haslo: <input type=password name='password'><br/>
  14. <input type=submit value='Rejestruj'><br/>
  15. <input type=hidden value='1' name='send'>
  16. </form>
  17.  
  18. <?php
  19. $login = $_POST['login'];
  20. $password = $_POST['password'];
  21.  
  22. $user_reg_pass = "INSERT INTO `users` (`user_password`) VALUES('".addslashes($login)."')";
  23. $user_reg_login = "INSERT INTO `users` (`user_login`) VALUES('".addslashes($password)."')";
  24.  
  25. if ($_POST["send"] == 1){
  26.    if ($_POST['login'] == null && $_POST['password'] == null){
  27.     echo 'Prosze wprowadzic dane do formularza'.'<br/>';
  28.    }else {
  29.  mysql_query("$user_reg_login");
  30.  mysql_query("$user_reg_pass");
  31.         echo mysql_error();
  32.  echo 'Zakonczono rejestracje';
  33.     }
  34. }
  35.  
  36.  
  37. ?>





Więc tak: skrypt wysyła do bazy zapytanie i zostaje ono wykonane ale ku mojemu zdziwieniu błędnie wykonane!



Spojrzałem na to i pomyślałem co?! Jakim prawem tworzone są dwa rekordy do każdego pola i dlaczego hasło zapisuje się w polu login a login w polu hasło? Tego nie potrafię zrozumieć. 



Pozdrawiam
magnus
Przecież robisz 2 zapytania INSERT - to logiczne, że każde z nich dopisze jeden rekord do bazy.
A czemu na odwrót - bo sam tak napisałeś, żeby do pola login wpisywał hasło a do hasła login smile.gif

Jednym zapytaniem:
INSERT into tabela (login, hasło) values (login, hasło) - jeden rekord (a kolejność też ważna).
ecox
Cytat(magnus @ 4.11.2008, 17:09:31 ) *
Przecież robisz 2 zapytania INSERT - to logiczne, że każde z nich dopisze jeden rekord do bazy.
A czemu na odwrót - bo sam tak napisałeś, żeby do pola login wpisywał hasło a do hasła login smile.gif

Jednym zapytaniem:
INSERT into tabela (login, hasło) values (login, hasło) - jeden rekord (a kolejność też ważna).



oopss... ale gafę strzeliłem  sciana.gif


Widać że lamą jestem w php smile.gif


Dzięki za pomoc - temat do zamknięcia.
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.