Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP] Skrypt rejestracji
Beosky
post
Post #1





Grupa: Zarejestrowani
Postów: 62
Pomógł: 0
Dołączył: 13.02.2012
Skąd: Wrocław

Ostrzeżenie: (10%)
X----


Zącząłem pisać skrypt logowania i rejestracji no i podczas kliknięcia register mam błąd, a mianowicie.

Cytat
Fatal error: Call to undefined function: czysc() in D:\Program Files\WebServ\httpd\portal\register.php on line 24


A, tutaj załączam kodzik:
  1. <?php
  2. require_once('page_header.php');
  3. echo '<div id="content"><center>';
  4. ?>
  5.  
  6. <?php
  7. include ("config.php");
  8.  
  9. $login = $_POST['login'];
  10. $haslo = $_POST['haslo'];
  11. $email = $_POST['email'];
  12.  
  13. if ($_POST){
  14. if(!empty($login) AND !empty($haslo) AND !empty($haslo2) AND !empty($email)){
  15. if($haslo != $haslo2){
  16. $info .= 'Podane hasła różnią się od siebie.<br />';
  17.  
  18. }else{
  19. if(!ereg("^.+@.+\..+$", $email)){
  20. $info .= 'Podałeś niepoprawny adres email.<br />';
  21. }else{
  22. require_once('config.php');
  23.  
  24. $login = czysc($login);
  25. $haslo = czysc($haslo);
  26. $email = czysc($email);
  27.  
  28. $query = "SELECT login FROM users WHERE login=$login";
  29. $result = mysql_query($query);
  30.  
  31. if(@mysql_num_rows($result) > 0){
  32. $info .= "Wybrana nazwa użytkownika($login) jest już zajęta.<br />";
  33.  
  34. }else{
  35. $query = "INSERT INTO users (login,haslo,email,data) VALUES ('$login',md5('$haslo'),'$email',NOW())";
  36. mysql_query($query);
  37. $info .= 'Gratuluję Twoje konto zostało utworzone.<br />';
  38.  
  39. }
  40. }
  41. }
  42.  
  43. }else{
  44. $info .= 'Uzupełnij wszystkie pola, aby dokonać rejestracji.<br />';
  45. }
  46. }
  47. ?>
  48.  
  49. <html xmlns="http://www.w3.org/1999/xhtml">
  50. <head>
  51. <meta http-equiv="ContentType" content="text/html; charset=utf-8" />
  52. </head>
  53. <body>
  54. <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
  55. <table>
  56.  
  57. <tr>
  58. <td>Login:</td>
  59. <td><input type='text' name='login'></td>
  60. </tr>
  61.  
  62. <tr>
  63. <td>Hasło:</td>
  64. <td><input type='password' name='haslo'></td>
  65. </tr>
  66.  
  67. <tr>
  68. <td>Powtórz Hasło:</td>
  69. <td><input type='password' name='haslo2'></td>
  70. </tr>
  71.  
  72. <tr>
  73. <td>E-mail:</td>
  74. <td><input type='text' name='email'><input type='hidden' name='control' value='1'></td>
  75. </tr>
  76.  
  77. <tr>
  78. <td><input type='submit' value='Zarejestruj się'></td>
  79. </tr>
  80.  
  81. <tr>
  82. <td></td>
  83. <td colspan='2'><?php if(!empty($info)){ echo $info; } ?></td>
  84. </tr>
  85.  
  86. </table>
  87. </form>
  88. </body>
  89. </html>
  90.  
  91. <?php
  92. echo '</center></div>';
  93. require_once('page_footer.php');
  94. ?>
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




No i czego nie rozumiesz w komunikacie:
Cytat
Call to undefined function: czysc()
(IMG:style_emoticons/default/questionmark.gif) PRzetłumaczyć?
"Wywołujesz funkcję czysc(), której nigdzie nie zdefiniowales"
Go to the top of the page
+Quote Post
Beosky
post
Post #3





