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

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
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 09:14