Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL]Przetłumaczy ktoś?
Forum PHP.pl > Forum > Przedszkole
Kubion70
Witam!

Czy mógłby ktoś "przetłumaczyć" mi ten kod?

  1. FUNCTION getUser($id)
  2. {
  3. RETURN row("SELECT * FROM user WHERE id=$id");
  4. }
  5.  
  6. $user = getUser($_SESSION['id']);
johny_s
chodzi Ci o sql'a czy php'a?
Kubion70
Chodzi o ten zwrot tutaj oznaczony, gdyż podanie całego skryptu w tłumaczeniu zajęło by wam miesiące.
mikolaj51
Witaj, funkcja ta:

  1. function getUser($id)
  2. {
  3. return row("SELECT * FROM user WHERE id=$id");
  4. }
  5.  
  6. $user = getUser($_SESSION['id']);


pobiera z bazy danych informacje o userze o danym id. W tym wypadku pobierze dane dotyczące obecnie zalogowanego użytkownika ($_SESSION['id'])
jaslanin
funkcja getUser jako argument przyjmuje id użytkownika ($id) i zwraca wiersz z danymi użytkownika (prawdopodobnie jako tablica) który posiada dany identyfikator

funkcja row wynonuje zapytanie SQL do bazy i zwraca prawdopodobnie pojedynczy wiersz mu odpowiadający w postaci prawdopodobnie tablicy

na końcu do zmiennej $user jest przypisywana tablica o której wspomniałem powyżej

nie podajesz implementacji funkcji row więc można jedynie przypuszczać jak to konkretnie wygląda, dodatkowo zapytanie SQL w funkcji getUser jest podatne na SQL INJECTION
greycoffey
@up: Napisz mi, jak byś wykonał SQL Injection wink.gif
jaslanin
w tym akurat przypadku dane pobierane są z sesji, a nie bezpośrednio od użytkownika więc raczej to nie jest możliwe, nie zauważyłem wcześniej

Niemniej jednak za rok może ktoś spróbować użyć to w ten sposób

  1. getUser($_GET['id']);


i może być problem, ja po prostu wolę zamykać takie możliwości pomyłki od razu.
greycoffey
Jeśli id to int, najlepiej rzutować, w przeciwnym razie odpowiedni escape stringów. W bieżącej implementacji SQL Injection jest możliwe jedynie przez Session Poisoning.
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.