Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Zmiana wartości zmiennych sesji przez zapytanie sql
Forum PHP.pl > Forum > Przedszkole
nastu7
Cześć.

Mam problem jak w temacie. Mianowicie podczas wykonywania jednego pliku zmienia mi się zmienna $_SESSION.

  1. if($query = mysql_query("SELECT id, login, fname, lname, email, city FROM users")){
  2. while($result = mysql_fetch_assoc($query)){
  3. $id = $result['id'];
  4. $login = $result['login'];
  5. $fname = $result['fname'];
  6. $lname = $result['lname'];
  7. $email = $result['email'];
  8. $city = $result['city'];
  9.  
  10. $zm = str_replace('"','\\"',gettemplate(single_user));
  11. eval ("\$single_user = \"".$zm."\";");
  12.  
  13. echo $single_user;
  14. }
  15. }


oczywiście wszystkie dane sessji są zamienianena ostatniego wylistowanego usera, co powoduję zalogowanego ostatniego usera w tablicy users.

Jakiś pomysł czemu tak się dzieje?
b4rt3kk
Jakaś podpowiedź co chcesz osiągnąć? Na cholerę to eval? Jak to ma być logowanie jednego użytkownika to proponowałbym w zapytaniu dodać jakiś warunek WHERE.
nastu7
Ach, przepraszam.

Ten blok, ma mi wyświetlać userlistę, a ten kawałek eval, wypełnia mi plik .html zmiennymi ze skryptu, tzn. wartościami dla kazdego usera tj. login, fname, lname itd.
Po wykonaniu zapytania, zmienia konto, na którym jestem zalogowany, na ostatniego usera w tym zapytaniu.

Chciałbym się dowiedzieć dlaczego tak się dzieje i jak temu zapobiec.

dla przykładu:
zakładając że ostatni użytkownik w zapytaniu ma id==7

będąc zalogowanym mam id==5
czyli $_SESSION['id'] == 5
po wykonaniu tego zapytania powstaje sesja innego użytkownika z id ==7
czyli $_SESSION['id'] == 7

A więc?
nospor
Wyłącz register_globals
nastu7
Cytat(nospor @ 28.10.2014, 17:52:30 ) *
Wyłącz register_globals


To rozwiązało problem, wielkie dzięki.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.