Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Skrypt logowania - awaria
Forum PHP.pl > Forum > PHP
Gitrix
cfg.php
  1. <?php
  2. define('DB_HOST','mysql.cba.pl'); // 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','s...'); // 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_general_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(mysql_num_rows($r) > 0)
  21. {
  22. $Logged = true;
  23. }
  24. else
  25. {
  26. $Logged = false;
  27. }
  28. ?>

check.php
  1. <?php
  2. include "cfg.php";
  3. if($Logged)
  4.  
  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="index.php">Powróć do strony głównej</a>';
  16. echo $nick;
  17. }
  18. }
  19. else {
  20. echo 'Musisz wypełnić wszystkie pola';
  21. }
  22.  
  23. ?>

index.php
  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. }
  9. else
  10. {
  11. echo '<img src="img/ele.png">
  12. <div class="panelo">
  13. Username: '.$_SESSION["username"].'<br>
  14. Rank:<br>
  15. Premissions:<br>
  16. <a href="#">Logout</a></a>
  17. </div>
  18. </div>';
  19. }
  20. echo "$Logged";
  21. ?>


W index.php troche namieszałem, ale zauważyłem, że jestem zalogowany, a pomimo tego zwraca mi else, w którym ewidentnie wyświetla nick. Zmienna logged jest pusta, nic nie wyświetla. Sprawdzałem na var dumb - wszystko jest okej. O co może chodzić?
Pyton_000
ale o co chodzi?
Gitrix
Widzisz index.php?

Pokazuje mi, że jestem niezalogowany, czyli zwraca else.
com
zrób to na sesji wink.gif
Gitrix
Pomoże ktoś w końcu, czy będziecie sobie robić jaja z tematu?
rad11
Przecież dostałeś odpowiedź zrób to na sesji czyli dodaj do sesji klucz logged => wartosc i według tej wartości sprawdzaj zalogowanie w index
Tomplus
1. var_dumP
2. po co dwa razy wpisujesz session_start()? Albo umieszczasz w index.php lub check.php albo tylko zostawiasz w cfg.php
3. jeżeli $Logged oznacza zalogowany, to dlaczego po else masz znowu jakąś treść jakby użytkownik nadal był zalogowny.
4. hasła nie przesyła się w sesji, ani już nie mówiąc że skrypt podatny jest na sql injection
5. jak wylogowujesz się to to powinieneś wyczyści sesje, a na pewno sejse danych uzytkownika i hasło.
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.