Grupa: Zarejestrowani
Postów: 62
Pomógł: 0
Dołączył: 13.02.2012
Skąd: Wrocław

Ostrzeżenie: (10%)
X----


Właśnie o to chodzi, że mam zdefiniowaną.

  1. function czysc($jedziem){
  2. $jedziem = str_replace('DELETE','j',$jedziem);
  3. return $jedziem;
  4. }
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Przecież w kodzie powyżej tego nie ma.... myślisz, że skrypt weźmie sobie sam z twojej głowy to?
Go to the top of the page
+Quote Post
Beosky
post
Post #5





Grupa: Zarejestrowani
Postów: 62
Pomógł: 0
Dołączył: 13.02.2012
Skąd: Wrocław

Ostrzeżenie: (10%)
X----


W kodzie to także mam, ale wyżej podałem wcześniejszy i nadal jest ten sam bład.

  1. <?php
  2. require_once('page_header.php');
  3. echo '<div id="content"><center>';
  4. ?>
  5.  
  6. <?php
  7. include ("config.php");
  8.  
  9. $login = $_POST['login'];
  10. $haslo = $_POST['haslo'];
  11. $email = $_POST['email'];
  12.  
  13. if ($_POST){
  14. if(!empty($login) AND !empty($haslo) AND !empty($haslo2) AND !empty($email)){
  15. if($haslo != $haslo2){
  16. $info .= 'Podane hasła różnią się od siebie.<br />';
  17.  
  18. }else{
  19. if(!ereg("^.+@.+\..+$", $email)){
  20. $info .= 'Podałeś niepoprawny adres email.<br />';
  21. }else{
  22. require_once('config.php');
  23.  
  24. $login = czysc($login);
  25. $haslo = czysc($haslo);
  26. $email = czysc($email);
  27.  
  28. function czysc($jedziem){
  29. $jedziem = str_replace('DELETE','j',$jedziem);
  30. return $jedziem;
  31. }
  32.  
  33.  
  34. $query = "SELECT login FROM users WHERE login=$login";
  35. $result = mysql_query($query);
  36.  
  37. if(@mysql_num_rows($result) > 0){
  38. $info .= "Wybrana nazwa użytkownika($login) jest już zajęta.<br />";
  39.  
  40. }else{
  41. $query = "INSERT INTO users (login,haslo,email,data) VALUES ('$login',md5('$haslo'),'$email',NOW())";
  42. mysql_query($query);
  43. $info .= 'Gratuluję Twoje konto zostało utworzone.<br />';
  44.  
  45. }
  46. }
  47. }
  48.  
  49. }else{
  50. $info .= 'Uzupełnij wszystkie pola, aby dokonać rejestracji.<br />';
  51. }
  52. }
  53. ?>
  54.  
  55. <html xmlns="http://www.w3.org/1999/xhtml">
  56. <head>
  57. <meta http-equiv="ContentType" content="text/html; charset=utf-8" />
  58. </head>
  59. <body>
  60. <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
  61. <table>
  62.  
  63. <tr>
  64. <td>Login:</td>
  65. <td><input type='text' name='login'></td>
  66. </tr>
  67.  
  68. <tr>
  69. <td>Hasło:</td>
  70. <td><input type='password' name='haslo'></td>
  71. </tr>
  72.  
  73. <tr>
  74. <td>Powtórz Hasło:</td>
  75. <td><input type='password' name='haslo2'></td>
  76. </tr>
  77.  
  78. <tr>
  79. <td>E-mail:</td>
  80. <td><input type='text' name='email'><input type='hidden' name='control' value='1'></td>
  81. </tr>
  82.  
  83. <tr>
  84. <td><input type='submit' value='Zarejestruj się'></td>
  85. </tr>
  86.  
  87. <tr>
  88. <td></td>
  89. <td colspan='2'><?php if(!empty($info)){ echo $info; } ?></td>
  90. </tr>
  91.  
  92. </table>
  93. </form>
  94. </body>
  95. </html>
  96.  
  97. <?php
  98. echo '</center></div>';
  99. require_once('page_footer.php');
  100. ?>
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




