Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Skrypt rejestracji
Forum PHP.pl > Forum > Przedszkole
Beosky
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. ?>
nospor
No i czego nie rozumiesz w komunikacie:
Cytat
Call to undefined function: czysc()
questionmark.gif PRzetłumaczyć?
"Wywołujesz funkcję czysc(), której nigdzie nie zdefiniowales"
Beosky
Właśnie o to chodzi, że mam zdefiniowaną.

  1. function czysc($jedziem){
  2. $jedziem = str_replace('DELETE','j',$jedziem);
  3. return $jedziem;
  4. }
nospor
Przecież w kodzie powyżej tego nie ma.... myślisz, że skrypt weźmie sobie sam z twojej głowy to?
Beosky
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. ?>
nospor
To może najpierw zdefiniuj funkcję, a dopiero później ją wywołuj?

TIPS: zmien kolejnosc
Beosky
Cytat
Gratuluję Twoje konto zostało utworzone.


Lecz w bazie danych nie stworzyło żadnego rekordu.
nospor
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
Beosky
Cytat
Blad:Nie wybrano żadnej bazy danych


Bazę danych mam wybraną w pliku config.php
nospor
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ć?
Beosky
Faktycznie mój błąd przepraszam już się nie powtórzy. 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. ?>
nospor
mysql_close($connection);
Mistrzu.... weź zajrzyj do manuala i zobacz co to robi... :/ tongue.gif
Beosky
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.
nospor
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.
Beosky
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. ?>
nospor
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.
Beosky
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. smile.gif

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


Już usunąłem.
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.