Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z logowaniem [php+mysql]
Forum PHP.pl > Forum > PHP
mari133
Witam, otóż mam następujący problem.
Mam skrypt w którym się logujemy i pobiera on nasze dane z bazy (punkty)
I mam problem, ponieważ po zalogowaniu i przejsciu na stronę na której mają się wyświetlić te dane - wyswietla się monit o logowanie.

Poniżej przedstawiam ten skrypt.

index.php
  1. <?php
  2.  
  3. // rozpoczęcie buforowania (jest to potrzebne by nie mieć błędów typu headers already sent)
  4.  
  5. // start sesji
  6.  
  7. // jeśli user jest zalogowany
  8. if($_SESSION['logged'])
  9. {
  10. // wyświetlamy userowi jego dane
  11. echo 'Witaj '.$_SESSION['nick'].'!<br />';
  12. echo 'Masz: '.$_SESSION['punkty'].' punktów.<br />';
  13. echo 'Zarejestrowałes się u nas: '.date("d.m.Y, H:i", $_SESSION['data_rejestracji']).'<br />';
  14. echo '<a href="logout.php">WYLOGUJ</a>';
  15. }
  16. // jeśli nie jest zalogowany
  17. else
  18. {
  19. echo 'Witaj!<br />';
  20. echo '<a href="login.php">Zaloguj się</a> lub <a href="register.php">zarejestruj nowe konto</a>';
  21. }
  22.  
  23. // koniec buforowania
  24. ?>



login.php
  1. <?php
  2.  
  3. // rozpoczęcie buforowania (jest to potrzebne by nie mieć błędów typu headers already sent)
  4.  
  5. // start sesji
  6.  
  7. // połączenie z mysql
  8. mysql_connect('localhost', 'xxx', 'xxx')
  9. or die('Nieudane polaczenie z baza danych...');
  10.  
  11. // wybór bazy danych
  12. or die('Nie udalo sie wybrac bazy danych...');
  13.  
  14. // nagłówek
  15. echo '<h2>Logowanie</h2>';
  16.  
  17. // sprawdzamy czy user jest już zalogowany
  18. if($_SESSION['logged']) echo 'Już jestes zalogowany!';
  19. else
  20. {
  21. // tworzymy prosty formularz
  22. echo '<form action="login.php" method="POST">
  23. Nick: <br />
  24. <input type="text" name="nick"><br />
  25. Hasło: <br />
  26. <input type="password" name="pass"><br />
  27. <input type="submit" name="ok" value="Zaloguj">
  28. </form>';
  29.  
  30. // jeśli zostanie naciśnięty przycisk "Zaloguj"
  31. if(isset($_POST['ok']))
  32. {
  33. $nick = $_POST['nick'];
  34. $pass = $_POST['pass'];
  35.  
  36. // sprawdzamy czy wszystkie dane zostały podane
  37. if(empty($nick) || empty($pass)) echo 'Wpisz wszystkie pola!';
  38. // jeśli tak...
  39. else
  40. {
  41. // filtrujemy dane
  42.  
  43. // kodujemy hasło
  44. $pass = md5($pass);
  45.  
  46. // sprawdzamy czy istnieje użytkownik z takim loginem i hasłem
  47. $result = mysql_query("SELECT * FROM users WHERE nick='$nick' AND pass='$pass'");
  48.  
  49. // jeśli nie istnieje
  50. if(mysql_num_rows($result)==0) echo 'Niestety podałes niepoprawne dane!';
  51. // jeśli tak...
  52. else
  53. {
  54. // dodajemy wynik zapytania do tablicy
  55. $row = mysql_fetch_array($result);
  56.  
  57. // ustawianie sesji że użytkownik jest zalogowany
  58. $_SESSION['logged'] = true;
  59.  
  60. // dodawanie do sesji id użytkownika, login oraz datę rejestracji
  61. $_SESSION['id'] = $row['id'];
  62. $_SESSION['punkty'] = $row['punkty'];
  63. $_SESSION['nick'] = $row['nick'];
  64. $_SESSION['data_rejestracji'] = $row['data_rejestracji'];
  65.  
  66. // wyświetlenie komunikatu oznaczającego poprawne logowanie
  67. echo 'Zostałes poprawnie zalogowany! Możesz teraz przejsć na <a href="index.php">stronę główna</a>';
  68. }
  69. }
  70. }
  71. }
  72.  
  73. // rozłączenie z bazą danych
  74.  
  75. // koniec buforowania
  76. ?>



