Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][mysql] link jako odwolanie do bazy przez sesje
Forum PHP.pl > Forum > Przedszkole
pijanyadmin
zakładając że link generowany jest tak:

  1. <?php
  2. <a href="view.php"><b>'.$wiersz['login'].' </b></a>
  3. ?>


w pliku view.php daje

  1. <?php
  2. $view = $_SESSION['login'];
  3.  
  4. $query = "SELECT * FROM userdata WHERE login = '$view'";
  5. ?>


tylko właśnie jak sprawić aby link był odczytywany przez sesje a ta była zapotaniem do bazy?
phpion
Musisz w adresie przekazać zmienną (view.php?id=4), którą następnie przypiszesz do sesji. Potem przekierowuejsz na stronę z zapytaniem i odczytujesz wartość z sesji. Całość wydaje się lekko bezsensowna smile.gif bo i tak w którymś momencie przekazujesz parametr get'em. Jeśli chcesz ukryć id to może traktuj link jako submit formularza wysyłanego post'em. Tyle tylko, że wtedy można podejrzeć źródło smile.gif.
pijanyadmin
ale po co mam przekazywać ją w adresie skoro chce ją umieścić w sesji?
phpion
Właśnie po to aby umieścić w sesji. Jak to widzisz inaczej?
  1. <a href="view.php"><b>user</b></a>
  2. <a href="view.php"><b>admin</b></a>
  3. <a href="view.php"><b>hiper mega admin</b></a>

Klikam np. na "admin" i co wędruje do sesji? Skąd skrypt wie w co kliknąłem?
pijanyadmin
a widzisz, mój bład, widzisz, link jest generowany tzm. są wyświetlane loginy z bazy i każdy login jest zamieniany na link, dlatego chce przestłać wartośc tego loginu w sersji...
phpion
Nie możesz normalnie get'em? To mi się wydaje logiczniejsze niż zabawa z sesją skoro i tak musisz najpierw zmienną przesłać jako get.
pijanyadmin
czyli może być tak?

Kod
$i++;
$_SESSION['wiersze'][$i]['id_login']=$wiersz['login'];


<a href="view&num='.$i.'">'.$wiersz['login'].'</a>
nowotny
Jak bardzo chcesz to może... ale jak już robisz tak to możesz od razu w linku podać id usera i potem pobierać z bazy na podstawie id a nie loginu...

Nie wiem po co mieszać w to sesje... chyba tylko po to żeby ukryć faktyczny id usera z bazy...


A dlaczego nie powinno się pobierać rekordów na podstawie loginu tylko id...? z wielu powodów... głównie po to żeby łatwiejsze było debugowanie... jeśli nie masz dobrze zrobionych sprawdzaczy loginu to user może podać jakieś dziwne znaki, inne kodowanie które potem przy porównaniu mogą ci wszystko spieprzyć, powodować dziwne błędy w kodzie... albo jeśli napisałeś dobre sprawdzacze możesz zapomnieć w którymś miejscu stripnąć slashe czy coś i znowu będziesz się głowił pół dnia gdzie jest błąd... A id to liczba... pobrana z bazy i przez bazę nadana... jest tzw. fool-proof... pole manewru do niezamierzonego spieprzenia czegoś bardzo się zawęża....
pijanyadmin
tak wiem, tylko zawsze mam problem z zamianą loginu na id
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.