Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MYSQL]Logowanie, i przesłanie nicku przez zmienną w sesji, Błąd występuje po przeładowaniu strony..
mercs600
post
Post #1





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 14.11.2009

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


Witam, znalazłem gdzieś w necie skrypt logowania dokładnie chodzi tutaj o "http://webmade.org/porady/sesje-php-system-logowania.php". Mam pewien problem chciałbym w tej sesji logowania przesłać nick z formularza do kolejnej strony zapisałem to tak "$_SESSION['user']=$_POST[login];" czyli mam
  1. <?php
  2. /******************************************************
  3. * logowanie
  4. * sprawdzanie czy sesja jest aktywna
  5. ******************************************************/
  6. session_register("zalogowany");
  7.  
  8. if(empty($_SESSION["zalogowany"]))$_SESSION["zalogowany"]=0;
  9. $_SESSION['user']=$_POST[login];
  10. $nick= $_SESSION['user'];
  11.  
  12. itd.....


I wszystko jest ok tylko problem jest w tym, że po zalogowaniu dostajemy wiadomość, że się zalogowałeś poprawnie, a potem dopiero że przejdź na stronę główną.. (strona główna to nadal ten sam plik) kod tego dotyczący:
  1. <?php
  2. /* jezeli kliknieto wyloguj */
  3. if($_GET["wyloguj"]=="tak"){$_SESSION["zalogowany"]=0;echo "Zostałeś wylogowany z serwisu";}
  4. /* zalogowano poprawnie */
  5. if($_SESSION["zalogowany"]!=1){
  6.  
  7. if(!empty($_POST["login"]) && !empty($_POST["haslo"])){
  8. if(mysql_num_rows(mysql_query("select * from admin where user_login = '".htmlspecialchars($_POST["login"])."' AND user_haslo = '".htmlspecialchars($_POST["haslo"])."'"))){
  9. echo "Zalogowano poprawnie. <a href='index.php'>Przejdź na stronę główną</a>";
  10. echo $nick;
  11. //tutaj sobie chciałem sprawdzić czy w tej części wyświetli się nick z sesji.. wyświetla
  12. $_SESSION["zalogowany"]=1;
  13. }
  14. else echo ShowLogin("Podano złe dane!!!");
  15. }
  16. else ShowLogin();
  17. }
  18. else{
  19. ?>

i po tym odcinku kodu jest ta część strony, gdzie chciałem wyświetlić nick z sesji, tutaj się nie wyświetla ponieważ przeładowałem stronę.. Czy jest jakieś rozwiązanie na ten problem ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
rychu123
post
Post #2





Grupa: Zarejestrowani
Postów: 194
Pomógł: 1
Dołączył: 18.09.2008

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


Cytat(mercs600 @ 14.11.2009, 23:48:33 ) *
  1. <?php
  2. /* jezeli kliknieto wyloguj */
  3. if($_GET["wyloguj"]=="tak"){$_SESSION["zalogowany"]=0;echo "Zostałeś wylogowany z serwisu";}
  4. /* zalogowano poprawnie */
  5. if($_SESSION["zalogowany"]!=1){
  6. if(!empty($_POST["login"]) && !empty($_POST["haslo"])){
  7. if(mysql_num_rows(mysql_query("select * from admin where user_login = '".htmlspecialchars($_POST["login"])."' AND user_haslo = '".htmlspecialchars($_POST["haslo"])."'"))){
  8. header('location: index.php);
  9. echo $nick;
  10. //tutaj sobie chciałem sprawdzić czy w tej części wyświetli się nick z sesji.. wyświetla
  11. $_SESSION["zalogowany"]=1;
  12. }
  13. else echo ShowLogin("Podano złe dane!!!");
  14. }
  15. else ShowLogin();
  16. }
  17. else{
  18. ?>


teraz powinno działać
Go to the top of the page
+Quote Post
Fifi209
post
Post #3





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Przecież nicku nie zapisałeś do sesji to jak chcesz go z niej wyświetlić ?
Go to the top of the page
+Quote Post
mercs600
post
Post #4





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 14.11.2009

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


To jak go zapisać ? (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Wicepsik
post
Post #5





Grupa: Zarejestrowani
Postów: 1 575
Pomógł: 299
Dołączył: 26.03.2009

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


Popatrz na skrypt...
Go to the top of the page
+Quote Post
Arsen
post
Post #6





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 28.06.2009

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


Zapomniałeś o '' - cudzysłowach przy $_SESSION['user']=$_POST[login];.

Trochę późno na głębsze przyglądanie się...
Go to the top of the page
+Quote Post
mercs600
post
Post #7





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 14.11.2009

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


Ok wywnioskowałem, że powinienem zapisać jeszcze session_register("user"); ale i tak nic nie daje, ma ktoś jakiś pomysł ? ?

Cytat(rychu123 @ 14.11.2009, 23:59:49 ) *
teraz powinno działać


to wyjście zadziała tylko raz, ponieważ po odświeżeniu już tego loginu nie odczyta..

Ten post edytował mercs600 15.11.2009, 17:11:03
Go to the top of the page
+Quote Post
Fifi209
post
Post #8





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


...

  1.  
  2. if ($_SESSION['login'] !== true) {
  3. if ($_POST['submit']) {
  4. // sprawdzasz dane i przypisujesz do $_SESSION['nick'] = $_POST['nick'];
  5. // ustawiasz $_SESSION['login'] = true;
  6. }else{
  7. // wyświetlasz formularz
  8. }
  9. }else{
  10.  
  11. // tutaj możesz zrobić echo $_SESSION['nick'];
  12. }


Ten post edytował fifi209 16.11.2009, 19:52:48
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 29.12.2025 - 15:25