To może najpierw zdefiniuj funkcję, a dopiero później ją wywołuj?

TIPS: zmien kolejnosc
Go to the top of the page
+Quote Post
Beosky
post
Post #7





Grupa: Zarejestrowani
Postów: 62
Pomógł: 0
Dołączył: 13.02.2012
Skąd: Wrocław

Ostrzeżenie: (10%)
X----


Cytat
Gratuluję Twoje konto zostało utworzone.


Lecz w bazie danych nie stworzyło żadnego rekordu.
Go to the top of the page
+Quote Post
nospor
post
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Bo wyswietlasz komunikat o utworzeniu, a nawet nie sprawdzisz co ci zwróciło mysql_query - czy blad czy nie blad. Jak tak można?

Skoro ci nie utworzylo, znaczy ze masz blad zapytania. Jak wyświetlac bledy zapytania masz napisane tu:
Temat: Jak poprawnie zada pytanie
Go to the top of the page
+Quote Post
Beosky
post
Post #9





Grupa: Zarejestrowani
Postów: 62
Pomógł: 0
Dołączył: 13.02.2012
Skąd: Wrocław

Ostrzeżenie: (10%)
X----


Cytat
Blad:Nie wybrano żadnej bazy danych


Bazę danych mam wybraną w pliku config.php
Go to the top of the page
+Quote Post
nospor
post
Post #10





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Widać jednak nie wybrałeś. Czy naprawdę muszę pisać kolejnego posta z treścią: Pokaż plik config.php ? Czy nie można samemu się domyśleć i od razu ten plik pokazać?
Go to the top of the page
+Quote Post
Beosky
post
Post #11





Grupa: Zarejestrowani
Postów: 62
Pomógł: 0
Dołączył: 13.02.2012
Skąd: Wrocław

Ostrzeżenie: (10%)
X----


Faktycznie mój błąd przepraszam już się nie powtórzy. (IMG:style_emoticons/default/smile.gif)

  1. <?php
  2. $connection = @mysql_connect('localhost', 'root', 'haselko')
  3. or die('Brak połączenia z serwerem MySQL.<br />Błąd: '.mysql_error());
  4. // echo "Udało się połączyć z serwerem!<br />";
  5. $db = @mysql_select_db('portal', $connection)
  6. or die('Nie mogę połączyć się z bazą danych<br />Błąd: '.mysql_error());
  7. // echo "Udało się połączyć z bazą danych!";
  8. mysql_close($connection);
  9. ?>
Go to the top of the page
+Quote Post
nospor
post
Post #12





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




