Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Logowanie..., Again
MateuszS
post 2.01.2009, 15:12:55
Post #1





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

Ostrzeżenie: (0%)
-----


Mam taki skrypt logowania jak poniżej, niestety cokolwiek nie wpisze w formularzu logowania przeniesie mnie na stronę zastrzeżoną tylko dla userów zalogowanych (panel.php - puki co pusta) Formularz:
  1. Sesje <h1 class="h1">Logowanie</h1> Nazwa Użytkownika:
  2.  
  3. Hasło:
  4.  
  5.  
  6.  
  7. Wpisz nazwę użytkownika oraz hasło aby się zalogować.
Login.php
  1.  
  2. To forum zwariowało.... lol nie da sie nawet zmodyfikować postu.... bo sie caly topic wali...
  3.  
  4. Mam taki skrypt logowania jak poniżej, niestety cokolwiek nie wpisze w formularzu logowania przeniesie mnie na stronę zastrzeżoną tylko dla userów zalogowanych (panel.php - puki co pusta)
  5.  
  6. Formularz:
    1. <html></div></li><li class="li2"><div class="de2"><head></div></li><li class="li1"><div class="de1"> <title>Sesje</title></div></li><li class="li2"><div class="de2"> <meta http-equiv="Content-type" content="text/html; charset=UTF-8" /></div></li><li class="li1"><div class="de1"> <link rel="stylesheet" type="text/css" href="style/style.css" /></div></li><li class="li2"><div class="de2"></head></div></li><li class="li1"><div class="de1"> </div></li><li class="li2"><div class="de2"><body></div></li><li class="li1"><div class="de1"><form action="login.php" method="POST"></div></li><li class="li2"><div class="de2"> </div></li><li class="li1"><div class="de1"><h1 class="h1">Logowanie</h1></div></li><li class="li2"><div class="de2"> </div></li><li class="li1"><div class="de1"><div class="panel"></div></li><li class="li2"><div class="de2"><p class="p1"> Nazwa Użytkownika: </p></div></li><li class="li1"><div class="de1"> <input type="text" size="20" name="login" class="text" maxlength="12" /></div></li><li class="li2"><div class="de2"><p class="p1"> Hasło: </p></div></li><li class="li1"><div class="de1"> <input type="password" size="20" name="haslo" class="text2" maxlength="12" /><br /><br /></div></li><li class="li2"><div class="de2"> <input type="submit" value="Zaloguj" class="submit" /></div></li><li class="li1"><div class="de1"></div></div></li><li class="li2"><div class="de2"> </div></li><li class="li1"><div class="de1"><div class="panel2"></div></li><li class="li2"><div class="de2"><p class="p2"></div></li><li class="li1"><div class="de1">Wpisz nazwę użytkownika oraz hasło aby się zalogować.</div></li><li class="li2"><div class="de2"></p></div></li><li class="li1"><div class="de1"></div></div></li><li class="li2"><div class="de2"> </div></li><li class="li1"><div class="de1"> </div></li><li class="li2"><div class="de2"></form> </div></li><li class="li1"><div class="de1"></body></div></li><li class="li2"><div class="de2"></html>
  7.  
  8. Login.php
  9. [php]
  10. <?php
  11.  
  12. include("baza.php");
  13.  
  14. $_SESSION['login'] = $_POST['login'] = $login;
  15. $_SESSION['haslo'] = $_POST['haslo'] = $haslo;
  16.  
  17. $_SESSION['user'] = 1;
  18.  
  19. echo '<link rel="stylesheet" type="text/css" href="style/style.css" />';
  20. echo '<meta http-equiv="Content-type" content="text/html; charset=UTF-8" />';
  21.  
  22.    $zapytanie = mysql_query("SELECT login,haslo
  23.                              FROM `tabela5`
  24.                              WHERE 'login'=('$login') AND
  25.                                    'haslo'=('$haslo')") or (mysql_error('Blad'));
  26.  
  27. if(isset($_SESSION['login']) or isset($_SESSION['haslo']))
  28. {
  29.    echo '<center><font size="4" face="arial">';
  30.    echo 'Błąd podczas logowania spróbuj ponownie<br />';
  31.    echo '<a href="index.php">Wróć</a>';
  32. }
  33. elseif($zapytanie)
  34. {
  35.    header("Location: panel.php");
  36. }
  37.  
  38. ob_end_flush();    
  39.                                    
  40. ?>


Napisalem ten skrypt bo chcę się nauczyć posługiwać sesjami, których za bardzo jeszcze nie rozumiem. Gdy $zapytanie = mysql_query.... dam pod elseif wtedy pokazuje mi sie pusty ekran. Jezeli taki topic byl to sory ale nie znalazlem.

Ten post edytował MateuszScirka 2.01.2009, 15:12:14


--------------------
O! Zimniok :P
Go to the top of the page
+Quote Post
Grzyw
post 2.01.2009, 15:13:44
Post #2





Grupa: Zarejestrowani
Postów: 561
Pomógł: 75
Dołączył: 19.08.2004
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


  1. <?php
  2. $_SESSION['login'] = $_POST['login'] = $login;
  3. $_SESSION['haslo'] = $_POST['haslo'] = $haslo;
  4. ?>


Hmmm... Wg mnie tutaj przypisujesz do tablicy sesyjnej wartości zmiennych z tablicy $_POST, do której przypisujesz puste zmienne $login i $hasło.
Wykonywanie przypisania idzie z prawej strony, czyli u Ciebie:
1) Najpierw zmiennej $_POST['login'] przypisujesz pustą $login,
2) Do zmiennej sesyjnej przypisujesz pustą (patrz punkt 1.) wartość zmiennej $_POST['login']


