Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] Rejestracja oraz logowanie
WebspyPL
post
Post #1





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

Ostrzeżenie: (0%)
-----


Witam!
Piszę właśnie skrypt rejestracji i logowania i mam pewnie problem, a mianowicie.

1. Jak zrobić, aby podczas rejestracji były wymagane wszystkie pola?
2. Podczas rejestracji wyświetla się błąd, a mianowicie:
Kod
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/webspy/public_html/rejestracja.php:1) in /home/webspy/public_html/rejestracja.php on line 3


Wracając do punktu pierwszego to chciałbym, aby:

Login, hasło, powtórz hasło oraz imię było wymagane! - Jeśli nie uzupełnimy tych pól to się nie zarejestrujemy.

A, oto kod rejestracji:
  1. <?php
  2. session_start(); // rozpoczęcie sesji
  3. ?>
  4.  
  5. <?php include('header.php'); ?>
  6. <div class="content">
  7. <h3>Zarejestruj się:</h3>
  8.  
  9. <?php
  10.  
  11. include('inc/db.php');
  12.  
  13. function html_header()
  14. {
  15. global $new_win_width, $new_win_height;
  16. ?>
  17. <HTML>
  18. <HEAD>
  19.  
  20. <TITLE>Rejestracja</TITLE>
  21. </HEAD>
  22. <BODY>
  23. <?php
  24. }
  25.  
  26. function html_footer()
  27. {
  28. ?>
  29. </BODY>
  30. </HTML>
  31. <?php
  32. }
  33.  
  34.  
  35. function in_use($userid)
  36. {
  37. global $tabela_uzytkownikow;
  38.  
  39. $query = "SELECT userid FROM $tabela_uzytkownikow WHERE userid = 'userid'";
  40. $result = mysql_query($query);
  41. if(!mysql_num_rows($result)) return 0;
  42. else return 1;
  43. }
  44.  
  45.  
  46. function register_form()
  47. {
  48. global $userid, $username;
  49. global $PHP_SELF;
  50. ?>
  51. <CENTER><H3>Utworz swoje konto</H3></CENTER>
  52. <FORM METHOD="post" ACTION="<?php echo $PHP_SELF ?>">
  53. <INPUT TYPE="hidden" NAME="action" VALUE="register">
  54. <DIV ALIGN="center"><CENTER><TABLE BORDER="1" WIDTH="90%">
  55. <TR>
  56. <TH WIDTH="30%" NOWRAP>Imię</TH>
  57. <TD WIDTH="70%"><INPUT TYPE="text" NAME="username" VALUE="<?php echo $username ?>" SIZE="20"></TD>
  58. </TR>
  59. <TR>
  60. <TH WIDTH="30%" NOWRAP>Login</TH>
  61. <TD WIDTH="70%"><INPUT TYPE="text" NAME="userid" VALUE="<?php echo $userid ?>" SIZE="8" MAXLENGHT="8"></TD>
  62. </TR>
  63. <TR>
  64. <TH WIDTH="30%" NOWRAP>Hasło</TH>
  65. <TD WIDTH="70%"><INPUT TYPE="password" NAME="userpassword" SIZE="15"></TD>
  66. </TR>
  67. <TR>
  68. <TH WIDTH="30%" NOWRAP>Powtórz hasło</TH>
  69. <TD WIDTH="70%"><INPUT TYPE="password" NAME="userpassword2" SIZE="15"></TD>
  70. </TR>
  71. <TR>
  72. <TH WIDTH="30%" COLSPAN="2" NOWRAP>
  73. <INPUT TYPE="submit" VALUE="Zarejestruj się">
  74. <INPUT TYPE="reset" VALUE="Wyczyść">
  75. </TH>
  76. </TR>
  77. </TABLE>
  78. </CENTER></DIV>
  79. </FORM>
  80. <?php
  81. }
  82.  
  83.  
  84. function create_account() // funckja ta tworzy tworzy konto danego użytkownika
  85. {
  86. global $userid, $username, $userpassword, $userpassword2;
  87.  
  88.  
  89. $link_id = include('inc/db.php');
  90.  
  91. $query = "INSERT INTO user VALUES(NULL, '$userid', password('$userpassword'), '$username')";
  92.  
  93. $result = mysql_query($query);
  94.  
  95. html_header();
  96. ?>
  97. <CENTER><H3>
  98. <?php echo $username ?>, dziękujemy za zarejestrowanie się
  99. </H3></CENTER>
  100.  
  101. <DIV ALIGN="center"><CENTER><TABLE BORDER="1" WIDTH="90%">
  102. <TR>
  103. <TH WIDTH="30%" NOWRAP>Imię:</TH>
  104. <TD WIDTH="70%"><?php echo $username ?></TD>
  105. </TR>
  106. <TR>
  107. <TH WIDTH="30%" NOWRAP>Login</TH>
  108. <TD WIDTH="70%"><?php echo $userid ?></TD>
  109. </TR>
  110. <TR>
  111. <TH WIDTH="30%" NOWRAP>Hasło</TH>
  112. <TD WIDTH="70%"><?php echo $userpassword ?></TD>
  113. </TR>
  114. </TABLE></CENTER></DIV>
  115. <?php
  116. html_footer();
  117. }
  118. switch($action)
  119. {
  120. case "register":
  121. create_account();
  122. break;
  123. default:
  124. html_header();
  125. register_form();
  126. html_footer();
  127. break;
  128. }
  129. ?>
  130.  
  131. </div>
  132. <?php include('stopka.php'); ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
