Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Logowanie
Compiler
post
Post #1





Grupa: Zarejestrowani
Postów: 36
Pomógł: 2
Dołączył: 11.11.2006

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


Witam,
Mam kod w index.php:
  1.  
  2. if (isset($_POST['logout']) && (int)$_POST['logout'] == 1)
  3. {
  4. //unset($_SESSION['user']);
  5. }
  6. if ( isset( $_SESSION['user'] ))
  7. { ?>
  8. zawartosc strony dostepna po zalogowaniu
  9. <?
  10. }
  11. ?>

oraz
  1. <?php
  2. <form method="post" action="index.php">
  3. <input type="hidden" name="logout" value="1" class=input>
  4. <input class="input" type="submit" name="submit" value="Wyloguj">
  5. </form>
  6.  
  7. <form method="post" action="index.php">
  8. <input type="hidden" name="logout" value="0" class=input>
  9. Login: <input type="text" name="login" size="15" class="input"> <br>
  10. Hasło: <input type="password" name="pass" size="15" class="input">  <br>
  11. <input class="input" type="submit" name="submit" value="Zaloguj">
  12. </form>
  13. ?>



Logowanie jest OK tylko nie działa wylogowywanie sad.gif
Gdy się zaloguje, nie wyświetla się zawartosc strony dostepna po zalogowaniu a gdy zakomentuje linijki:
  1. <?php
  2. ?>

to zawsze jestem zalogowany (wtedy oczywiście wyświetla się zawartosc strony dostepna po zalogowaniu ) sad.gif

Jak to poprawić?
Powód edycji: Dodałem tag do tematu (ociu)
Go to the top of the page
+Quote Post
marcio
post
Post #2





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


Cytat
<form method="post" action="index.php">
<input type="hidden" name="logout" value="1" class=input>
<input class="input" type="submit" name="submit" value="Wyloguj">
</form>

Zamien na:
Cytat
<form method="post" action="index.php">
<input class="input" type="submit" name="logout" value="Wyloguj">
</form>

I potem:
  1. <?php
  2. if(isset($_POST['logout'])) {
  3.  
  4. unset($_SESSION['user']);
  5. header("Location:".$_SERVER['PHP_SELF']);
  6.  
  7. }
  8. ?>

Na poczatku pliku daj ob_start() w razie czego i powinno dzialac cos w ten desen.


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post
Compiler
post
Post #3





Grupa: Zarejestrowani
Postów: 36
Pomógł: 2
Dołączył: 11.11.2006

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


Niestety nie działa.
Go to the top of the page
+Quote Post
vokiel
post
Post #4





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

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


  1. <?php
  2. if (!empty($_POST['logout'])){
  3.    // wylogowanie
  4.    unset($_SESSION); // czasem i tak trzeba, ale raczej wystarczy poniższe
  5.    header("location: http://".$_SERVER['HTTP_HOST']."");
  6.    exit;
  7. }else if (isset($_SESSION['user']) && !empty($_SESSION['user'])){
  8.    // po zalogowaniu pokauzjesz co chcesz
  9. }
  10. ?>


--------------------
Go to the top of the page
+Quote Post
Compiler
post
Post #5





Grupa: Zarejestrowani
Postów: 36
Pomógł: 2
Dołączył: 11.11.2006

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


Także nie działa sad.gif
Ten sam efekt jakbym był ciągle wylogowany.
Go to the top of the page
+Quote Post
erix
post
Post #6





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




A nie możesz wylogowania przekazywać przez GET...?

I IMHO nie ma sensu dawać session_destroy" title="Zobacz w manualu PHP" target="_manual, lepiej:
  1. <?php
  2. $_SESSION = array();
  3. ?>



Cytat
Niestety nie działa.

A jakieś konkrety?


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Compiler
post
Post #7





Grupa: Zarejestrowani
Postów: 36
Pomógł: 2
Dołączył: 11.11.2006

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


