Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Logowanie
Forum PHP.pl > Forum > PHP
Eset96
Witam otóż mam problem zrobłem logowanie i nie chce działac, znaczy nie robiłem, ale skopiowałem z egrafik.pl

  1. <?
  2. // Na samej górze zadeklaruj sesję.
  3. // Sekcja wylogowywania, kasuje wszystkie zmienne sesyjne
  4. $message=""; // Wiadomość po wylogowaniu
  5.  
  6. // Sekcja logowania
  7. $login=$_POST[&#8216;e-mail’];
  8. if($login) {
  9. // W momencie kliknięcia w przycisk formularza
  10. $uzytkownik=$_POST[&#8216;e-mail’];
  11. $md5_haslo=md5($_POST[&#8216;key’]);
  12. // Koduje hasło funkcją md5().
  13.  
  14.  
  15. // Połączenie z bazą.
  16. $host=""; // Nazwa hosta.
  17. $db_user=""; // Nazwa użytkownika - MySQL.
  18. $db_password=""; // Hasło do bazy.
  19. $database=""; // Nazwa bazy.
  20. mysql_connect($host,$db_user,$db_password);
  21. mysql_select_db($database);
  22. // Sprawdzenie nazwy użtkownika i hasła.
  23. $rezultat=mysql_query("select * FROM users WHERE e-mail=’$uzytkownik’ AND key=’$md5_haslo’");
  24. if(@mysql_num_rows($rezultat)){
  25. session_register("e-mail"); // Zapamiętuje zmienną sesji
  26. header("location:main.php"); // Przekierowanie do strony main.php
  27. }else {
  28. $message="Nieprawidłowa nazwa użytkownika lub hasło";
  29. }
  30. } // Koniec sprawdzania autoryzacji.
  31. ?>
  32. <head>
  33.  
  34. <title>Dokument</title>
  35. </head>
  36. <body>
  37. <? echo $message; ?>
  38. <form id="form1" name="form1" method="post" action="<? echo $PHP_SELF; ?>">
  39. <table>
  40. <tr>
  41. <td>Użytkownik: </td>
  42. <td><input name="uzytkownik" type="text" id="uzytkownik" /></td>
  43. </tr>
  44. <tr>
  45. <td>Hasło: </td>
  46. <td><input name="haslo" type="password" id="haslo" /></td>
  47. </tr>
  48. </table>
  49. <input name="login" type="submit" id="login" value="login" />
  50. </form>
  51. </body>
  52. </html>


i main.php
  1. <?
  2.  
  3. session_start(); // Na samej górze zadeklaruj sesję.
  4. if(!session_is_registered("uzytkownik")){ // Sprawdza zmienną sesji.
  5. header("location:index.php"); // Przekierowanie do index.php
  6. }
  7. ?>
  8.  
  9. <head>
  10.  
  11. <title>Dokument</title>
  12. </head>
  13. <body>
  14. <p>Witaj <? echo $_SESSION[&#8216;e-mail’]; ?>! Jesteś zalogowany.</p>
  15. <p><a href="index.php">Wyloguj</a></p>
  16. </body>
  17. </html>


wogole nie chce przeniesc do main.php chociaz hasla sa dobre
jcubic
W pierszym pliku rejestrujesz zmienną e-mail a w drugim sprawdzasz zmienną uzytkownik (musisz zmienić w drugim skrypcie na e_mail).
PS: W drugim skrypcie powinno być
Kod
$_SESSION['e_mail'];
ale to może wina skryptu kolorującego składnie na forum.
PS2:
Cytat
Jeśli skrypt ma działać niezależnie od ustawienia register_globals, niezbędne jest użycie tablicy $_SESSION, jako że elementy $_SESSION są atomatycznie rejestrowane. Jeśli skrypt korzysta z session_register(), nie będzie on działać w środowisku z wyłączoną dyrektywą register_globals.

czyli zamiast session_register

Kod
session_register("e-mail");

ma być
Kod
$_SESSION['e_mail'] = wartość;

w drugim skrypcie
Kod
if (!isset($_SESSION['e_mail'])) {
   header("location:index.php");
}


Nazwy zmiennych nie mogą mieć myślników o ile mi wiadomo (myślniki mogą mieć zmienne i nazwy funkcji w języku Lisp). Do tego nie pobierasz nic z bazy danych.

Kod
if(mysql_num_rows($rezultat)) {
    $row = mysql_fetch_row($rezultat);
    $_SESSION['e_mail'] = $row[0]; // jeśli email jest pierwszą kolumną
    //albo
    $_SESSION['e_mail'] = $row['e-mail'];

    header("location:main.php"); // Przekierowanie do strony main.php
    exit;
}
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.