WebspyPL
post
Post #2





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

Ostrzeżenie: (0%)
-----


A, no właśnie duplikuje, a oto screen z bazy:

(IMG:http://fooh.pl/pokaz/2455193767.PNG)


Dodatkowo podczas zakładania konta jest błąd:

Cytat
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/webspy/public_html/rejestracja.php on line 24

Konto zostało założone



A, oto kod z rejestracja.php
  1. <?php
  2. session_start(); // rozpoczęcie sesji
  3. ?>
  4.  
  5. <?php include('header.php'); ?>
  6. <div class="content">
  7. <?
  8. include('inc/db.php');
  9. $tryb = trim($_REQUEST["tryb"]);
  10.  
  11. if ($tryb=="dodaj") {
  12.  
  13. $login = htmlspecialchars(stripslashes(trim($_POST["login"])), ENT_QUOTES);
  14. $haslo = htmlspecialchars(stripslashes(trim($_POST["haslo"])), ENT_QUOTES);
  15. $email = htmlspecialchars(stripslashes(trim($_POST["email"])), ENT_QUOTES);
  16.  
  17. // tutaj sprawdzam czy login ma więcej niż 4 znaki oraz czy nie ma polskich liter oraz spacji, jezeli jest ok to robi zapytanie czy taki login juz jest w bazie.
  18.  
  19. if (strlen($login)<4 or !eregi("^[a-zA-Z0-9_.]+$",$login)) { $blad++;
  20. echo "Login musi mieć od 3 do 50 znaków bez polskich liter i spacji!";
  21. } else {
  22. $wynik=mysql_query("SELECT username FROM user WHERE username='$login'");
  23. if (mysql_num_rows($wynik)>0) { $blad++;
  24. echo "Login jest zajęty";
  25. }
  26. }
  27.  
  28. if (strlen($haslo)<6 or strlen($haslo)>50 or !eregi("^[a-zA-Z0-9]+$",$haslo)) { $blad++;
  29. echo "Hasło musi mieć od 6 do 50 znaków bez polskich liter i spacji!";
  30. }
  31.  
  32. // Jezeli nie ma bledu to przechodzi dalej
  33.  
  34. if ($blad==0) {
  35. $kod = uniqid(rand());
  36. $haslo = md5($haslo); // zaszyfrowanie hasla
  37. $wynik = mysql_query("INSERT INTO rejestracja VALUES('$login', '$haslo', '$email')");
  38. if ($wynik) {
  39. echo "<p>Konto zostało założone</p>";
  40. }
  41. } else $tryb="";
  42. }
  43.  
  44. if ($tryb=="") {
  45. // Formularz do zakladania konta. Daje input o nazwie tryb oraz wartoscia dodaj.
  46. <form action="?strona=rejestracja" method="post">
  47. <input type="hidden" name="tryb" value="dodaj" />
  48. <table>
  49. <tr>
  50. <td>login</td>
  51. <td><input type="text" name="login" value="" /></td>
  52. </tr>
  53. <tr>
  54. <td>hasło</td>
  55. <td><input type="password" name="haslo" value="" /></td>
  56. </tr>
  57. <tr>
  58. <td>email:</td>
  59. <td><input type="text" name="email" value="" /></td>
  60. </tr>
  61. <tr>
  62. <td colspan="2" align="right">
  63. <div class="buttons">
  64. <button type="submit">
  65. <img src="images/tick.png" alt=""/>
  66. Rejestruj
  67. </button>
  68. </div></td>
  69. </tr>
  70. </table>
  71. </form>
  72. ';
  73. }
  74. ?>
  75.  
  76.  
  77. </div>
  78. <?php include('stopka.php'); ?>


Odświeżam!

Ten post edytował WebspyPL 23.12.2011, 21:27:02
Go to the top of the page
+Quote Post

Posty w temacie
- WebspyPL   [MySQL][PHP] Rejestracja oraz logowanie   23.12.2011, 16:09:13
- - glacier   Co do punktu 1 po lini 88 dałbym warunek: [PHP] p...   23.12.2011, 17:06:01
- - WebspyPL   No dobra zaraz sprawdzę, a teraz mam taki problem....   23.12.2011, 17:09:17
- - amii   Najprościej to zrób UNIQUE na tabeli z użytkownika...   23.12.2011, 17:20:34
- - WebspyPL   ammi, CytatNajprościej to zrób UNIQUE na tabeli z ...   23.12.2011, 17:22:36
- - glacier   Czyli musisz zastosować kolejny warunek. Nie jeste...   23.12.2011, 17:26:05
- - WebspyPL   glacier, wiesz ja jestem kompletnie zielony w tym ...   23.12.2011, 17:30:39
- - glacier   To już kolega amii musi się wypowiedzieć. Ja musia...   23.12.2011, 17:40:42
- - WebspyPL   Dodałem ten kod do tabeli w bazie danych i nadal m...   23.12.2011, 17:41:31
- - glacier   Pokaz kod, z dodanymi wierszami.   23.12.2011, 17:43:09
- - WebspyPL   Moje zapytanie do bazy wygląda tak: [SQL] pobierz,...   23.12.2011, 17:44:28
- - glacier   [PHP] pobierz, plaintext  CREATE TABLE user ...   23.12.2011, 17:56:24
- - WebspyPL   glacier, username odpowiada za imię, a userid za l...   23.12.2011, 17:58:16
- - glacier   Prawda. Więc tak: [PHP] pobierz, plaintext ...   23.12.2011, 18:01:42
- - WebspyPL   Dobra już nie duplikuje rekordów w bazie danych, a...   23.12.2011, 18:31:16
- - Barcelona   Wklej jeszcze raz kod rejestracja.php   23.12.2011, 18:53:09
- - WebspyPL   Oto rejestracja.php [PHP] pobierz, plaintext ...   23.12.2011, 18:59:18
- - Barcelona   Powiem Ci że bardzo ale to bardzo utrudniasz sobie...   23.12.2011, 19:33:57
- - WebspyPL   Wkleiłem ten Twój kod i tak to wygląda: KodWarning...   23.12.2011, 19:37:16
- - Barcelona   A jesteś połączony z bazą ? Z tego co widzę to mas...   23.12.2011, 20:06:35
- - WebspyPL   Faktycznie nie zauważyłem, ale teraz po rejestracj...   23.12.2011, 20:09:16
- - jacobson   w linijce 24 masz nazwe tabeli "rejestracja...   23.12.2011, 20:23:57
- - WebspyPL   Dobra, a teraz taki problem z zapytaniem. [SQL] p...   23.12.2011, 21:14:12
- - Barcelona   [PHP] pobierz, plaintext CREATE TABLE IF NOT EXIST...   23.12.2011, 21:14:52
- - WebspyPL   Dobra wszystko działa, ale teraz gdy założę konto ...   23.12.2011, 21:19:39
- - Barcelona   Hmm sam korzystam z tego skryptu i u mnie nie ma t...   23.12.2011, 21:22:30
- - WebspyPL   A, no właśnie duplikuje, a oto screen z bazy: ...   24.12.2011, 00:12:04
- - gorden   1. zamiast ereg użyj preg, jest szybsze. w dodatku...   24.12.2011, 00:28:36
|- - WebspyPL   Cytat(gorden @ 24.12.2011, 00:28:36 )...   24.12.2011, 00:37:32
|- - Barcelona   Cytat(gorden @ 24.12.2011, 00:28:36 )...   24.12.2011, 00:56:31
- - gorden   linie 14-16, chodzi mi o podmianę na podany przeze...   24.12.2011, 00:58:54
- - WebspyPL   Dobra, a więc mój kod rejestracja.php wygląda nast...   24.12.2011, 10:25:43
- - Wicio   [HTML] pobierz, plaintext <input name="log...   24.12.2011, 10:35:32
- - WebspyPL   Dziękuje wszystkim za pomoc plusy przyznane, a tem...   24.12.2011, 10:43:38


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: 22.08.2025 - 19:19