Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP/MySQL] Problem z rejestracją
guzior
post
Post #1





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 13.01.2007

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


Napisałem sobie skrypt PHP rejestracji z połączeniem do bazy danych MySQL i z jakiegoś powodu podczas logowania pisze że dane wpisane do formularza podczas logowania się nie zgadzają.

Bardzo proszę o pomoc.

Oto skrypty:

Skrypt logowania:

  1. <? #logowanie.php
  2. if (isset($_POST['submit'])) {
  3.    require_once ('includes/mysql_connect.php');
  4.    
  5.    //Funkcja wstawiająca przed znakami specjalnymi znak odwrotengo ukośnika.
  6.    function escape_data ($data) {
  7.        global $dbc;
  8.        if (ini_get('magic_quotes_gpc')) {
  9.            $data = stripslashes($data);
  10.        }
  11.        return mysql_real_escape_string($data, $dbc);
  12.    }
  13.    //Koniec funkcjii.
  14.  
  15. $message = NULL;
  16.  
  17. //Sprawdź nazwę użytkownika
  18. if (empty($_POST['username'])) {
  19.    $u = FALSE;
  20.    $message .= '<p>Zapomniałeś wprowadzić nazwę użytkownika!</p>';
  21. } else {
  22.    $u = escape_data($_POST['username']);
  23. }
  24.  
  25. //Sprawdź hasło
  26. if (empty($_POST['password'])) {
  27.    $p = FALSE;
  28.    $message .= '<p>Zapomniałeś wprowadzić hasło!</p>';
  29. } else {
  30.    $p = escape_data($_POST['password']);
  31. }
  32.  
  33. if ($u && $p) {
  34.    //Odczytaj user_id i first_name dla podanej kombinacji nazwy użytkownika i hasla.
  35.    $query = "SELECT user_id, first_name FROM users WHERE username='$u' AND password=PASSWORD('$p')";
  36.    $result = @mysql_query ($query);
  37.    $row = mysql_fetch_array ($result, MYSQL_NUM);
  38.    
  39.    if ($row) { //Z bazy danych wyciągnięto właściwy rekord
  40.        setcookie ('first_name', $row[1], time()+3600, '/', '', 0);
  41.        setcookie ('user_id', $row[0], time()+3600, '/', '', 0);
  42.        header ("Location: http://". $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']). "/zalogowany.php");
  43.    exit();
  44.    
  45.    } else {
  46.        $message = '<p>Wprowadzone przez Ciebie nazwa użytkownika i hasło nie zgadzają się z danymi w bazie.</p>';
  47.    }
  48.    
  49.    mysql_close();
  50.    
  51. } else {
  52.    $message .= '<p>Spróbuj jeszcze raz</p>';
  53. }
  54.  
  55. } //Koniec głównego formularza warunkowego Submit.
  56.  
  57. //Tytuł strony i nagłowek
  58. $page_title = 'Logowanie';
  59. include ('szablony/naglowek.inc');
  60.  
  61. //Jeżeli jest jakiś komunikat o błędzie, wyświetl go na stronioe.
  62. if (isset($message)) {
  63.    echo '<font color="red">'. $message .'</font>';
  64. }
  65. ?>
  66. <!-- Początek formularza -->
  67. <form action="<? echo $_SERVER['PHP_SELF']; ?>" method="post">
  68. <fieldset><legend>Wprowadź wymagane informacje:</legend>
  69.  
  70. <p><b>Nazwa użytkownika</b> <input type="text" name="username" size="10" maxlength="20" value="<? if (isset($_POST['username'])) echo $_POST['username']; ?>" /></p>
  71. <p><b>Hasło:</b> <input type="password" name="password" size="20" maxlength="20" /></p>
  72.  
  73. </fieldset>
  74. <div align="center"><input type="submit" name="submit" value="Zaloguj się" /></div>
  75. </form>
  76. <!-- Koniec formularza -->
  77. <?
  78. include('szablony/stopka.inc');
  79. ?>


Skrypt rejestracji:

  1. <? #rejestracja.php
  2.  
  3. //Tytuł strony i nagłówek
  4. $page_title = 'Zarejestruj się!';
  5. include ('szablony/naglowek.inc');
  6.  
  7. if (isset($_POST['submit'])) { //Obsluga formularza
  8.  
  9. require_once('includes/mysql_connect.php'); //Połącz z bazą danych
  10.  
  11. //funkcja wstawiająca przed znakami specjalnymi znak odwrotengo ukośnika.
  12. function escape_data ($data) {
  13.    global $dbc; //Wymaga połączenia
  14.    if (ini_get('magic_quotes_gpc'))
  15.    {
  16.        $data = stripslashes($data);
  17.    }
  18.    return mysql_real_escape_string($data, $dbc);
  19. }
  20. //koniec funkcji
  21.  
  22.    $message = NULL; //nowa pusta zmienna
  23.    
  24.  //sprawdź imie
  25.  if (empty($_POST['first_name'])) {
  26.      $fn = FALSE;
  27.      $message .= '<p>Zapomniałeś podać swoje imię!</p>';
  28.  } else {
  29.      $fn = escape_data($_POST['first_name']);
  30.  }
  31.  
  32.  //sprawdź nazwisko
  33.  if (empty($_POST['last_name'])) {
  34.      $ln = FALSE;
  35.      $message .= '<p>Zapomniałeś podać swoje nazwisko!</p>';
  36.  } else {
  37.      $ln = escape_data($_POST['last_name']);
  38.  }
  39.  
  40.  //sprawdź adres email
  41.  if (empty($_POST['email'])) {
  42.     $e = FALSE;
  43.     $message .= '<p>Zapomnialeś podać swój adres e-mail!</p>';
  44.  } else {
  45.     $e = escape_data($_POST['email']);
  46.  }    
  47.  
  48.  //sprawdź nazwę użytkownika  
  49.  if (empty($_POST['username'])) {
  50.     $u = FALSE;
  51.     $message .= '<p>Zapomniałeś wprowadzić nazwę użytkownika</p>';
  52.  } else {
  53.     $u = escape_data($_POST['username']);
  54.  }
  55.  
  56.  //sprawdź czy użytkownik wprowadził hasło poprawnie w oba pola
  57. if (empty($_POST['password1'])) {
  58.    $p = FALSE;
  59.    $message .= '<p>Zapomniałeś wprowadzić hasło</p>';
  60. } else {
  61.    if ($_POST['password1'] == $_POST['password2']) {
  62.        $p = escape_data($_POST['password1']);
  63.        } else {
  64.        $p = FALSE;
  65.        $message .= '<p>Za drugin razem wpisałeś inne hasło!</p>';
  66.        }
  67.  }
  68.  
  69. if ($fn && $ln && $e && $u && $p) { //Jeżeli wszystko jest OK
  70.  
  71.  //Zarejestruj użytkownika w bazie danych
  72.    
  73.    $query = "SELECT user_id FROM users WHERE username='$u'";
  74.    $result = @mysql_query ($query);
  75.    if (mysql_num_rows($result) == 0) {
  76.  //Utwórz zapytanie
  77.    $query = "INSERT INTO users (username, first_name, last_name, email, password, registration_date) VALUES ('$u', '$fn', '$ln', '$e', PASSWORD('$p'), NOW() )";
  78.    $result = @mysql_query ($query); //Wykonaj zapytanie
  79.  if ($result) { //Jeżeli zostało wykonane
  80.    
  81.    //Wyślij maila jeśli trzeba
  82.     echo '<p><b>Zostałeś zarejestrowany!</b></p>';
  83.     include ('szablony/stopka.inc');
  84.     exit();
  85.    
  86.  } else { //Jeżeli nie zostało wykonane
  87.    $message .= '<p>Nie zostałeś zarejstrowany z powodu awarii naszego systemu.<br>Przepraszamy za kłopot</p><p>'. mysql_error() .'</p>';
  88.  }
  89.    } else {
  90.        $message = '<p>Ktoś wybrał już sobie tę nazwę użytkownika.</p>';
  91.    }
  92.  mysql_close(); //Zamknij połączenie z bazą danych
  93.  
  94.  } else {
  95.    $message .= '<p>Spróbuj jeszcze raz</p>';
  96.  }
  97. } //Koniec głównego wyrażenia warunkowego Submit
  98.  
  99. //Jeżeli jest jakiś komunikat o błędzie, wyświetl go na stronie
  100. if (isset($message)) {
  101. echo '<font color="red">'. $message .'</font>';
  102. }
  103. ?>
  104.  
  105. <form action="<? echo $_SERVER['PHP_SELF']; ?>" method="post">
  106. <fieldset><legend>Wprowadź do poniższego formularza podane informacje:</legend>
  107. <p><b>Imię:</b> <input type="text" name="first_name" size="15" maxlenght="15" value="<? if (isset($_POST['first_name'])) echo $_POST['first_name']; ?>" /></p>
  108. <p><b>Nazwisko:</b> <input type="text" name="last_name" size="20" maxlenght="40" value"<? if (isset($_POST['last_name'])) echo $_POST['last_name']; ?>" /></p>
  109. <p><b>Adres E-mail:</b> <input type="text" name="email" size="40" maxlenght="60" value"<? if (isset($_POST['email'])) echo $_POST['email']; ?>" /></p>
  110. <p><b>Nazwa użytkownika:</b> <input type="text" name="username" size="20" maxlenght="40" value"<? if (isset($_POST['username'])) echo $_POST['username']; ?>" /></p>
  111. <p><b>Hasło:</b> <input type="password" name="password1" size="20" maxlenght="40" /></p>
  112. <p><b>Potwierdź hasło:</b> <input type="password" name="password2" size="20" maxlenght="40" /></p>
  113. </fieldset>
  114. <div align="center"><input type="submit" name="submit" value="Zarejestruj" /></div>
  115. </form>
  116. <?
  117. include('szablony/stopka.inc');
  118. ?>


Ten post edytował guzior 21.02.2009, 13:57:33
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
dziurson
post
Post #2





Grupa: Zarejestrowani
Postów: 145
Pomógł: 16
Dołączył: 19.07.2007
Skąd: Elbląg

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


Ale mi nic nie da że zobaczę to z zewnątrz. Musisz sobie sprawdzić wszystkie elementy. Czy do bazy dobrze zapisuje, robić co kawałek test zmiennych czy nie zmieniły się, sprawdzić zapytanie przez or die(). Usuwanie błędów to żmudna praca
Go to the top of the page
+Quote Post

Posty w temacie
- guzior   [PHP/MySQL] Problem z rejestracją   20.02.2009, 21:07:02
- - dziurson   usuń na chwile @ z linii zapytania do bazy i zobac...   20.02.2009, 22:32:09
|- - guzior   Cytat(dziurson @ 20.02.2009, 22:32:09...   21.02.2009, 13:55:42
- - dziurson   chodziło mi o plik logowania   25.02.2009, 19:25:17
- - guzior   sprawdzałem nie działa :/ ,może to coś z kodowanie...   25.02.2009, 20:07:35
- - dziurson   no też możliwe. a jakie masz w bazie i jakie na st...   27.02.2009, 12:15:18
- - guzior   ustawione kodowanie jest takie latin2_general_ci a...   27.02.2009, 13:43:00
- - dziurson   No to po wyborze bazy danych ale przed zapytaniami...   27.02.2009, 19:05:19
|- - guzior   Cytat(dziurson @ 27.02.2009, 19:05:19...   27.02.2009, 19:25:57
- - dziurson   no to wrzuć to do tego osobnego pliku. Ale coś nie...   28.02.2009, 10:05:37
|- - guzior   Cytat(dziurson @ 28.02.2009, 10:05:37...   28.02.2009, 10:17:09
- - dziurson   Ale mi nic nie da że zobaczę to z zewnątrz. Musisz...   28.02.2009, 10:26:22
- - guzior   rozwiązałem ten problem pisząc od nowa i łatwiejsz...   21.03.2009, 19:15:28
- - erix   Poszukaj na forum; stronicowanie już było n-razy o...   21.03.2009, 19:16:56
|- - guzior   Cytat(erix @ 21.03.2009, 19:16:56 ) P...   21.03.2009, 19:19:03
- - erix   switch" title="Zobacz w manualu PHP" target="_manu...   21.03.2009, 20:17:59
- - guzior   zrobiłem ale teraz mam problem ,chciałem dodać str...   23.03.2009, 15:59:33
- - Spawnm   tak , jak tylko pokażesz co zrobiłeś   23.03.2009, 16:29:15
- - guzior   Cytat(Spawnm @ 23.03.2009, 16:29:15 )...   23.03.2009, 16:48:07
- - Spawnm   gubisz zmienną get o nazwie go daj ?go=21&porc...   23.03.2009, 17:00:13
- - guzior   Cytat(Spawnm @ 23.03.2009, 17:00:13 )...   26.03.2009, 15:06:14
- - K4mil94   Jeśli w bazie masz uporządkowane newsy po id to ed...   26.03.2009, 15:16:02
|- - guzior   Cytat(K4mil94 @ 26.03.2009, 15:16:02 ...   26.03.2009, 15:18:40
- - K4mil94   [PHP] pobierz, plaintext <?php$id =$_GET['i...   26.03.2009, 15:23:48
- - guzior   [PHP] pobierz, plaintext <?php$tytul = $_POST...   26.03.2009, 16:01:12
- - K4mil94   Na początku Od pierwszego zapytania. Dostosuj to ...   26.03.2009, 16:05:06
- - Spawnm   [PHP] pobierz, plaintext <?php$tytul = $_POST...   26.03.2009, 16:06:24
- - guzior   chodzi mi głównie o to że jak mam więcej niż jedne...   26.03.2009, 16:19:02
- - K4mil94   No to tak jak ci pisze. Wybierasz newsa po id.   26.03.2009, 16:23:19
- - guzior   [PHP] pobierz, plaintext <?include('include...   26.03.2009, 18:02:35
- - K4mil94   Zobacz tak: [PHP] pobierz, plaintext <?phpinclu...   26.03.2009, 18:29:28
|- - guzior   Cytat(K4mil94 @ 26.03.2009, 18:29:28 ...   26.03.2009, 18:37:07
- - K4mil94   nazwij to test.php i wejdz w test.php?id=1 i zobac...   26.03.2009, 18:40:18
|- - guzior   Cytat(K4mil94 @ 26.03.2009, 18:40:18 ...   26.03.2009, 18:43:49
- - artur_dziocha   chyba nie przeczytałeś tego posta Temat: Najczests...   26.03.2009, 18:45:59
|- - guzior   Cytat(artur_dziocha @ 26.03.2009, 18:45...   26.03.2009, 18:50:32
- - K4mil94   Tutaj zaedytowałem i przetestowałem skrypt: [PHP] ...   26.03.2009, 18:49:18
- - K4mil94   Przetestuj to: http://kamilstudios.xt.pl/skrypty...   26.03.2009, 19:06:29
|- - guzior   Cytat(K4mil94 @ 26.03.2009, 19:06:29 ...   26.03.2009, 19:08:04
- - K4mil94   no jak masz ?go=1&id=3. Tu masz caly skrypt: t...   26.03.2009, 19:10:15
- - guzior   no tak ale ja tu widze dwa pliki test.php i edit.p...   26.03.2009, 19:11:41
- - K4mil94   Patrz poprzedni post   26.03.2009, 19:12:46
- - guzior   [PHP] pobierz, plaintext <?phpinclude(...   26.03.2009, 19:22:17
- - Spawnm   [PHP] pobierz, plaintext <?phpif($_POST...   26.03.2009, 19:28:41
- - K4mil94   Tak zawsze nie pokazywało mi napisu i button ...   26.03.2009, 19:34:07
|- - Spawnm   Cytat(K4mil94 @ 26.03.2009, 19:34:07 ...   26.03.2009, 19:36:35
- - K4mil94   Nie ma się o co kłucić ;P Obydwa sposoby działają   26.03.2009, 19:38:39
- - guzior   wszystko ladnie tylko jak dam Klik to mam cos taki...   26.03.2009, 19:43:29
- - K4mil94   to zrób z action=do edytuj.php   26.03.2009, 19:46:58
- - guzior   Zrobiłem sobie logowanie według tego Tur...   7.04.2009, 21:12:24


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: 2.10.2025 - 20:01