![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 51 Pomógł: 0 Dołączył: 1.10.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam. Mam taki problem. Tworzę formularz z wykorzystaniem createForm() i potrzebnej klasy, w którym umieszczam dane do edycji lub usunięcia. Niestety w tym formularzu nie jest tworzone żadne pole, odpowiadające id w obiekcie. W takim razie jak przekazać metodą POST id wybranego rekordu z bazy danych do edycji/usunięcia?
|
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Dwa rozwiązania:
1. Utwórz ukryte pole formularza z identyfikatorem obiektu. 2. Przekaż identyfikator w URL-u. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 51 Pomógł: 0 Dołączył: 1.10.2010 Ostrzeżenie: (0%) ![]() ![]() |
Ze względów bezpieczeństwa GET odpada.
Co do drugiego, to wtedy framework wymaga stworzenia funkcji setId(), która domyślnie nie jest tworzona przez Symfony(bo i po co?). To nie jest tak jakby trochę odejście od stylu narzuconego przez framework? |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
A co ma metoda GET/POST do adresu URL? Oczywiście, żądanie usunięcia zasobu (dowolnego) powinno lecieć metodą POST.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 592 Pomógł: 62 Dołączył: 3.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Można przekazywać GETem, ale trzeba pamiętać, żeby jakiś token dorzucić (IMG:style_emoticons/default/smile.gif)
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 1 385 Pomógł: 55 Dołączył: 1.03.2005 Skąd: śląsk Ostrzeżenie: (0%) ![]() ![]() |
A co ma metoda GET/POST do adresu URL? Oczywiście, żądanie usunięcia zasobu (dowolnego) powinno lecieć metodą POST. a nie delete? http://en.wikipedia.org/wiki/Representational_state_transfer |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
@AxZx: HTML-owskie formularze wspierają tylko metody GET/POST, więc nie.
@rzymek01: A od kiedy to żądanie HTTP typu GET może jakiekolwiek dane przenosić? @dragon7: Skoro ukryte pole formularza odpada, najlepszym rozwiązaniem będzie żądanie typu POST, na adres http.../resource/delete?id=5 - czy jakąkolwiek tam formę URL-a przyjmiesz. |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 592 Pomógł: 62 Dołączył: 3.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
@Crozin,
panie kochany, dla przykładu wyciąg z wiresharka: - Expert Info (Chat/Sequence): GET /index.php?get1=abc&get2=123 HTTP/1.1\r\n czy owe parametry get1 o wartości abc i get2 o wartości 123 to nie są dane? Ten post edytował rzymek01 30.07.2012, 17:45:25 |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
@rzymek01: Nie, to nie są dane z metody GET. To jest fragment URL-a, który jako taki może być użyty w dowolnej metodzie żądania HTTP.
Kod POST /resource?var1=a&var2=b HTTP/1.1 Tutaj masz przykład żądania, które przesyła jakieś dane.... postVar1=a&postVar2=b W PHP ktoś wymyślił by zmienne z URL-a, a konkretnie z części query [string], umieścić w zmiennej $_GET - nie wiem czym się ten człowiek kierował, ale bardziej nieodpowiedniej i mylącej nazwy chyba wymyślić nie mógł. EDIT: Stawiam na to, że ów osoba wymyślająca nazwę dla zmiennej $_GET kierował się atrybutem action z HTML-owskich formularzy. Co jest oczywiście idiotycznym "kierowaniem się". Ten post edytował Crozin 30.07.2012, 17:56:18 |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 592 Pomógł: 62 Dołączył: 3.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Nie zagłębiając się w teorię etc.
Idzie sobie żądanie GET na podany wyżej przeze mnie URL, masz rację, że GET samo w sobie danych nie niesie, ale informację niesie adres URL, przez co de facto możemy zrobić skrót myślowy i powiedzieć, że niesiemy informację GETem (pośrednio, ale informacja jest dostarczana). |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Dane z URL-a czy nagłówków żądania (np. ciasteczka czy obsługiwane kodowania znaków) są dostępne przy wykorzystaniu dowolnej metody żądania HTTP, więc nie za bardzo można zrobić skrót myślowy "lecą GET-em". Więcej, metoda GET jasno określa, że żądanie nie przesyła żadnych danych w przeciwieństwie do POST czy PUT. Dane przesłane "przy użyciu metody" są dostępne w żądaniu dopiero po nagłówkach.
|
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 592 Pomógł: 62 Dołączył: 3.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Dane z URL-a czy nagłówków żądania (np. ciasteczka czy obsługiwane kodowania znaków) są dostępne przy wykorzystaniu dowolnej metody żądania HTTP w 100% zgoda, Sądze, że wszyscy wiedzą o co chodzi, ale z moich doświadczeń wynika, że przyjęło się nazywanie "parametrów" URI (?var=..&..) jako parametry GET. Co do teorii masz w 100% rację, ale jak już powiedziałem, tak się po prostu mówi, może znasz inny spoób na określenie tego? (IMG:style_emoticons/default/happy.gif) |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Chyba tylko w PHP się takie coś przyjęło - właśnie ze względu na błędną nazwę zmiennej $_GET. Inne nazwy? Normalnie jest to nazywane request/URL/query parameter, czyli parametr żądania/URL-a (query już się chyba sensownie nie da przetłumaczyć).
|
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 320 Pomógł: 29 Dołączył: 3.04.2010 Ostrzeżenie: (20%) ![]() ![]() |
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 12:27 |