logout.php
  1. <?php
  2.  
  3. // rozpoczęcie buforowania (jest to potrzebne by nie mieć błędów typu headers already sent)
  4.  
  5. // start sesji
  6.  
  7. // nagłówek
  8. echo '<h2>Wylogowywanie</h2>';
  9.  
  10. // jeśli user jest zalogowany
  11. if($_SESSION['logged'])
  12. {
  13. // to go wylogowujemy i usuwamy jego dane z sesji
  14. $_SESSION['logged'] = false;
  15. $_SESSION['nick'] = '';
  16. $_SESSION['id'] = '';
  17. echo 'Zostałes poprawnie wylogowany! <a href="index.php">wróć</a>';
  18. }
  19. // jeśli nie jest zalogowany
  20. else
  21. {
  22. echo 'Nie byłes zalogowany! <a href="index.php">wróć</a>';
  23. }
  24.  
  25. // koniec buforowania
  26. ?>



rejestracja.php
  1. <?php
  2.  
  3. // rozpoczęcie buforowania (jest to potrzebne by nie mieć błędów typu headers already sent)
  4.  
  5. // start sesji
  6.  
  7. // połączenie z mysql
  8. mysql_connect('localhost', 'xxx', 'xxx')
  9. or die('Nieudane polaczenie z baza danych...');
  10.  
  11. // wybór bazy danych
  12. or die('Nie udalo sie wybrac bazy danych...');
  13.  
  14. // nagłówek
  15. echo '<h2>Rejestracja</h2>';
  16.  
  17. // tworzymy prosty formularz
  18. echo '<form action="register.php" method="POST">
  19. Nick: <br />
  20. <input type="text" name="nick"><br />
  21. Hasło: <br />
  22. <input type="password" name="pass"><br />
  23. <input type="submit" name="ok" value="Rejestruj">
  24. </form>';
  25.  
  26. // jeśli zostanie naciśnięty przycisk "Rejestruj"
  27. if(isset($_POST['ok']))
  28. {
  29. $nick = $_POST['nick'];
  30. $pass = $_POST['pass'];
  31.  
  32. // sprawdzamy czy wszystkie dane zostały podane
  33. if(empty($nick) || empty($pass)) echo 'Wpisz wszystkie pola!';
  34. // jeśli tak...
  35. else
  36. {
  37. // filtrujemy dane
  38.  
  39. // sprawdzamy czy jest już użytkownik o takim loginie
  40. $result = mysql_query("SELECT * FROM users WHERE nick='$nick'");
  41.  
  42. // jeśli już istnieje
  43. if(mysql_num_rows($result)!=0) echo 'Już istnieje konto z takim loginem!';
  44. // jeśli nie...
  45. else
  46. {
  47. // pobieramy aktualną datę
  48. $data = time();
  49.  
  50. // kodujemy hasło
  51. $pass = md5($pass);
  52.  
  53. // tworzymy zapytanie
  54. $query = "INSERT INTO `users` (`nick` , `pass`, `data_rejestracji`) VALUES ('$nick', '$pass', '$data')";
  55.  
  56. // jeśli zapytanie wykona się poprawnie to zostanie wyświetlony stosowny komunikat
  57. if(mysql_query($query)) echo 'Zostałes poprawnie zarejestrowany! Możesz się teraz <a href="login.php">zalogować</a>';
  58. }
  59. }
  60. }
  61.  
  62. // rozłączenie z bazą danych
  63.  
  64. // koniec buforowania
  65. ?>
nospor
Widac sesja ci sie nie tworzy.
Zapoznaj się z tym tematem:
Temat: Jak poprawnie zada pytanie
włączy wyswietlanie wszystkich bledow i inne podobne cenne wskazowki z tego tematu
mari133
Poprawiłem błąd z sesjami - dodałem kod na samym początku stron.

Ale teraz wywala
Cytat
Notice: Undefined index: logged in /home/mari133/domains/obciach.net/public_html/streetteam/login.php on line 116
Nick:


A oto kod w tamtym miejscu z różnych plików:

login.php
  1. // sprawdzamy czy user jest już zalogowany
  2. if($_SESSION['logged']) echo 'Już jestes zalogowany!';
  3. else


index.php
  1. // jeśli user jest zalogowany
  2. if($_SESSION['logged'])
  3. {



@edit
Poprawiłem - i nadal nie wyświetla danych. ;/
szmerak
Ze skryptem jest wszystko wporządku... Musisz ty mieć jakiś problem na serwerze...
Spróbój na localhoscie jak nie będzie problemów, to niestety musisz zmienić hosting...
toaspzoo
nie użwaj
  1.  
  2. // koniec buforowania
  3.  


jeżeli nie masz wielu odwiedzn
mari133
Kurde no ;/
A najlepsze jest to, że niedawno działało wszystko..

Sprawdzcie czy działa:
http://www.obciach.net/streetteam

zalogujcie się na
mmm
1234

i czy po przejściu na stronę główna wyświetla się Wam login, punkty itp?
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.