Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Prosiłbym o pomoc...logowanie
Forum PHP.pl > Forum > Przedszkole
mega82
Witam serdecznie. Mój problem polega na tym, iż zakupiłem książkę - Ullman Larry: ,,Dynamiczne strony WWW PHP i MySQL” , Helion 2004 ,w celu wykonania projektu stronki z logowaniem, zaznaczam,że do książki dodany jest adres do ftpa, gdzie można pobrać pliki ze skryptami wykorzystanymi w owej książce i o zgrozo, po utworzeniu bazy danych, odpaleniu plików dostarczonych do książki przeprowadzana jest rejestracja bezproblemowo - użytkownik dodaje się do bazy z hasłem itd, ale w momenci kiedy chcę zalogować się na wcześniej utworzone konto - widzę info: błędne hasło lub login sad.gif...

Byłbym serdecznie wdzięczny za jakąś pomoc, gdyż jest to dla mnie b.ważne

mega
Glarden
To może pokaż kod logowania, co?
mega82
<?php # Listing 12.7 - login.php
// Skrypt pozwalający na zalogowanie się na stronie.

// Dołączenie pliku konfiguracyjnego obsługującego błędy, itp.
require_once ('includes/config.inc');

// Określenie tytułu strony i dołączenie nagłówka HTML.
$page_title = 'Logowanie';
include ('includes/header.html');

if (isset($_POST['submit'])) { // Sprawdzenie czy formularza został wypełniony.

require_once ('../mysql_connect.php'); // Połączenie z bazą danych.

if (empty($_POST['username'])) { // Walidacja nazwy konta użytkownika.
$u = FALSE;
echo '<p><font color="red" size="+1">Proszę podać poprawną nazwę użytkownika!</font></p>';
} else {
$u = escape_data($_POST['username']);
}

if (empty($_POST['password'])) { // Walidacja hasła.
$p = FALSE;
echo '<p><font color="red" size="+1">Proszę podać poprawne hasło!</font></p>';
} else {
$p = escape_data($_POST['password']);
}

if ($u && $p) { // Jeśli nie wystąpiły żadne problemy.

// Wysłanie zapytania do bazy danych.
$query = "SELECT user_id, first_name FROM users WHERE username='$u' AND password=PASSWORD('$p')";
$result = @mysql_query ($query);
$row = mysql_fetch_array ($result, MYSQL_NUM);

if ($row) { // W bazie znaleziono szukane dane.

// Rozpoczęcie sesji, zarejestrowanie wartości i przekierowanie.
$_SESSION['first_name'] = $row[1];
$_SESSION['user_id'] = $row[0];

ob_end_clean(); // Usunięcie bufora.

header ("Location: http://" . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']) . "/index.php");
exit();

} else { // W bazie nie znaleziono szukanych danych.
echo '<p><font color="red" size="+1">Podana nazwa konta użytkownika i hasło nie pasują do zawartych w pliku.</font></p>';
}

mysql_close(); // Zamknięcie połączenia z bazą danych.

} else { // Jeśli wystąpiły problemy.
echo '<p><font color="red" size="+1">Proszę spróbować ponownie.</font></p>';
}

} // Koniec instrukcji warunkowej SUBMIT.
?>

<h1>Logowanie</h1>
<p>Aby się zalogować przeglądarka musi zezwolić na utworzenie plików cookie.</p>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<fieldset>
<p><b>Konto użytkownika:</b> <input type="text" name="username" size="10" maxlength="20" value="<?php if (isset($_POST['username'])) echo $_POST['username']; ?>" /></p>
<p><b>Hasło:</b> <input type="password" name="password" size="20" maxlength="20" /></p>
<div align="center"><input type="submit" name="submit" value="Zaloguj się" /></div>
</form><!-- Koniec formularza -->

<?php // Dołączenie stopki HTML.
include ('includes/footer.html');
?>


Ps.Byłbym strasznie wdzięczny za polecenie jakiejś dobrej książki bez błędów w kodzie,żeby był w niej
przykład witryny z logowaniem i częścią administratora + dodawanie np.news na tej witrynie,bo ugrzęzłem
na tej książce...i znalazłem dużo błędów..przynajmniej tak mi się wydaje

Z góry wielkie dzięki..
KCG
a session_start() na początku?
I nie lepiej:
  1. <?php # Listing 12.7 - login.php
  2. // Skrypt pozwalający na zalogowanie się na stronie.
  3.  
  4. // Dołączenie pliku konfiguracyjnego obsługującego błędy, itp.
  5. require_once ('includes/config.inc');
  6.  
  7. // Określenie tytułu strony i dołączenie nagłówka HTML.
  8. $page_title = 'Logowanie';
  9. include ('includes/header.html');
  10.  
  11. if (isset($_POST['submit'])) { // Sprawdzenie czy formularza został wypełniony.
  12.  
  13. require_once ('../mysql_connect.php'); // Połączenie z bazą danych.
  14.  
  15. if (empty($_POST['username'])) { // Walidacja nazwy konta użytkownika.
  16. $u = FALSE;
  17. echo '<p><font color="red" size="+1">Proszę podać poprawną nazwę użytkownika!</font></p>';
  18. } else {
  19. $u = escape_data($_POST['username']);
  20. }
  21.  
  22. if (empty($_POST['password'])) { // Walidacja hasła.
  23. $p = FALSE;
  24. echo '<p><font color="red" size="+1">Proszę podać poprawne hasło!</font></p>';
  25. } else {
  26. $p = escape_data($_POST['password']);
  27. }
  28.  
  29. if ($u && $p) { // Jeśli nie wystąpiły żadne problemy.
  30.  
  31. // Wysłanie zapytania do bazy danych.
  32. $query = "SELECT user_id, first_name FROM users WHERE username='$u' AND password=PASSWORD('$p')";
  33. $result = @mysql_query ($query);
  34. $row = mysql_fetch_array ($result, MYSQL_NUM);
  35.  
  36. if ($row) { // W bazie znaleziono szukane dane.
  37.  
  38. // Rozpoczęcie sesji, zarejestrowanie wartości i przekierowanie.
  39. $_SESSION['first_name'] = $row[1];
  40. $_SESSION['user_id'] = $row[0];
  41.  
  42. ob_end_clean(); // Usunięcie bufora.
  43.  
  44. header ("Location: http://" . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']) . "/index.php");
  45. exit();
  46.  
  47. } else { // W bazie nie znaleziono szukanych danych.
  48. echo '<p><font color="red" size="+1">Podana nazwa konta użytkownika i hasło nie pasują do zawartych w pliku.</font></p>';
  49. }
  50.  
  51. mysql_close(); // Zamknięcie połączenia z bazą danych.
  52.  
  53. } else { // Jeśli wystąpiły problemy.
  54. echo '<p><font color="red" size="+1">Proszę spróbować ponownie.</font></p>';
  55. }
  56.  
  57. } // Koniec instrukcji warunkowej SUBMIT.
  58. ?>


Apache, PHP i MySQL. Od podstaw HELION
PHP i MySQL. Tworzenie stron WWW. Vademecum profesjonalisty HELION
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.