Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php][mysql]Skrypt logowania na jednej stronie
prafgon
post 21.02.2010, 15:40:07
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 27.01.2010

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


Witam. Ostatnio postanowiłem stworzyć system logowania na mojej stronie. Po przeczytaniu paru poradników oraz wsparciu ze strony manuala stworzyłem prosty skrypcik. Skrypt działa i ludzie normalnie mogą się logować, lecz problem w tym, że okienka logowania znajdują się na jednej stronie, a po zalogowaniu uzytkownik przechodzi na inna strone, gdzie widzi wiadomosc 'Witaj nick' itp. Chcialbym przerobic kod tak by wszystkie czynnosci odbywaly sie w jednym pliku index.php. Probowalem wlasnorecznie przerobic skrypt, lecz niestety nic z tego nie wychodzi.

Oto bardzo uproszczona wersja przerobionego kodu, z ktorego usunalem formularz logowania, ktory normalnie znajduje sie zamiast tekstu 'zaloguj sie':
  1. $login = $_POST['login'];
  2. $password = $_POST['pswd'];
  3.  
  4.  
  5. $haslo = "1";
  6. $nick = "2";
  7.  
  8. if ( $password == $haslo && $login == $nick) {
  9. $_SESSION['phplogin'] = true;
  10. echo 'witaj';
  11. }
  12. else if (!isset($_SESSION['phplogin'])
  13. || $_SESSION['phplogin'] !== true) {
  14. echo'zaloguj sie';
  15. }
  16.  
  17. else {
  18. echo 'nic';
  19. }


Problem w tym, ze nie wywala tekstu 'witaj' ani 'zaloguj sie'. Zamiast tego otrzymuje tekst 'nic'.

Mam nadzieje, ze opisalem swoj problem wystarczajaco jasno.

Pozdrawiam,
Prafgon

Ten post edytował prafgon 21.02.2010, 16:22:55
Go to the top of the page
+Quote Post
mhw
post 21.02.2010, 19:30:48
Post #2





Grupa: Zarejestrowani
Postów: 43
Pomógł: 10
Dołączył: 3.08.2009

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


Hm, może pokaż ten formularz, bo ten kod, który podałeś u mnie działa.


--------------------
"the quieter you become, the more you are able to hear"
Go to the top of the page
+Quote Post
prafgon
post 21.02.2010, 20:08:51
Post #3





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 27.01.2010

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


Witam. Okazało się, że nie chciał się u mnie odpalić, ponieważ sesja była już zapamiętana z wcześniejszych wizyt, a zapomniałem się wylogować dlatego ciągle pokazywało mi, że jestem zalogowany (nawet nie wiecie jak mi wstyd..).

Poszperałem sobie w tym czasie na internecie i przerobiłem swój kod na takie coś:
  1. <?php
  2. $login = $_POST['login'];
  3. $password = $_POST['pswd'];
  4.  
  5.  
  6. include 'config.php';
  7.  
  8.  
  9. $zapytanie = "SELECT `id`,`nick`,`haslo`,`email` FROM `e_mem` WHERE nick='$login'";
  10. $idzapytania = mysql_query($zapytanie);
  11.  
  12.  
  13.  
  14. while ($row = mysql_fetch_row($idzapytania))
  15. {
  16. if ( $password == $row[2] && $login == $row[1]) {
  17. $_SESSION['logz'] = true;
  18.  
  19. }
  20. }
  21.  
  22.  
  23.  
  24. if (isset($_SESSION['logz']) AND !empty($_SESSION['logz']))
  25. {
  26.  
  27. include 'logged.php';
  28.  
  29. } else {
  30. include 'unlogged.php';
  31.  
  32. }
  33.  
  34. ?>
  35.  


Kod działa bez zarzutu. Jedynym problem, nad którym teraz klęczę i się męczę to wykorzystanie nicku/loginu użytkownika wewnątrz logged.php. Próbowałem oplec część "if (isset.." pętlą while żeby przypisać $row[1] jako login, lecz po odpalenia takiego kodu strona jest pusta, nic nie jest wyświetlone.

Pozdrawiam,
Prafgon

Ten post edytował prafgon 21.02.2010, 20:12:59
Go to the top of the page
+Quote Post
DiH
post 21.02.2010, 23:21:10
Post #4





Grupa: Zarejestrowani
Postów: 251
Pomógł: 34
Dołączył: 7.01.2010

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


A dlaczego nie stworzysz zmiennej:
Kod
$_SESSION['user'] = $_POST['login'];
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: 16.06.2025 - 19:22