--------------------
Idąc po czyichś śladach, nie zajdziesz ani kroku dalej...
Go to the top of the page
+Quote Post
MateuszS
post 2.01.2009, 15:17:35
Post #3





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

Ostrzeżenie: (0%)
-----


Zrobiłem tak i teraz co nie wpisze to blad podczas logowania:

  1. <?php
  2. $_SESSION['login'] = $_POST['login'];
  3. $_SESSION['haslo'] = $_POST['haslo'];
  4. $login = $_POST['login'];
  5. $haslo = $_POST['haslo'];
  6. ?>


--------------------
O! Zimniok :P
Go to the top of the page
+Quote Post
Grzyw
post 2.01.2009, 15:24:45
Post #4





Grupa: Zarejestrowani
Postów: 561
Pomógł: 75
Dołączył: 19.08.2004
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


  1. <?php
  2. if(isset($_SESSION['login']) or isset($_SESSION['haslo']))
  3. ?>


Ale ta linijka mówi "Jeżeli została zainicjowana zmienna login w tablicy sesji lub została zainicjowana zmienna haslo w tablicy sesji to...."
Więc warunek ten jest spełniony i wywala Ci tekst o błędzie logowania.

Ten post edytował Grzyw 2.01.2009, 15:25:32


--------------------
Idąc po czyichś śladach, nie zajdziesz ani kroku dalej...
Go to the top of the page
+Quote Post
MateuszS
post 2.01.2009, 15:38:00
Post #5





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

Ostrzeżenie: (0%)
-----


