Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] Skrypt logowania - problem
kulpek
post
Post #1





Grupa: Zarejestrowani
Postów: 26
Pomógł: 1
Dołączył: 9.12.2005
Skąd: Kielce

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


Witam probuje stworzyc cos w stylu skryptu logowania... napisalem juz caly kod ale mimo to nie dziala on tak jak powinien. Oto fragment kodu ktory nie funkcjonuje jak nalezy:

  1. <?php
  2. if ($u && $p) { // jesli nie wystapily problemy
  3. // wysyla zapytania do bazy danych
  4. $query = "SELECT user_id, username FROM users WHERE username='$u' AND password=PASSWORD('$p')";
  5. $result = @mysql_query ($query);
  6. $row = mysql_fetch_array ($result, MYSQL_NUM);
  7. if ($row) { // w bazie znaleziono szukane dane.
  8. // rozpoczecie sesji, zarejestrowanie wartosci i przekierowanie
  9. $_SESSION['username'] = $row[1];
  10. $_SESSION['user_id'] = $row[0];
  11.  
  12. ob_end_clean(); // usuniecie bufora
  13.  
  14. header ("Location: http://" . $_SERVER['HTTP_HOST'] . "/index.php");
  15. exit();
  16. } else { // w bazie nie ma szukanych danych
  17. echo '<span style="color:red">Podany login i hasło nie zostały znalezione w naszej bazie!</span><br />';
  18. }
  19. } else { // jesli wystapily problemy
  20. echo '<span style="color:red">Proszę spróbować ponownie.</span><br /><br />';
  21. }
  22. ?>


Wpisuje do formularza poprawne dane, ktore sa w bazie bo sprawdzalem wielokrotnie, a on za kazdym razem wypisuje "Podany login i hasło nie zostały znalezione w naszej bazie!". Domyslam sie, ze cos zepsulem w wywolaniu funkcji "mysql_fetch_array". Jesli ktos widzi jakis problem to prosze o odpowiedz (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) z gory dzieki

Ten post edytował kulpek 24.12.2007, 00:42:31
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
kulpek
post
Post #2





Grupa: Zarejestrowani
Postów: 26
Pomógł: 1
Dołączył: 9.12.2005
Skąd: Kielce

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


niestety ani jeden, ani drugi sposob nie pomagaja...

@dadexix

nie wywala zadnego bledu jak usune @

EDIT: To moze ja dam caly kod moze sie w czyms przyda...

  1. <?php
  2. if (isset($_POST['submit'])) { // sprawdzenie czy formularz zostal wypelniony
  3.  
  4. // Wstawia  przed znakami specjalnymi
  5. function escape_data ($data) {
  6. global $dbc; // Polaczenie
  7. if (ini_get('magic_quotes_gpc')) {
  8. $data = stripslashes($data);
  9. }
  10. return mysql_real_escape_string($data, $dbc);
  11. } // Koniec funkcji.
  12.  
  13. require_once ('mysql_connect.php'); // Polacz sie z baza danych
  14. if (empty($_POST['username'])) { // sprawdenie nicka
  15. $u = FALSE;
  16. echo '<span style="color:red">Proszę podać poprawną nazwę konta!</span><br />';
  17. } else {
  18. $u = escape_data($_POST['username']); 
  19. }
  20. if (empty($_POST['password'])) { // sprawdenie hasla
  21. $p = FALSE;
  22. echo '<span style="color:red">Proszę podać poprawne hasło!</span><br />';
  23. } else {
  24. $p = escape_data($_POST['password']); 
  25. }
  26. if ($u && $p) { // jesli nie wystapily problemy
  27. // wysyla zapytania do bazy danych
  28. $query = "SELECT user_id, username, password FROM users WHERE username='$u' AND password=PASSWORD('$p')";
  29. $result = mysql_query ($query);
  30. $row = mysql_fetch_array ($result, MYSQL_NUM);
  31. if ($row['1'] == $u) { // w bazie znaleziono szukane dane.
  32. // rozpoczecie sesji, zarejestrowanie wartosci i przekierowanie
  33. $_SESSION['username'] = $row[1];
  34. $_SESSION['user_id'] = $row[0];
  35.  
  36. ob_end_clean(); // usuniecie bufora
  37.  
  38. header ("Location: http://" . $_SERVER['HTTP_HOST'] . "/index.php");
  39. exit();
  40. } else { // w bazie nie ma szukanych danych
  41. echo '<span style="color:red">Podany login i hasło nie zostały znalezione w naszej bazie!</span><br />';
  42. }
  43. } else { // jesli wystapily problemy
  44. echo '<span style="color:red">Proszę spróbować ponownie.</span><br /><br />';
  45. }
  46. } // koniec instrukcji warunkowej submit
  47. ?>


Ten post edytował kulpek 24.12.2007, 00:50:26
Go to the top of the page
+Quote Post

Posty w temacie


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: 26.12.2025 - 05:57