Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Problem z logowaniem ;(
Forum PHP.pl > Forum > Przedszkole
porywacz
Witam, napisałem skrypt logowania na stronę ale mi nie działa ;d Od razu gdy wejdę na stronę jest pokazany komunikat "Zostałeś zalogowany jako. ", który powinien być widoczny dopiero po zalogowaniu :/
Łapcie skrypcior:

To jest strona index.php (żebyście wiedzieli jak to mniej więcej wygląda)
  1. <?php session_start();
  2. ?>
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  4. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  5. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
  6. <head>
  7. <title>xCheats - Home</title>
  8. <meta http-equiv="Content-Type" content="text/html" charset=utf-8" />
  9. <link rel="Stylesheet" type="text/css" href="style.css"/>
  10. </head>
  11. <body>
  12. <?php
  13. include('header_include.php');
  14. ?>
  15.  
  16. <div id="center">
  17. <div id="center_left"></div>
  18. <div id="center_center">
  19. <p class="tresc">
  20. <?php //INCLUDOWANIE PODSTRON
  21. if(!isset($_GET['subtopic'])) {
  22. include('home_include.php');
  23. } elseif(isset($_GET['subtopic']) && $_GET['subtopic'] == 'kody') {
  24. include('sub_kody.php');
  25. } elseif(isset($_GET['subtopic']) && $_GET['subtopic'] == 'dodaj_kody') {
  26. include('sub_dodajkody.php');
  27. } elseif(isset($_GET['subtopic']) && $_GET['subtopic'] == 'szukaj_kody') {
  28. include('sub_szukajkody.php');
  29. } elseif(isset($_GET['subtopic']) && $_GET['subtopic'] == 'onas') {
  30. include('sub_onas.php');
  31. } elseif(isset($_GET['subtopic']) && $_GET['subtopic'] == 'kontakt') {
  32. include('sub_kontakt.php');
  33. } elseif(isset($_GET['subtopic']) && $_GET['subtopic'] == 'rejestracja') {
  34. include('rejestracja_include.php');
  35. } elseif(isset($_GET['subtopic']) && $_GET['subtopic'] == 'zarejestruj') {
  36. include('zarejestruj.php');
  37. //Actions
  38. } elseif(isset($_GET['action']) && $_GET['action'] == 'logout') {
  39. $_SESSION['zalogowany'] = false;
  40.  
  41. }
  42. ?>
  43. </p>
  44. </div>
  45.  
  46. <?php
  47. include('menu_right_include.php');
  48. include('footer_include.php');
  49. ?>
  50. </body>
  51. </html>
  52. <?php
  53. ?>


Teraz strona zaloguj.php, która teraz wgl mi nie działa ;d

  1. <?php
  2.  
  3. include('connect_mysql.php');
  4.  
  5. if(isset($_POST['login'])) {
  6.  
  7. $login = $_POST['login'];
  8. $haslo = $_POST['password'];
  9. $login = stripslashes($login);
  10. $haslo = stripslashes($haslo);
  11. $login = mysql_real_escape_string($login);
  12. $haslo = mysql_real_escape_string($haslo);
  13. $haslo = md5($haslo);
  14.  
  15. if(empty($login) or empty($haslo)) {
  16. echo('Logowanie nie powiodło się, musisz wypełić szystkie pola!');
  17. } else {
  18. //* *//
  19.  
  20. $sql = mysql_query("select count(*) from `uzytkownicy` where `login` = '$login' and 'haslo' = '$haslo'");
  21. $result = mysql_fetch_assoc($sql);
  22. if($result > 0){
  23. $_SESSION['zalogowany'] = true;
  24. header('Location: index.php');
  25. } else {
  26. echo('Zła nazwa użytkownika lub hasło.');
  27. }
  28.  
  29. }
  30. }
  31.  
  32. }
  33. ?>


