Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Rejestracja
Forum PHP.pl > Forum > Przedszkole
ArekJ
Otóż na pewnej stronie znalzłem skrypt rejestracji, zmodyfikowałem go do swoich potrzeb, ale nie działa sad.gif Może ktoś wie gdzie jest błąd?

  1. <?php
  2.  
  3. // łączymy się z bazą danych i wybieramy potrzebną baze danych
  4. $link_id = mysql_connect("localhost", "XXX", "XXX"); // tu root i pass są wprowadzone przez was w zależności od konfiguracji waszego serwera
  5. mysql_select_db("XXX");
  6. mysql_close($link_id);
  7.  
  8. // stworzymy dwie przydatne funkcje...jedna będzie tworzyła nagłówek strony, a druga stopke strony
  9. function html_header()
  10. {
  11. global $new_win_width, $new_win_height;
  12. ?>
  13. <HTML>
  14. <HEAD>
  15. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  16. <TITLE>Rejestracja</TITLE>
  17. </HEAD>
  18. <BODY>
  19. <?php
  20. }
  21.  
  22. function html_footer()
  23. {
  24. ?>
  25. </BODY>
  26. </HTML>
  27. <?php
  28. }
  29.  
  30.  
  31. function in_use($userid) // funkcja ta sprawdza czy nie dany login nie jest już wykorzystany
  32. {
  33. global $tabela_uzytkownikow;
  34.  
  35. $query = "SELECT userid FROM $tabela_uzytkownikow WHERE userid = 'userid'";
  36. $result = mysql_query($query);
  37. if(!mysql_num_rows($result)) return 0;
  38. else return 1;
  39. }
  40.  
  41.  
  42. function register_form() // funkcja ta wyświetla nam formularz w który użytkownik wpisze swoje dane
  43. {
  44. global $userid, $mail;
  45. global $PHP_SELF;
  46. ?>
  47. <CENTER><H3>Rejestracj:</H3></CENTER>
  48. <FORM METHOD="post" ACTION="<?php echo $PHP_SELF ?>">
  49. <INPUT TYPE="hidden" NAME="action" VALUE="register">
  50. <DIV ALIGN="center"><CENTER><TABLE BORDER="1" WIDTH="90%">
  51. <TR>
  52. <TH WIDTH="30%" NOWRAP>Logi: </TH>
  53. <TD WIDTH="70%"><INPUT TYPE="text" NAME="userid" VALUE="<?php echo $userid ?>" SIZE="15" MAXLENGHT="15"></TD>
  54. </TR>
  55.  <TR>
  56. <TH WIDTH="30%" NOWRAP>E-mail: </TH>
  57. <TD WIDTH="70%"><INPUT TYPE="text" NAME="mail" VALUE="<?php echo $mail ?>" SIZE="15"></TD>
  58. </TR>
  59. <TR>
  60. <TH WIDTH="30%" NOWRAP>Hasło: </TH>
  61. <TD WIDTH="70%"><INPUT TYPE="password" NAME="userpassword" SIZE="15"></TD>
  62. </TR>
  63. <TR>
  64. <TH WIDTH="30%" NOWRAP>Powtórz hasło: </TH>
  65. <TD WIDTH="70%"><INPUT TYPE="password" NAME="userpassword2" SIZE="15"></TD>
  66. </TR>
  67. <TR>
  68. <TH WIDTH="30%" COLSPAN="2" NOWRAP>
  69. <INPUT TYPE="submit" VALUE="Zarejestruj">
  70. <INPUT TYPE="reset" VALUE="Wyczyść">
  71. </TH>
  72. </TR>
  73. </TABLE>
  74. </CENTER></DIV>
  75. </FORM>
  76. <?php
  77. }
  78.  
  79.  
  80. function create_account() // funckja ta tworzy tworzy konto danego użytkownika
  81. {
  82. global $userid, $mail, $userpassword, $userpassword2;
  83.  
  84.  
  85.  
  86. // można też na wszelki wypadek dopisać warunki funkcji if które sprawdzałyby czy podane dane są poprawne. Ja ten krok pomijam
  87.  
  88. $link_id = mysql_connect("localhost", "XXX", "XXX");
  89.  
  90. $query = "INSERT INTO user VALUES(NULL, '$userid', password('$userpassword'), '$mail')";
  91.  
  92. $result = mysql_query($query);
  93. $usernumber = mysql_insert_id($link_id);
  94.  
  95.  
  96. html_header();
  97. ?>
  98. <CENTER><H3>
  99. <?php echo $mail ?>, dziękujemy za rejestrację w grze <a href='htt://www.swiat-magii.pl/' >Świat Magii</a>!<br /><br />
  100.  
  101. Zapraszamy na <a href='htt://www.forum.swiat-magii.pl/' >forum</a>!
  102. </H3></CENTER>
  103.  
  104. <DIV ALIGN="center"><CENTER><TABLE BORDER="1" WIDTH="90%">
  105. <TR>
  106. <TH WIDTH="30%" NOWRAP>I: </TH>
  107. <TD WIDTH="70%"><?php echo $usernumber ?></TD>
  108. </TR>
  109. <TR>
  110. <TH WIDTH="30%" NOWRAP>Logi: </TH>
  111. <TD WIDTH="70%"><?php echo $userid ?></TD>
  112. </TR>
  113. <TR>
  114. <TH WIDTH="30%" NOWRAP>Hasło: </TH>
  115. <TD WIDTH="70%"><?php echo $userpassword ?></TD>
  116. </TR>
  117. <TR>
  118. <TH WIDTH="30%" NOWRAP>E-mail: </TH>
  119. <TD WIDTH="70%"><?php echo $mail ?></TD>
  120. </TR>
  121. </TABLE></CENTER></DIV>
  122. <?php
  123. html_footer();
  124. }
  125. switch($action)
  126. {
  127. case "register"<span style="color: #007700":
  128. create_account();
  129. break;
  130. defaul:
  131. html_header();
  132. register_form();
  133. html_footer();
  134. break;
  135. }
  136. ?>


