Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: sesje przy skrypcie logowania
Forum PHP.pl > Forum > PHP
Gitrix
cfg.php
  1. <?php
  2. define('DB_HOST','***'); // Host bazy danych
  3. define('DB_USER','***'); // Nazwa użytkownika bazy danych
  4. define('DB_PASS','***'); // Hasło użytkownika bazy danych
  5. define('DB_DB','***'); // Nazwa bazy danych
  6.  
  7. $connect = mysql_connect(DB_HOST, DB_USER, DB_PASS);
  8. mysql_query('SET NAMES utf8');
  9. mysql_query('SET CHARACTER SET utf8');
  10. mysql_query('SET collation_connection = utf8_polish_ci');
  11.  
  12. mysql_select_db(DB_DB,$connect);
  13. ?>
  14. <?php
  15. $nick = $_SESSION['username'];
  16. $haslo = $_SESSION['password'];
  17.  
  18. $u = mysql_query("SELECT * FROM users WHERE nick='$nick' AND haslo='$haslo'") or die(mysql_error());
  19.  
  20. if($u['username'] && $u['password'])
  21. {
  22. $Loggged = true;
  23. }
  24. else
  25. {
  26. $Logged = False;
  27. }
  28. ?>

check.php
  1. <?php
  2. include "cfg.php";
  3. if($Logged)
  4. header('Location: edit.php');
  5. $nick = $_POST['username'];
  6. $haslo = $_POST['password'];
  7. if($nick && $haslo) {
  8. $sel = mysql_num_rows(mysql_query("SELECT * FROM users WHERE nick='$nick' AND haslo='$haslo'"));
  9. if($sel==0) {
  10. echo 'Takie konto nie istnieje, lub podano złe hasło.';
  11. }
  12. else {
  13. $_SESSION['username'] = $nick;
  14. $_SESSION['password'] = $haslo;
  15. echo 'Zalogowano pomyślnie <a href="edit.php">Powróć do strony głównej</a>';
  16. echo $nick;
  17. }
  18. }
  19. else {
  20. echo 'Musisz wypełnić wszystkie pola';
  21. }
  22.  
  23. ?>

edit.php
  1. <?php
  2. include "cfg.php" ;
  3. if ($Logged) {
  4. echo '<br>
  5. Zalogowano jako: <font color="red"><?php echo $_SESSION["user"]; ?></f
  6. <a href="wyloguj.php">Wyloguj</a>
  7. ';
  8. }
  9. ?>

admin.php
  1. <html>
  2. <head>
  3. <link rel="stylesheet" type="text/css" href="admin.css" />
  4. <title>Panel Admina</title>
  5. <META HTTP-EQUIV="content-type" CONTENT="text/html; charset=iso-8859-2">
  6. </head>
  7. <div id="panel">
  8. <form action="check.php" method="post">
  9. <label for="username">Nazwa użytkownika:</label>
  10. <input type="text" id="username" name="username">
  11. <label for="password">Hasło:</label>
  12. <input type="password" id="password" name="password">
  13. <div id="lower">
  14. <input type="submit" value="Login">
  15. </div>
  16. </form>
  17. </div>

problem polega na tym,ze plik edit.php nie jest zabezpieczony sesją,sesje nie przechodzą pomiedzy stronami.
Wazniak96
w pliku edit.php w ogóle nie otwierasz pliku cfg.php to skąd ma być w tym pliku sesja i zmienna $Logged. Zaś w pliku check.php przekierowujesz przeglądarkę do pliku edit.php...
Gitrix
includowalem cfg i dalej nie dziala
Wazniak96
1. Podmień linijkę 22 w pliku cfg.php na
  1. if(mysql_num_rows($u) > 0)
i skasuj linijkę 20.
2. Ale co Ci dokładnie nie działa? Nie jesteśmy wróżkami. Z kuli nie wiemy co się dzieje. Daj var_dump($_SESSION); i pokaż co wyświetli.
Gitrix
array(2) { ["username"]=> string(6)
"Gitrix" ["password"]=> string(8)
"haslo" }

problem w tym,ze w pliku edit.php nie wyswietla sie ten komunikat
zalogowano jako.....
a jak skasuje if($logged) to w miejscu $_session user nic nie ma

po zmianie na username tez nic
Wazniak96
Jednak swój komp to swój.. Albo to ślepota smile.gif

W pliku cfg.php masz literówkę. $Loggged = True azamiast $Logged = True smile.gif
2. Sprawdź różnicę w moim a twoim kodzie smile.gif
  1. <?php
  2. include "cfg.php" ;
  3. if ($Logged) {
  4. echo '<br>
  5. Zalogowano jako: <font color="red">'.$_SESSION["username"].'</f
  6. <a href="wyloguj.php">Wyloguj</a>
  7. ';
  8. }
Gitrix
nie wierze biggrin.gif
jedna literka mnie tak załatwiła.
dzięki biggrin.gif
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.