Konkrety są wyżej i chyba innych nie mam smile.gif
Ogólnie to trochę zamotany kod smile.gif
Logowanie mam w oddzielnym pliku i wstawiony do index.php jako include
Oto kod logowania:
  1. if ( isset( $_POST['login'] ))
  2. {
  3. $pass = $_POST['pass'];
  4. $pass2 = sha1(md5($pass));
  5.  
  6. $query = mysql_query("SELECT * FROM user WHERE name='{$_POST['login']}' AND pass='{$pass2}'");
  7.  
  8. $result = mysql_fetch_array($query);
  9. if (mysql_num_rows($query) !== 0) {
  10. $_SESSION['user'] = $_POST['login'];
  11. $login= $_POST['login']  ;
  12. echo "$login ";
  13. ?>
  14. <br>
  15. zalogowany  <br>:)<br><br><br><br><br>
  16.  
  17. <form method="post" action="index.php">
  18. <input type="hidden" name="refresh" value="1" class=input>
  19. <input type="hidden" name="logout" value="1" class=input>
  20. <input class="input" type="submit" name="submit" value="Wyloguj">
  21. </form>
  22. <?
  23. //exit();
  24. }
  25. else {
  26.  
  27. ?>
  28. <form method="post" action="index.php">
  29. <input type="hidden" name="logout" value="0" class=input>
  30. Login: <input type="text" name="login" size="15" class="input"> <br>
  31. Hasło: <input type="password" name="pass" size="15" class="input">  <br>
  32. <input class="input" type="submit" name="submit" value="Zaloguj">
  33. </form>
  34. <?
  35.  
  36. echo 'Błędny login lub hasło!';
  37.  
  38. }
  39.  
  40. }
  41. else{
  42.  
  43. ?>
  44. <form method="post" action="index.php">
  45. <input type="hidden" name="logout" value="0" class=input>
  46. Login: <input type="text" name="login" size="15" class="input"> <br>
  47. Hasło: <input type="password" name="pass" size="15" class="input">  <br>
  48. <input class="input" type="submit" name="submit" value="Zaloguj">
  49. </form>
  50.  
  51. <? } ?>


Reszta jest w powyższych postach więc nie będę dublował smile.gif
Po zalogowaniu nie wchodzi w ten if :
  1. <?php
  2. if (isset($_SESSION['user']) && !empty($_SESSION['user']))
  3. ?>

Czyli wnioskując, nie jestem zalogowany, ale w powyższym kodzie robię $_SESSION['user'] = $_POST['login']; więc jestem zalogowany. Tak?
Go to the top of the page
+Quote Post
nieraczek
post
Post #8





Grupa: Zarejestrowani
Postów: 405
Pomógł: 6
Dołączył: 12.01.2007

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


A robisz: session_start() questionmark.gif
Go to the top of the page
+Quote Post
Compiler
post
Post #9





Grupa: Zarejestrowani
Postów: 36
Pomógł: 2
Dołączył: 11.11.2006

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


Tak robię, w pliku index.php. W drugim nie muszę, bo jest dołączony do index jako include (chyba), na wszelki wypadek dodałem i jest jak było czyli źle smile.gif
Go to the top of the page
+Quote Post
ArekJ
post
Post #10





Grupa: Zarejestrowani
Postów: 266
Pomógł: 9
Dołączył: 21.05.2008
Skąd: Łomianki

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


  1. <?php
  2. if (isset($_SESSION['user']) && !empty($_SESSION['user']))
  3. ?>

A daj:
  1. <?php
  2. if (isset($_SESSION['user']) && $_SESSION['user'] != '')
  3. ?>


--------------------

"Do bramy, bo pada deszcz
Gdy zaćpiesz przejdzie dreszcz
I wróci, wróci tęcza barw
I pęknie twój wrogi świat" R. Riedel
Go to the top of the page
+Quote Post
erix
post
Post #11





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Konkrety są wyżej i chyba innych nie mam

Pytałem o pierwszego posta z nie działa, a nie następnego. winksmiley.jpg Nie napisałeś, że się dzieje to samo.

Co do tematu:
  1. <?php
  2. if ( isset( $_POST['login'] ))
  3. {
  4. ?>

Z tego, co masz w powyższym warunku wynika, że w celu obejrzenia chronionej strony musisz się każdorazowo logować:

  1. <?php
  2. $query = mysql_query("SELECT * FROM user WHERE name='{$_POST['login']}' AND pass='{$pass2}'");
  3.  
  4. $result = mysql_fetch_array($query);
  5. if (mysql_num_rows($query) !== 0) {
  6. $_SESSION['user'] = $_POST['login'];
  7. $login= $_POST['login']  ;
  8. echo "$login ";
  9. ?>

W tym listingu ustawiasz zmienną sesyjną, ale do sprawdzania jej już nie wykorzystujesz. No chyba, że problem tkwi w innym listingu.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Compiler
post
Post #12





Grupa: Zarejestrowani
Postów: 36
Pomógł: 2
Dołączył: 11.11.2006

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


Sam już nie wiem jak to powinno być smile.gif
Poszukam innych przykładów tongue.gif może któryś zadziała biggrin.gif
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 Aktualny czas: 21.08.2025 - 04:38