I na koniec include_header.php, to tam skrypt sprawdza, czy sesja jest zdefiniowana.
  1. <div id="header_tlo">
  2. <div id="header">
  3. <div id="logowanie">
  4. <div id="logowanie_head"></div>
  5.  
  6. <?php
  7.  
  8. include('connect_mysql.php');
  9.  
  10. if ($_SESSION['zalogowany'] = true) {
  11. echo('<p>Witaj!<br/> Jesteś zalogowany jako'.$login.'.');
  12. echo('<a href="index.php?action=logout">Wyloguj</a></p>');
  13. } else {
  14. echo('
  15. <form method="post" action="zaloguj.php">
  16. <p>Login: <input type="text" name="login" size="14"/><br/>
  17. Hasło: <input type="password" name="password" size="14"/>
  18. <input type="submit" value="OK" name="nazwa"/></p>
  19. </form>
  20. ');
  21. }
  22. ?>
  23.  
  24. </div>
  25. </div>
  26. </div>
  27. <div id="separator"></div>
  28. <div id="menu_tlo"><div id="top_menu">
  29. <ul><li><a href="index.php"><br/>Strona główna</a></li>
  30. <li><a href="index.php?subtopic=kody"><br/>Kody do gier</a></li>
  31. <li><a href="index.php?subtopic=dodaj_kody"><br/>Dodaj kody</a></li>
  32. <li><a href="index.php?subtopic=szukaj_kody"><br/>Szukaj kodów</a></li>
  33. <li><a href="index.php?subtopic=onas"><br/>O nas</a></li>
  34. <li><a href="index.php?subtopic=kontakt"><br/>Kontakt</a></li>
  35. </ul>
  36. </div></div>


Proszę wszystkich o pomoc i podkreślam, że jestem początkującym programistą smile.gif
konrados
  1. if ($_SESSION['zalogowany'] = true)


To jest przypisanie, a nie porównanie, winno być:

  1. if ($_SESSION['zalogowany'] == true)

porywacz
Poprawiłem, niestety efektów brak :/
konrados
No ale Ty rozumiesz, że jak już się zalogowałeś, to pozostaniesz zalogowany?
Zrób tymczasowo $_SESSION['zalogowany'] = false (tzn. zrób raz a potem zakomentuj tę linijkę i teraz powiedz co się dzieje).
porywacz
No tak, rozumiem ale rzecz w tym, że ja się wgl nie logowałem... Od razu po uruchomieniu skryptu wyświetliła mi się treść dla zalogowanego ;d
Ale sprawdzę ;PP

EDIT:
No to punkt dla ciebie smile.gif Zrobiłem tak, jak napisałeś i już nie jestem cały czas "zalogowany" biggrin.gif Teraz pozostaje jeszcze kwestia zaloguj.php, która po włączeniu wywala błąd:
Błąd serwera
W witrynie wystąpił błąd podczas pobierania strony /zaloguj.php Może być ona wyłączona na potrzeby konserwacji lub nieprawidłowo skonfigurowana.


any ideas? biggrin.gif

2. EDIT:

Ok, już mi działa strona zaloguj.php (o 1 "}" za dużo haha.gif). Lecz nie mogę się zalogować wpisując poprawne dane biggrin.gif
Ktoś widzi jeszcze jakieś błędy? sad.gif
konrados
Cytat
Ok, już mi działa strona zaloguj.php (o 1 "}" za dużo

Jakie Ty masz ustawienia php, że przy takim błędzie wypluwa Ci jakieś dziwaczne "W witrynie wystąpił błąd podczas pobierania strony" ? Powinno powiedzieć coś, co bardziej da się wrzucić na ruszt.

Cytat
Lecz nie mogę się zalogować wpisując poprawne dane

To po 1: sprawdź w bazie, czy na pewno wpisujesz poprawne dane,
po 2: polub wypluwanie błędów, czyli zamiast np.:

  1. $sql = mysql_query("select count(*) from `uzytkownicy` where `login` = '$login' and 'haslo' = '$haslo'");

Robisz:
  1. $sql = mysql_query("select count(*) from `uzytkownicy` where `login` = '$login' and 'haslo' = '$haslo'") or die(mysql_error());


Tak w ogóle, to nie za bardzo analizowałem ten Twój kod, nie chce mi się, ale na pewno kłaniają się podstawy podstaw.
porywacz
Jestem początkującym programistą, mogą mi się zdarzyć błędy wink.gif


$sql = mysql_query("select count(*) from `uzytkownicy` where `login` = '$login' and 'haslo' = '$haslo'");

A czy ktoś zauważył, że przy 'haslo' dałem apostrofy ? haha.gifD
Oczywiście już poprawiłem ;>


EDIT:

Problem rozwiązany, temat do zamknięcia smile.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.