Z góry dziękuje za odpowiedź winksmiley.jpg
Pozdrawiam,
ArekJ
Cienki1980
Na szybko bez sprawdzania dokładnego widzę że w switchu jest bład .. jest defaul ... a powinno być default .. dalej mi się nie chce analizować, o tej porze moje zwoje mózgowe nie pracują.
sowiq
A po case "register" powinien być znak : (dwukropek).

Naucz się czytać komunikaty błędów.
BibDeep
A w ogóle co to znaczy "nie działa" ? co sie dzieje? opisz dokładniej...

a co do błędów: w funkcji zawartej u ciebie pomiędzy liniamii 30-39 jest w zapytaniu błąd... wydaje mi się że powinno być jednak jak poniżej;)

  1. <?php
  2. function in_use($userid) // funkcja ta sprawdza czy nie dany login nie jest już wykorzystany
  3. {
  4. global $tabela_uzytkownikow;
  5.  
  6. $query = "SELECT userid FROM $tabela_uzytkownikow WHERE userid = '".$userid."'";
  7. $result = mysql_query($query);
  8. if(!mysql_num_rows($result)) return 0;
  9. else return 1;
  10. }
  11. ?>
webdice
Czysto formalnie: dwukropki po case usuwa forum.
ArekJ
No to tak "nie działa" w tym przypadku oznacza tyle, że tak jakby czyści formularz zamiast dodawać zapytanie... zresztą sami zobaczcie: www.swiat-magii.pl/register.php

