Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: "Podpisane" linki
Forum PHP.pl > Forum > PHP
p!ter
Witam

Mam taki skrypt ktory pobiera dane osobowe z bazy i wypisuje je na ekran w postaci prostej tabeli.
Do kazdego wiersza dodalem link za pomoca ktorego mozliwe bedzie usuwanie danej osoby. Problem polega na tym ze nie wiem jak sprawdzac ktory link zostal nacisniety. Musze je jakos rozrozniac tylko nie wiem w jaki sposob.
  1. <?php
  2. $sql = "select idosoby , imie, nazwisko from osoby";
  3.  
  4. $zapy=mysql_query($sql);
  5.  
  6.  
  7. print "<table class=tabelaosob border=1>";
  8. print "<tr class=tabelanaglowki><td width=70%>Imie</td><td>Nazwisko</td><td>Usuń</td></tr>";
  9.  
  10. while ($wynik=mysql_fetch_row($zapy))
  11. {
  12.  
  13. print "<tr>
  14.  <td>".$wynik[1]."</td>
  15.  <td>".$wynik[2]."</td>
  16.  <td><a href=usun.php>X</a></td>  //wlasnie tutaj mam problem aby jakos przypisac idosoby do tego linka aby po klikn
    ieciu wiadomo bylo ktora osobe ma usunac.
  17.  </tr>";
  18.  
  19. }
  20.  print "</table>";
  21. ?>


Wiem ze moglbym zrobic to np. tak
  1. <?php
  2. <td><a href=usun.php?zmienna=$w[0]>X</a></td>
  3. ?>

a nastepnie w pliku usun.php pobrac id za pomoca REQUESTa ale to nie jest zbyt dobre i bezpieczne rozwiazanie.
Tak wiec czekam na wasze propozycje.

Za wszelka pomoc wielkie dzieki!

pozdrawiam
p!ter
LBO
  1. <a href="usun.php?id=<?php print($wynik[1]); ?>">usuń</a>


Nastepnie w skrypcie usun.php pobierasz id osoby do usunięcia poprzez:

  1. <?php
  2. $_GET['id'];
  3. ?>


Umieszczasz to potem w odpowiednim zapytaniu SQL i 'voila.

P.S. Nie wiem czemu uważasz, że to nie jest bezpieczne? Najważniejsze, by osoby niepowołane, nie miały dostępu do tego skryptu. Musisz stworzyc strefę admina, która jednocześnie będzie sprawdzała uprawnienia uzytkownika, wtedy będzie cacy.

Okay, dobry uczynek spełniony, jeszcze tylko fajeczek i spać, trzymaj się i powodzenia.

LBO
p!ter
Dzieki za odpowiedz!
Robiac to twoim sposobem na pasku adresowym bedzie sie wyswietlalo to id a ja bym chcial zeby ono pozostalo ukryte.
Wiec chodzi mi o inny sposob na rozwizanie tego problemu. Nie jestem zwolennikiem uzywania requesta i geta bo wtedy na pasku adresowym mozna zmieniac id na jakie tylko sie chce.
Mystic007
Możesz poczytac w internecie o ręcznym wysyłaniu danych metodą post, bo robienie dla każdego usera osobnego formularza to przesada. Ale co do GET to w sumie jest to najlepszy sposób bo jeśli pozwalasz komuś na jakiekolwiek ingerencjie do userów to tak czy tak usunie jakiegoś usera a to czy dane bedą przesyłane metodą GET lub POST to mało istotne. Pamiętaj, że można użyć intval by nie wpisano komend do zhakowania strony.
LBO
Cytat(p!ter @ 2.09.2006, 14:38:10 ) *
Dzieki za odpowiedz!
Robiac to twoim sposobem na pasku adresowym bedzie sie wyswietlalo to id a ja bym chcial zeby ono pozostalo ukryte.
Wiec chodzi mi o inny sposob na rozwizanie tego problemu. Nie jestem zwolennikiem uzywania requesta i geta bo wtedy na pasku adresowym mozna zmieniac id na jakie tylko sie chce.


Kolego, chyba napisałem: od tego jest strefa admina... bez czagos podobnego zawsze bedzie można w jakis sposób podmienic to id...
p!ter
Cytat(LBO @ 2.09.2006, 19:51:54 ) *
Kolego, chyba napisałem: od tego jest strefa admina... bez czagos podobnego zawsze bedzie można w jakis sposób podmienic to id...


Tak wiem!

Zrobilem twoim sposobem i sprawdzam czy dany zalogowany uzytkownik ma uprawnienia do usuwania innych uzytkownikow i dziala poprawnie.

Ale czy jest inny sposob na rozwiazanie tego problemu moze nie za pomoca linkow tak zeby nie trzeba bylo pokazywac tego id na pasku adresu??
LBO
Nie zrozum mnie xle, ale robisz z igły widły w z tym bzpieczeństwem GETa. A skoro tak na siłę to zrób zwyczajnie formularz, nie linki. Submit, też może przybierać wartości, które potem odczytujesz w POST'cie.
Mystic007
Nie wiem czy to czytałeś:
Cytat(Mystic007 @ 2.09.2006, 13:01:29 ) *
Możesz poczytac w internecie o ręcznym wysyłaniu danych metodą post, bo robienie dla każdego usera osobnego formularza to przesada. Ale co do GET to w sumie jest to najlepszy sposób bo jeśli pozwalasz komuś na jakiekolwiek ingerencjie do userów to tak czy tak usunie jakiegoś usera a to czy dane bedą przesyłane metodą GET lub POST to mało istotne. Pamiętaj, że można użyć intval by nie wpisano komend do zhakowania strony.

A co do forma to może pole hidden? Ale naprawde jak pisał LBO troche przesadzasz z tym bezpieczeństwem, bo:
Cytat(Mystic007 @ 2.09.2006, 13:01:29 ) *
jeśli pozwalasz komuś na jakiekolwiek ingerencjie do userów to tak czy tak usunie jakiegoś usera a to czy dane bedą przesyłane metodą GET lub POST to mało istotne.
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.