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
$_REQUEST nepoznáš ?
fuckin
Profil
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
__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
Že je něco funkční, ještě neznamená že to není hovadina.
Kcko
Profil
panove Mastodont a fuckin, krom toho ze napise ze to je kravina a hovadina, muzete uvest taky nejaky duvod?
fuckin
Profil
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 *
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
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
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
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
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
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
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
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.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0