A kod teraz wygląda tak:

  1. <?php
  2.  
  3. // łączymy się z bazą danych i wybieramy potrzebną baze danych
  4. $link_id = mysql_connect("localhost", "xxx", "xxx"); // tu root i pass są wprowadzone przez was w zależności od konfiguracji waszego serwera
  5. mysql_select_db("ArekJ_glowna");
  6. mysql_close($link_id);
  7.  
  8. // stworzymy dwie przydatne funkcje...jedna będzie tworzyła nagłówek strony, a druga stopke strony
  9. function html_header()
  10. {
  11. global $new_win_width, $new_win_height;
  12. ?>
  13. <HTML>
  14. <HEAD>
  15. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  16. <TITLE>Rejestracja</TITLE>
  17. </HEAD>
  18. <BODY>
  19. <?php
  20. }
  21.  
  22. function html_footer()
  23. {
  24. ?>
  25. </BODY>
  26. </HTML>
  27. <?php
  28. }
  29.  
  30.  
  31. function in_use($userid) // funkcja ta sprawdza czy nie dany login nie jest już wykorzystany
  32. {
  33. global $tabela_uzytkownikow;
  34.  
  35. $query = "SELECT userid FROM $tabela_uzytkownikow WHERE userid = '".$userid."'";
  36. $result = mysql_query($query);
  37. if(!mysql_num_rows($result)) return 0;
  38. else return 1;
  39. }
  40.  
  41.  
  42. function register_form() // funkcja ta wyświetla nam formularz w który użytkownik wpisze swoje dane
  43. {
  44. global $userid, $mail;
  45. global $PHP_SELF;
  46. ?>
  47. <CENTER><H3>Rejestracj:</H3></CENTER>
  48. <FORM METHOD="post" ACTION="<?php echo $PHP_SELF ?>">
  49. <INPUT TYPE="hidden" NAME="action" VALUE="register">
  50. <DIV ALIGN="center"><CENTER><TABLE BORDER="1" WIDTH="90%">
  51. <TR>
  52. <TH WIDTH="30%" NOWRAP>Logi: </TH>
  53. <TD WIDTH="70%"><INPUT TYPE="text" NAME="userid" VALUE="<?php echo $userid ?>" SIZE="15" MAXLENGHT="15"></TD>
  54. </TR>
  55.  <TR>
  56. <TH WIDTH="30%" NOWRAP>E-mail: </TH>
  57. <TD WIDTH="70%"><INPUT TYPE="text" NAME="mail" VALUE="<?php echo $mail ?>" SIZE="15"></TD>
  58. </TR>
  59. <TR>
  60. <TH WIDTH="30%" NOWRAP>Hasło: </TH>
  61. <TD WIDTH="70%"><INPUT TYPE="password" NAME="userpassword" SIZE="15"></TD>
  62. </TR>
  63. <TR>
  64. <TH WIDTH="30%" NOWRAP>Powtórz hasło: </TH>
  65. <TD WIDTH="70%"><INPUT TYPE="password" NAME="userpassword2" SIZE="15"></TD>
  66. </TR>
  67. <TR>
  68. <TH WIDTH="30%" COLSPAN="2" NOWRAP>
  69. <INPUT TYPE="submit" VALUE="Zarejestruj">
  70. <INPUT TYPE="reset" VALUE="Wyczyść">
  71. </TH>
  72. </TR>
  73. </TABLE>
  74. </CENTER></DIV>
  75. </FORM>
  76. <?php
  77. }
  78.  
  79.  
  80. function create_account() // funckja ta tworzy tworzy konto danego użytkownika
  81. {
  82. global $userid, $mail, $userpassword, $userpassword2;
  83.  
  84.  
  85.  
  86. // można też na wszelki wypadek dopisać warunki funkcji if które sprawdzałyby czy podane dane są poprawne. Ja ten krok pomijam
  87.  
  88. $link_id = mysql_connect("localhost", "xxx", "xxx");
  89.  
  90. $query = "INSERT INTO user VALUES(NULL, '$userid', password('$userpassword'), '$mail')";
  91.  
  92. $result = mysql_query($query);
  93. $usernumber = mysql_insert_id($link_id);
  94.  
  95.  
  96. html_header();
  97. ?>
  98. <CENTER><H3>
  99. <?php echo $mail ?>, dziękujemy za rejestrację w grze <a href='htt://www.swiat-magii.pl/' >Świat Magii</a>!<br /><br />
  100.  
  101. Zapraszamy na <a href='htt://www.forum.swiat-magii.pl/' >forum</a>!
  102. </H3></CENTER>
  103.  
  104. <DIV ALIGN="center"><CENTER><TABLE BORDER="1" WIDTH="90%">
  105. <TR>
  106. <TH WIDTH="30%" NOWRAP>I: </TH>
  107. <TD WIDTH="70%"><?php echo $usernumber ?></TD>
  108. </TR>
  109. <TR>
  110. <TH WIDTH="30%" NOWRAP>Logi: </TH>
  111. <TD WIDTH="70%"><?php echo $userid ?></TD>
  112. </TR>
  113. <TR>
  114. <TH WIDTH="30%" NOWRAP>Hasło: </TH>
  115. <TD WIDTH="70%"><?php echo $userpassword ?></TD>
  116. </TR>
  117. <TR>
  118. <TH WIDTH="30%" NOWRAP>E-mail: </TH>
  119. <TD WIDTH="70%"><?php echo $mail ?></TD>
  120. </TR>
  121. </TABLE></CENTER></DIV>
  122. <?php
  123. html_footer();
  124. }
  125. switch($action)
  126. {
  127. case "register"<span style="color: #007700":
  128. create_account();
  129. break;
  130. defaul:
  131. html_header();
  132. register_form();
  133. html_footer();
  134. break;
  135. }
  136. ?>
qba10
Skumałem twój kod na localu i jaki wniosek?
A taki że:
1) masz wyłączony register_globals
2) linijka 133: defaul: na default:
3) 130 -
case "register" - brakuje ';'
4) bez obrazy ten kod jest do dupy (nie chcę nikogo obrażać - tylko taka jest prawda, kod w ogóle nieczytelny i masa błędów bezpieczeństwa)
5) po poprawieniu tych błędów strona wyświetla że dane zostały wysłane, ale i tak ich nie mam w bazie mysql (to akurat może być mój błąd, ale nie chcę mi się już bazgrać w tym kodzie)

PS: Nie wiem czy to twój kod czy z neta, ale ja bym na twoim miejscu napisał nowy, lub poszukałbym w necie innego
ArekJ
z neta :/ No to poszukam, chociaż i tak ledwo co ten wykopałem...

P.S. A może zna ktoś jakiś tutorial jak zrobić własny skrypt rejestracji? Proszę o linka smile.gif
ArekJ
Dziękuje bardzo smile.gif Nie wiem czemu, ale w tym temacie google mi nie bardzo chciało pomóc. Pewnie nie wiem jak dobrze zadać pytanie biggrin.gif Bo jak szukam czegoś na temat w którym trochę siedze to mi idzie o niebo lepiej winksmiley.jpg

Dzięki jeszcze raz może jeszcze dzisiaj prześledze!

Pozdrawiam,
ArekJ
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.