Autor | Zpráva | ||
---|---|---|---|
xlifer Profil |
Je možné níže uvedený kód napsat efektivněji, resp. pomocí nějaké přímé funkce PHP?
Když jsou vypnuté globalní proměnné, tak jiný způsob asi není... ? (nenapadá mě) Předem díky za názory. Pro odpověď proč předávám parametr z GET do POST: Někdy odkazuji na formulář odkazem a někdy přímo formulářem, který mám nastaven vždy na metodu POST (!). řešení GET mi přímo nevyhovuje, protože předávám spoustu parametrů a nechci je motat do řádku s adresou. Kód: if (IsSet($_GET["nazev"])): $_POST["nazev"] = $_GET["nazev"]; endif; |
||
__construct Profil |
#2 · Zasláno: 25. 5. 2010, 21:36:44
$_REQUEST nepoznáš ?
|
||
fuckin Profil |
#3 · Zasláno: 26. 5. 2010, 11:59:54
xlifer:
> Někdy odkazuji na formulář odkazem a někdy přímo formulářem, > který mám nastaven vždy na metodu POST (!). řešení GET mi přímo nevyhovuje, > protože předávám spoustu parametrů a nechci je motat do řádku s adresou. A jak se odkazuje formulářem na formulář? Btw ten tvůj kód je pěkná kravina. |
||
xlifer Profil |
#4 · Zasláno: 27. 5. 2010, 22:52:26
__construct:
Ano, $_REQUEST bude to řešení co potřebuji, ale doufám, že bude funkční bez problému od PHP 4.1.0 jak se uvádí v dokumentaci. fuckin: Proč by měl být kód kravina??? Je plně funkční! A formulář na formulář odkazuje např. v situaci, když někdo zadá špatně požadované údaje a načíta se zvou, kdy se načtou do value= pole, ktere uživatel zadal. |
||
Mastodont Profil |
#5 · Zasláno: 27. 5. 2010, 23:50:40
Že je něco funkční, ještě neznamená že to není hovadina.
|
||
Kcko Profil |
#6 · Zasláno: 28. 5. 2010, 17:24:32
panove Mastodont a fuckin, krom toho ze napise ze to je kravina a hovadina, muzete uvest taky nejaky duvod?
|
||
fuckin Profil |
#7 · Zasláno: 28. 5. 2010, 18:53:20
Kcko:
Tobě přijde tento zápis normální? $_POST["nazev"] = $_GET["nazev"]; Tyto superglobalní proměnné jsou plněné daty externě. V životě by mě nenapadlo udělat nějakou takovouto zkomoleninu. Viz slova Mastodonta, ,,Že je něco funkční, ještě neznamená že to není hovadina.''. Ty to tak taky normálně děláš? Viděl jsi tuto techniku někde? Rád se nechám přesvědčit o opaku. Určitě máš eso v rukávu když o mé kritice pochybuješ. |
||
Kcko Profil |
fuckin:
Zadne eso v rukavu nemam, ale tusim ze se mi uz stalo ze jsem nutne potreboval prebit POST GETem nebo obracene ci naplnit SESSION POST-em A v tom pripade nevidim nic spatneho na zapisu if (cond) { $_SESSION['POST'] = $_POST; } atd. Moderátor Majkl578: Vkládej prosím kódy mezi značky [>pre] a [>/pre] (stačí kliknout na ).
|
||
Kcko Profil |
Rad se necham presvedcit o tom, ze na tom je neco spatneho a ne rcenim ze to je hovadina.
Moderátor Majkl578: Tvůj projev je špatně srozumitelný, piš prosím s diakritikou.
|
||
Sm Profil * |
#10 · Zasláno: 28. 5. 2010, 19:47:10
Dostanu-li se do situace, kdy nějakou z těchto akcí potřebuju, tak už to zavání tím, že něco na způsobu kterým danou akci řeším není v pořádku.
|
||
Majkl578 Profil |
#11 · Zasláno: 28. 5. 2010, 21:19:58
Kcko:
„ze jsem nutne potreboval prebit POST GETem“ „naplnit SESSION POST-em“ Můžeš být konkrétní? „A v tom pripade nevidim nic spatneho na zapisu“ Já ano, nevidím žádný důvod k takovému použití. Za normálních okolností vidím jako jediný pádný důvod k úpravě superglobálních polí odstranění magických uvozovek. [#10] Sm: Souhlasím. |
||
xlifer Profil |
#12 · Zasláno: 29. 5. 2010, 20:22:31
No, panové specialisti z této diskuze jsem krom toho, že je to kravina moc tedy nepochopil.
Můžete prosím uvést řešení jak naložit se situací, kdy mám formulář ve kterém předávám přes POST a odkážu na něj přes odkaz <a href a pošlu mu nějaké parametry přes GET, které chci naplnit do POST formuláře??? Tento příklad ukazuje situaci o kterou se mi jedná. <? echo "<form action=\"formular.php\" name=\"formular\" method=\"post\">"; echo "<input type=\"hidden\" name=\"cislo\" value=\"100\">"; echo "<input type=\"hidden\" name=\"cislo2\" value=\"200\">"; echo "<input type=\"text\" name=\"nazev\" value=\"".$_POST["nazev"]."\">"; echo "</form>"; ?> Následně odkážu přes odkaz a chci poslat parametr Název, aby se mi vyplnil ve formuláři. <? echo "<a href=\"formular.php?nazev=hodnota\">"; ?> Motodu POST používám, protože nechci, aby bylo v řádku s adresou předáváno GET a vidět všechny parametry posílané formulářem tedy hidden. Budu rád, když mě někdo pochopí. Zatím mám pocit, že to tak není... |
||
tiso Profil |
#13 · Zasláno: 29. 5. 2010, 21:00:26
xlifer: ak to správne chápem, chceš mať možnosť vložiť dáta z GET do POST formulára pred jeho odoslaním? Tak potom takto:
<form action="formular.php" method="post"> ... <input type="text" name="nazev" value="<?php echo (isset($_GET['nazev']) ? $_GET['nazev'] : ''); ?>"> </form> |
||
xlifer Profil |
#14 · Zasláno: 29. 5. 2010, 21:12:53
Ano, ale pak nechápu co je tak špatného na mém řešení,
kdy si do POST načtu GET, což je vlastně skoro stejná podmínka a situace, akorát možná technicky do není na oko specialistů uplně ok, nicméné řešení navenek funguje úplně stejně??? nebo ne? |
||
tiso Profil |
#15 · Zasláno: 30. 5. 2010, 00:27:20
xlifer: ide o to, žeby si nemal meniť dáta priamo v $_POST a $_GET poliach. Mal by si ich tam nechať v pôvodnej podobe, je to konvencia.
Lepšie riešenie je vytvoriť si pole ($default) kam budeš ukladať hodnoty ktoré budeš vypisovať do formulára: <?php $default=array('url' => 'http://', 'nazev' => '', ...);//aby formular nebol taky prazdny if(isset($_GET('nazev'){$default['nazev']=$_GET['nazev'];}//mame get if(isset($_POST('nazev'){$default['nazev']=$_POST['nazev'];}//mame post a ma vyssiu prioritu ?> <form ...> ... <input type="text" name="nazev" value="<?php echo $default['nazev']; ?>"> </form> |
||
xlifer Profil |
#16 · Zasláno: 30. 5. 2010, 01:00:09
Tiso: Ano, už tomu rozumím a tvůj návrh řešení se mi líbi, díky moc! Konečně někdo, kdo dokázal věcně argumentovat a nastínit řešení, krom těch keců, že je to kravina ap.
|
||
tiso Profil |
#17 · Zasláno: 30. 5. 2010, 01:09:20
xlifer: chlapci vyššie vedia tiež argumentovať a poradiť. Ale z toho tvojho popisu nebolo hneď jasné čo chceš, tiež som to čítal viackrát. A som tiso, nie Tiso.
|
||
Časová prodleva: 14 let
|
0