mysql_close($connection);
Mistrzu.... weź zajrzyj do manuala i zobacz co to robi... :/ (IMG:style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
Beosky
post
Post #13





Grupa: Zarejestrowani
Postów: 62
Pomógł: 0
Dołączył: 13.02.2012
Skąd: Wrocław

Ostrzeżenie: (10%)
X----


A, co tam robi zamknięcie połączenia z bazą... WTF. ;o

  1. Blad:Nieznana kolumna 'Beosky' w where clause


Beosky służyło jako nazwa użytkownika.
Go to the top of the page
+Quote Post
nospor
post
Post #14





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Wartości tekstowe w mysql bierze się w apostrofy. Ty tego nie robisz.

W linku co ci podałem, było też jasno napisane, byś sobie wyświetlał jak wygląda wygenerowane zapytanie. Jakbyś to zrobił to może sam byś zobaczył ten banalny blad.
Go to the top of the page
+Quote Post
Beosky
post
Post #15





Grupa: Zarejestrowani
Postów: 62
Pomógł: 0
Dołączył: 13.02.2012
Skąd: Wrocław

Ostrzeżenie: (10%)
X----


Cytat
Blad:


Teraz nie mam żadnego błędu i tworzy konto, ale nie dodaje rekordu do bazy.

  1. <?php
  2. require_once('page_header.php');
  3. echo '<div id="content"><center>';
  4. ?>
  5.  
  6. <?php
  7. include ("config.php");
  8.  
  9. $login = $_POST['login'];
  10. $haslo = $_POST['haslo'];
  11. $email = $_POST['email'];
  12.  
  13. if ($_POST){
  14. if(!empty($login) AND !empty($haslo) AND !empty($haslo2) AND !empty($email)){
  15. if($haslo != $haslo2){
  16. $info .= '<br />Podane hasła różnią się od siebie.<br />';
  17.  
  18. }else{
  19. if(!ereg("^.+@.+\..+$", $email)){
  20. $info .= '<br />Podałeś niepoprawny adres email.<br />';
  21. }else{
  22. require_once('config.php');
  23.  
  24. function czysc($jedziem){
  25. $jedziem = str_replace('DELETE','j',$jedziem);
  26. return $jedziem;
  27. }
  28.  
  29. $login = czysc($login);
  30. $haslo = czysc($haslo);
  31. $email = czysc($email);
  32.  
  33.  
  34. $query = "SELECT login FROM users WHERE login='$login'";
  35. $result = mysql_query($query);
  36.  
  37. if(@mysql_num_rows($result) > 0){
  38. $info .= "<br />Wybrana nazwa użytkownika($login) jest już zajęta.<br />";
  39.  
  40. }else{
  41. $query = "INSERT INTO 'users' (login,haslo,email,data) VALUES ('$login',md5('$haslo'),'$email',NOW())";
  42. echo 'Blad:'.mysql_error();
  43. mysql_query($query);
  44. $info .= '<br />Gratuluję Twoje konto zostało utworzone.<br />';
  45.  
  46. }
  47. }
  48. }
  49.  
  50. }else{
  51. $info .= '<br />Uzupełnij wszystkie pola, aby dokonać rejestracji.<br />';
  52. }
  53. }
  54.  
  55. ?>
  56.  
  57. <html xmlns="http://www.w3.org/1999/xhtml">
  58. <head>
  59. <meta http-equiv="ContentType" content="text/html; charset=utf-8" />
  60. </head>
  61. <body>
  62. <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
  63. <table>
  64.  
  65. <tr>
  66. <td>Login:</td>
  67. <td><input type='text' name='login'></td>
  68. </tr>
  69.  
  70. <tr>
  71. <td>Hasło:</td>
  72. <td><input type='password' name='haslo'></td>
  73. </tr>
  74.  
  75. <tr>
  76. <td>Powtórz Hasło:</td>
  77. <td><input type='password' name='haslo2'></td>
  78. </tr>
  79.  
  80. <tr>
  81. <td>E-mail:</td>
  82. <td><input type='text' name='email'><input type='hidden' name='control' value='1'></td>
  83. </tr>
  84.  
  85. <tr>
  86. <td><input type='submit' value='Zarejestruj się'></td>
  87. </tr>
  88.  
  89. <tr>
  90. <td></td>
  91. <td colspan='2'><?php if(!empty($info)){ echo $info; } ?></td>
  92. </tr>
  93.  
  94. </table>
  95. </form>
  96. </body>
  97. </html>
  98.  
  99. <?php
  100. echo '</center></div>';
  101. require_once('page_footer.php');
  102. ?>
Go to the top of the page
+Quote Post
nospor
post
Post #16





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




mysql_error() robi się po mysql_query a nie przed! Przeczytaj dokładnie temat co ci zapodałem - tam masz wszystko wyjaśnione dokładnie i na przykładzie...

Poza tym masz brać wartości tekstowe w apostrofy a nie nazwy tabel. Odróżniaj jedno od drugiego.
Powód edycji: [nospor]:
Go to the top of the page
+Quote Post
Beosky
post
Post #17





Grupa: Zarejestrowani
Postów: 62
Pomógł: 0
Dołączył: 13.02.2012
Skąd: Wrocław

Ostrzeżenie: (10%)
X----


register.php
  1. <?php
  2. require_once('page_header.php');
  3. echo '<div id="content"><center>';
  4. ?>
  5.  
  6. <?php
  7. include ("config.php");
  8.  
  9. $login = $_POST['login'];
  10. $haslo = $_POST['haslo'];
  11. $email = $_POST['email'];
  12.  
  13. if ($_POST){
  14. if(!empty($login) AND !empty($haslo) AND !empty($haslo2) AND !empty($email)){
  15. if($haslo != $haslo2){
  16. $info .= '<br />Podane hasła różnią się od siebie.<br />';
  17.  
  18. }else{
  19. if(!ereg("^.+@.+\..+$", $email)){
  20. $info .= '<br />Podałeś niepoprawny adres email.<br />';
  21. }else{
  22. require_once('config.php');
  23.  
  24. function czysc($jedziem){
  25. $jedziem = str_replace('DELETE','j',$jedziem);
  26. return $jedziem;
  27. }
  28.  
  29. $login = czysc($login);
  30. $haslo = czysc($haslo);
  31. $email = czysc($email);
  32.  
  33.  
  34. $query = "SELECT login FROM users WHERE login=$login";
  35. $result = mysql_query($query);
  36.  
  37. if(@mysql_num_rows($result) > 0){
  38. $info .= "<br />Wybrana nazwa użytkownika($login) jest już zajęta.<br />";
  39.  
  40. }else{
  41. $query = "INSERT INTO users (login,haslo,email,data) VALUES ('$login',md5('$haslo'),'$email',NOW())";
  42. mysql_query($query);
  43. echo 'Blad:'.mysql_error();
  44. $info .= '<br />Gratuluję Twoje konto zostało utworzone.<br />';
  45.  
  46. }
  47. }
  48. }
  49.  
  50. }else{
  51. $info .= '<br />Uzupełnij wszystkie pola, aby dokonać rejestracji.<br />';
  52. }
  53. }
  54.  
  55. ?>
  56.  
  57. <html xmlns="http://www.w3.org/1999/xhtml">
  58. <head>
  59. <meta http-equiv="ContentType" content="text/html; charset=utf-8" />
  60. </head>
  61. <body>
  62. <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
  63. <table>
  64.  
  65. <tr>
  66. <td>Login:</td>
  67. <td><input type='text' name='login'></td>
  68. </tr>
  69.  
  70. <tr>
  71. <td>Hasło:</td>
  72. <td><input type='password' name='haslo'></td>
  73. </tr>
  74.  
  75. <tr>
  76. <td>Powtórz Hasło:</td>
  77. <td><input type='password' name='haslo2'></td>
  78. </tr>
  79.  
  80. <tr>
  81. <td>E-mail:</td>
  82. <td><input type='text' name='email'><input type='hidden' name='control' value='1'></td>
  83. </tr>
  84.  
  85. <tr>
  86. <td><input type='submit' value='Zarejestruj się'></td>
  87. </tr>
  88.  
  89. <tr>
  90. <td></td>
  91. <td colspan='2'><?php if(!empty($info)){ echo $info; } ?></td>
  92. </tr>
  93.  
  94. </table>
  95. </form>
  96. </body>
  97. </html>
  98.  
  99. <?php
  100. echo '</center></div>';
  101. require_once('page_footer.php');
  102. ?>


Wszystko ładnie i pięknie nie wyświetla błędu żadnego, tworzy konta i dodaje rekordy do bazy danych. Dziekuje za pomoc. (IMG:style_emoticons/default/smile.gif)

  1. echo 'Blad:'.mysql_error();


Już usunąłem.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 05:17