Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] przesyłanie zmiennych, sesje,
nmts
post 21.03.2008, 19:50:23
Post #1





Grupa: Zarejestrowani
Postów: 283
Pomógł: 34
Dołączył: 21.03.2008

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


Witam użytkowników php.pl, winksmiley.jpg

xxx

Na powyższej stronie plik od logowania jest includowany, a wygląda on tak:

  1. <?php
  2. session_register("zalogowany");
  3.  
  4. if(empty($_SESSION["zalogowany"]))$_SESSION["zalogowany"]=0;
  5.  
  6. // polaczenie z baza
  7.  
  8. require "config.php"; 
  9. connection();
  10.  
  11. function ShowLogin($komunikat=""){
  12.  
  13. echo "$komunikat<br>";
  14.  
  15. // formularz
  16.  
  17. echo " <form id='form1' method='post' action='index.php?login=logowanie'>";
  18. echo " <fieldset>";
  19. echo " <legend>Zaloguj</legend>";
  20. echo " <label for='inputtext1'>Nick:</label>";
  21. echo " <input id='inputtext1' type='text' name='nick' value='' />";
  22. echo " <label for='inputtext2'>Password:</label>";
  23. echo " <input id='inputtext2' type='password' name='pass' value='' />";
  24. echo " <input id='inputsubmit1' type='submit' name='inputsubmit1' value='Zaloguj' />";
  25. echo " <p><a href='index.php?id=rejestracja'>Zaloz konto</a></p>";
  26. echo " <p><a href='#'>Przypomnij haslo</a></p>";
  27. echo " </fieldset>";
  28. echo " </form>";
  29.  
  30.  
  31.  
  32. }
  33.  
  34. $user=$_POST['nick'];
  35. $_SESSION["user"]=$_POST["nick"];
  36.  
  37. // tutaj proby wyswietlenia nazwy uzytkownika, wyswietlaja sie jedynie tuz po zalo
    gowaniu, pozniej znikaja
  38.  
  39. $_SESSION["user"];
  40. echo $_SESSION["user"];
  41. print $_SESSION["user"];
  42. echo $user;
  43.  
  44. if($_GET["wyloguj"]=="tak"){$_SESSION["zalogowany"]=0;echo "<b>Zostales wylogowany!</b><br>";}
  45. if($_SESSION["zalogowany"]!=1){
  46. if(!empty($_POST["nick"]) && !empty($_POST["pass"])){
  47. if(mysql_num_rows(mysql_query("select * from stmn_users where nick = '".htmlspecialchars($_POST["nick"])."' AND pass = '".htmlspecialchars($_POST["pass"])."'"))){
  48. echo "Zalogowany jako $nick ,<br>
  49. <br><a href='index.php?id=profil'>Twoj profil</a>
  50. <br><a href='index.php?id=edit'>Edytuj profil</a><br>
  51. <br><a href='index.php?dzial=admin&id=admin'>Panel Admina</a><br>
  52. <br><a href='index.php?login=logowanie&wyloguj=tak'><b>Logout</b></a> ";
  53. $_SESSION["zalogowany"]=1;
  54. }
  55. else echo ShowLogin("Podano zle dane!!!");
  56. }
  57. else ShowLogin();
  58. }
  59. else{
  60.  
  61. echo $username; 
  62. echo $_SESSION['user']; 
  63.  
  64. ?>
  65. Zalogowany jako $nick ,<br>
  66. <br><a href='index.php?id=profil'>Twoj profil</a>
  67. <br><a href='index.php?id=edit'>Edytuj profil</a><br>
  68. <br><a href='index.php?dzial=admin&id=admin'>Panel Admina</a><br>
  69. <br><a href='index.php?login=logowanie&wyloguj=tak'><b>Logout</b></a>
  70. <?php
  71. }
  72.  
  73. ?>


Czy w powyższym przykładzie $_SESSION["user"] nie powinna przechowywać nazwy zalogowanego użytkownika? Jednak nie działa, więc jak sprawić by sesja zapamiętała tą zmienną(nick uzytkownika)? wstydnis.gif

Ten post edytował nmts 25.03.2008, 13:56:46


--------------------
Free Web Tools - narzędzia dla programistów, webdeveloperów i specjalistów seo...
Go to the top of the page
+Quote Post
Ociu
post 22.03.2008, 13:51:18
Post #2





Grupa: Moderatorzy
Postów: 1 566
Pomógł: 37
Dołączył: 14.05.2003
Skąd: Kraków




Temat otwarty.
Go to the top of the page
+Quote Post
l0ud
post 22.03.2008, 13:58:26
Post #3





Grupa: Zarejestrowani
Postów: 1 387
Pomógł: 273
Dołączył: 18.02.2008

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


Na oko:

  1. <?php
  2. $_SESSION["user"]=$_POST["nick"];
  3. ?>


Dlaczego nadpisujesz za każdym razem sesję? Przecież $_POST['nick'] może być puste... Umieść to lepiej zaraz po

  1. <?php
  2. $_SESSION["zalogowany"]=1;
  3. ?>


--------------------
XMPP: l0ud@chrome.pl
Go to the top of the page
+Quote Post
nmts
post 22.03.2008, 15:01:17
Post #4





Grupa: Zarejestrowani
Postów: 283
Pomógł: 34
Dołączył: 21.03.2008

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


Zrozumiałem, że nie mogę nadpisywać sesji ponieważ zmienna staje sie pusta. Jednak Twoja propozycja nie rozwiązuje problemu, sesja nie zapamiętuje wartości(jedynie w czasie pierwszego wykonywania skryptu). ^^ Jak to wykonać aby po reloadingu strony, sesja pamiętała zmienne(nick użytkownika z formularza)? worriedsmiley.gif



@edit

Postanowiłem użyć zupełnie innego kodu, sesja zapamiętuje zmienne, jednak są inne problemy ale to historia na inny temat.

..raczej EOT.

Ten post edytował nmts 23.03.2008, 12:17:38


--------------------
Free Web Tools - narzędzia dla programistów, webdeveloperów i specjalistów seo...
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 - 04:47