Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] Problem z pobieraniem nicku z MySQL
o2w5n778
post 4.08.2011, 21:07:08
Post #1





Grupa: Zarejestrowani
Postów: 235
Pomógł: 0
Dołączył: 10.12.2009

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


Witam!
Mam pewne pytanie. Właśnie napisałem sobie z palca bardzo prosty system logowania jako przykład dotyczący mojego pytania.
  1. <?php
  2. $nick = $_POST['nick'];
  3.  
  4. $query(mysql_query("SELECT * FROM users WHERE nick='$nick'"));
  5. $show = (mysql_fetch_array($query));
  6.  
  7. if(mysql_num_rows($query) == 1){
  8. $_SESSION['zalogowany'] = 1;
  9. }
  10.  
  11. if(!isset($_SESSION['zalogowany'])){
  12. ?>
  13.  
  14. <form method="post" action="">
  15. Haslo: <input type="text" name="nick">
  16. <input type="submit" value="zaloguj">
  17. </form>
  18. </form>
  19.  
  20. <?php
  21.  
  22. }
  23.  
  24. if(isset($_SESSION['zalogowany'])){
  25. echo('witaj: '.$show['nick']);
  26. }
  27.  
  28. ?>


Gdy się zaloguję wyświetla się "Witaj: Nick", ale czemu gdy np. odświeżę stronę nie wyświetla już nicku tylko "Witaj: ".
Nick pobieram z mysql
  1. $show['nick']


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
sadistic_son
post 4.08.2011, 21:11:19
Post #2





Grupa: Zarejestrowani
Postów: 1 495
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

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


Bo po przeładowaniu strony zmienna $show['nick'] już nie istnieje. A nie istnieje dlatego, że nie wykona się zapytanie. A nie wykona się zapytanie bo nie istnieje już zmienna $_POST['nick'].
Jak chcesz wyswietlac nick zalogowanego to zapisuj go do sesji (tutaj w linijce 9 - nick zamiast jedynki) i wyswietlaj go z sesji.

Ten post edytował sadistic_son 4.08.2011, 21:13:27


--------------------
Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami...

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc!
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Go to the top of the page
+Quote Post
o2w5n778
post 4.08.2011, 21:25:53
Post #3





Grupa: Zarejestrowani
Postów: 235
Pomógł: 0
Dołączył: 10.12.2009

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


Teraz po przeładowaniu się zupełnie wylogowywuje


--------------------
Go to the top of the page
+Quote Post
sadistic_son
post 5.08.2011, 06:34:22
Post #4





Grupa: Zarejestrowani
Postów: 1 495
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

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


BZdura, nie ma prawa się wylogowywać skoro nawe nie masz nigdzie session_destroy czy unset.
Zrób tak:
  1. //linijki od 3 do 10
  2. if(isset($_POST['zaloguj'])){
  3. $nick = $_POST['nick'];
  4.  
  5. $query=mysql_query("SELECT * FROM users WHERE nick='$nick' LIMIT 1");
  6. $show = mysql_fetch_assoc($query);
  7.  
  8. if(mysql_num_rows($query) > 0){
  9. $_SESSION['zalogowany'] = $show['nick'];
  10. }
  11. }
  12. //linijka 17
  13. echo '<input type="submit" name="zaloguj" value="zaloguj">';
  14. //linijka 26
  15. echo 'witaj: '.$_SESSION['zalogowany'];
  16. //linijke 19 wywalp
Nie ma opcji aby to nie działało.


--------------------
Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami...

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc!
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
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: 19.07.2025 - 09:46