Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] - Inicjacja sesji, Jestem początkujący
Ry4n350z
post
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 31.05.2011

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


Witam,

Od jakiegoś czasu piszę grę MMO via WWW. Pomyślałem, że będzie to świetny sposób na naukę języków PHP i MYSQL. Mam problem z zainicjowaniem sesji, tzn. nie wiem jak się zabrać za to.

Strona składa się ze strony index.php (gdzie użytkownik rejestruje konto i się loguje) i index2.php (strona po zalogowaniu). Po poprawnym zalogowaniu strona index2.php ma pobierać dane z bazy i wyświetlać je. Kod w index.php wygląda tak:

  1. if ($_POST['Login'] AND $_POST['Pass']) {
  2. $l = md5($_POST['Login']);
  3. $p = md5($_POST['Pass']);
  4. if(mysql_num_rows(mysql_query("SELECT * FROM users WHERE n = '$l' OR p = '$p'")) > 0) {
  5. session_start(); $_SESSION['n'] = $_POST['Login']; header("Location: index2.php"); return FALSE; };
  6. if(mysql_num_rows(mysql_query("SELECT * FROM users WHERE n = '$l' OR p = '$p'")) == 0) {
  7. echo('<div id="error">Niepoprawne dane!</div>'); return FALSE; };
  8. }


Jak widać, po spełnieniu warunku, następuje inicjacja sesji. Utworzona jest zmienna $_SESSION['n'], dzięki której zostaną później pobrane z bazy danych dane i przetworzone na stronie index2.php. Cały kod jest długi, więc wstawię kod związany z sesją:

  1. if(!isset($_SESSION['session'])) {
  2. mysql_query ( "SELECT id, n, exp, pn, msg FROM users WHERE n = '$_SESSION['n']' ); }


Niestety, w linijce 2 występuje błąd syntax. Jeśli by nie było błędu, dalej umieściłbym instrukcje przetwarzania danych (z użyciem funkcji list())

Jeśli mój zamysł jest dobry (w co szczerzę wątpię), to jak poprawić błąd? Jeśli macie lepsze pomysły na realizację sesji, to napiszcie propozycje. Dzięki z góry za wszelkie odpowiedzi.

Ten post edytował Ry4n350z 31.05.2011, 16:10:11
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
sadistic_son
post
Post #2





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

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


Zrób tak jak kolega wyżej podał lub tak:
  1. if(!isset($_SESSION['session'])) {
  2. mysql_query ( "SELECT id, n, exp, pn, msg FROM users WHERE n = '$_SESSION[n]' "); }
Wyjdzie na to samo.

PS. Co do pierwszego kawałka Twojego kodu to session_start wywaliłbym przed ten warunek, właściwie na sam początek pliku. Bo w przypadku gdy nie podano loginu i hasła (czyli już po zalogowaniu) sesja istnieć nie będzie.

Ten post edytował sadistic_son 31.05.2011, 16:28:32
Go to the top of the page
+Quote Post

Posty w temacie


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: 14.10.2025 - 03:42