Dałem tak ale dalej nie dziala:

  1. <?php
  2.  
  3. include("baza.php");
  4.  
  5. $_SESSION['login'] = $_POST['login'];
  6. $_SESSION['haslo'] = $_POST['haslo'];
  7. $login = $_POST['login'];
  8. $haslo = $_POST['haslo'];
  9.  
  10. $_SESSION['user'] = 1;
  11.  
  12. echo '<link rel="stylesheet" type="text/css" href="style/style.css" />';
  13. echo '<meta http-equiv="Content-type" content="text/html; charset=UTF-8" />';
  14.  
  15. if(empty($login) or empty($haslo))
  16. {
  17.    echo '<center><font size="4" face="arial">';
  18.    echo 'Błąd podczas logowania spróbuj ponownie<br />';
  19.    echo '<a href="index.php">Wróć</a>';
  20. }
  21. elseif(!$zapytanie)
  22. {
  23.    echo '<center><font size="4" face="arial">';
  24.    echo 'Błąd podczas logowania spróbuj ponownie<br />';
  25.    echo '<a href="index.php">Wróć</a>';    
  26. }
  27. else
  28. {
  29.    $zapytanie = mysql_query("SELECT login,haslo
  30.                              FROM `tabela5`
  31.                              WHERE 'login'=('$login') AND
  32.                                    'haslo'=('$haslo')") or (mysql_error('Blad'));
  33.    
  34.    header("Location: panel.php");
  35.                                    
  36. }    
  37.  
  38. ob_end_flush();    
  39.                                    
  40. ?>


--------------------
O! Zimniok :P
Go to the top of the page
+Quote Post
Grzyw
post 2.01.2009, 15:45:13
Post #6





Grupa: Zarejestrowani
Postów: 561
Pomógł: 75
Dołączył: 19.08.2004
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


W linijce 25. sprawdza, czy $zapytanie jest puste. No ale ta zmienna jest pusta, bo przecież definiujesz ją niżej dopiero.

Ten post edytował Grzyw 2.01.2009, 15:45:48


--------------------
Idąc po czyichś śladach, nie zajdziesz ani kroku dalej...
Go to the top of the page
+Quote Post
MateuszS
post 2.01.2009, 15:56:22
Post #7





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

Ostrzeżenie: (0%)
-----


Zawsze mi sie wydawalo ze !$zmienna oznacza cos przeciwnego do $zmienna, jakas niezgodnosc, a nie pustość. No ale spróbowałem jeszcze inaczej:

  1. <?php
  2.  
  3. include("baza.php");
  4.  
  5. $_SESSION['login'] = $_POST['login'];
  6. $_SESSION['haslo'] = $_POST['haslo'];
  7. $login = $_POST['login'];
  8. $haslo = $_POST['haslo'];
  9.  
  10. $_SESSION['user'] = 1;
  11.  
  12. echo '<link rel="stylesheet" type="text/css" href="style/style.css" />';
  13. echo '<meta http-equiv="Content-type" content="text/html; charset=UTF-8" />';
  14.  
  15. if($zapytanie = mysql_query("SELECT login,haslo
  16.                             FROM `tabela5`
  17.                             WHERE 'login'=('$login') AND
  18.                                    'haslo'=('$haslo')")
  19.                                     or (mysql_error('Blad')))
  20. {
  21.    header("Location: panel.php");
  22. }
  23.  
  24. else
  25. {
  26.    echo '<center><font size="4" face="arial">';
  27.    echo 'Błąd podczas logowania spróbuj ponownie<br />';
  28.    echo '<a href="index.php">Wróć</a>';    
  29. }
  30.  
  31. ob_end_flush();    
  32.                                    
  33. ?>


Jednak co nie wpisze przejde znowu do zastrzezonej strefy

a gdy mam

  1. <?php
  2. if($zapytanie)
  3. {
  4.    $zapytanie = mysql_query("SELECT login,haslo
  5.                             FROM `tabela5`
  6.                             WHERE 'login'=('$login') AND
  7.                                    'haslo'=('$haslo')")
  8.                                     or (mysql_error('Blad'));
  9.    header("Location: panel.php");
  10. }
  11. ?>


wywala mi blad podczas logowania zawsze. Moglby ktos zmodyfikowac kod? Ta metoda prob i bledow nie pomaga jednak. Zasob moich pomyslow sie wyczerpal


--------------------
O! Zimniok :P
Go to the top of the page
+Quote Post
Grzyw
post 2.01.2009, 15:59:29
Post #8





Grupa: Zarejestrowani
Postów: 561
Pomógł: 75
Dołączył: 19.08.2004
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


  1. <?php
  2.  
  3. include("baza.php");
  4.  
  5. $_SESSION['login'] = $_POST['login'];
  6. $_SESSION['haslo'] = $_POST['haslo'];
  7. $login = $_POST['login'];
  8. $haslo = $_POST['haslo'];
  9.  
  10. $_SESSION['user'] = 1;
  11.  
  12. $sql = "SELECT login,haslo
  13.                            FROM `tabela5`
  14.                            WHERE 'login'=('$login') AND
  15.                                   'haslo'=('$haslo')";
  16. $wynik= mysql_query($sql)or (mysql_error('Blad')))
  17. if (mysql_num_rows($wynik)==1)
  18. {
  19.   header("Location: panel.php");
  20. }
  21.  
  22. else
  23. {
  24.   echo '<link rel="stylesheet" type="text/css" href="style/style.css" />';
  25.   echo '<meta http-equiv="Content-type" content="text/html; charset=UTF-8" />';
  26.   echo '<center><font size="4" face="arial">';
  27.   echo 'Błąd podczas logowania spróbuj ponownie<br />';
  28.   echo '<a href="index.php">Wróć</a>';    
  29. }
  30.  
  31. ?>


Powodzenia, ja wychodzę z domu:)


--------------------
Idąc po czyichś śladach, nie zajdziesz ani kroku dalej...
Go to the top of the page
+Quote Post
MateuszS
post 2.01.2009, 16:10:46
Post #9





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

Ostrzeżenie: (0%)
-----


Nie żebym był nie wdzięczny ale to nie działa sad.gif Nadal pokazuje cały czas błąd podczas logowania...

A jak to jest zrobione np na forach, że gdy bierzesz wstecz to Cie nie wylogowuje, zeby zobaczyc panel logowania musisz sie wylogowac.


--------------------
O! Zimniok :P
Go to the top of the page
+Quote Post
ikssde
post 2.01.2009, 18:56:34
Post #10





Grupa: Zarejestrowani
Postów: 217
Pomógł: 40
Dołączył: 20.08.2008

Ostrzeżenie: (0%)
-----


Nie wiem co miałeś osiągnąć tym kodem, według mnie ten będzie poprawny :

Kod
<?php
session_start();
session_register('user');
ob_start();

include("baza.php");

if(!empty($_SESSION['user']))
{
     header("Location: panel.php");
}
else if(!empty($_POST['login']) and !empty($_POST['haslo']))
{
     $login = trim(addslashes($_POST['login']));        // filtrujemy
     $haslo = trim(addslashes($_POST['haslo']));        // filtrujemy
    
     $zapytanie = "SELECT * FROM `user` WHERE login = '$login' and haslo = '$haslo';";    // jesli istnieje w bazie zwroci 1
    
     if(mysql_query($zapytanie))    
     {
         $_SESSION['login'] = $login;
         $_SESSION['haslo'] = $haslo;
         $_SESSION['user'] = 1;
        
         header("Location: panel.php");
     }
}
else
{
   echo '<link rel="stylesheet" type="text/css" href="style/style.css" />';
   echo '<meta http-equiv="Content-type" content="text/html; charset=UTF-8" />';
   echo '<center><font size="4" face="arial">';
   echo 'Błąd podczas logowania spróbuj ponownie
';
   echo '<a href="index.php">Wróć</a>';    
}

ob_end_flush();
?>


Żeby się wylogować musisz $_SESSION['user'] przypisać 0.

Ten post edytował ikssde 2.01.2009, 18:58:15
Go to the top of the page
+Quote Post
MateuszS
post 2.01.2009, 22:30:48
Post #11





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

Ostrzeżenie: (0%)
-----


Trochę się pomęczyłem i zrobiłem tak:

  1. <?php
  2.  
  3. include("baza.php");
  4.  
  5. $_SESSION['login'] = $_POST['login'];
  6. $_SESSION['haslo'] = $_POST['haslo'];
  7. $login = $_POST['login'];
  8. $haslo = $_POST['haslo'];
  9.  
  10. $_SESSION['user'] = 1;
  11.  
  12. $sql = "SELECT login,haslo
  13.        FROM `tabela5`
  14.        WHERE (login='$login') AND
  15.              (haslo='$haslo')";
  16. $wynik = mysql_query($sql)or (mysql_error('Blad'));
  17.  
  18. if (mysql_num_rows($wynik)==1)
  19. {
  20.  header("Location: panel.php");
  21. }
  22.  
  23. else
  24. {
  25.  echo '<link rel="stylesheet" type="text/css" href="style/style.css" />';
  26.  echo '<meta http-equiv="Content-type" content="text/html; charset=UTF-8" />';
  27.  echo '<center><font size="4" face="arial">';
  28.  echo 'Błąd podczas logowania spróbuj ponownie<br />';
  29.  echo '<a href="index.php">Wróć</a>';    
  30. }
  31.  
  32. ?>


i wylogowanie
  1. <?php
  2.  
  3. echo '<meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
  4.      <link rel="stylesheet" type="text/css" href="style/style.css" />';
  5.  
  6.  
  7. header("Location: index.php");
  8.  
  9. ?>


Dzieki Wam za pomoc smile.gif


--------------------
O! Zimniok :P
Go to the top of the page
+Quote Post
Grzyw
post 2.01.2009, 22:46:03
Post #12





Grupa: Zarejestrowani
Postów: 561
Pomógł: 75
Dołączył: 19.08.2004
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


O, fajnie, że Ci się udało.
Sorry za niedokładność tego mojego kodu, pisałem go na szybko wychodząc z chałupy.
Powodzenia.


--------------------
Idąc po czyichś śladach, nie zajdziesz ani kroku dalej...
Go to the top of the page
+Quote Post
MateuszS
post 2.01.2009, 23:07:42
Post #13





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

Ostrzeżenie: (0%)
-----


Dzięki za pomoc ;] Potem podam link do wyników mojej pracy ;]


--------------------
O! Zimniok :P
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 13:14