Autor Zpráva
kari
Profil *
jak udělám podmínku If()

vpřípadě že si ji vygenerju do proměnné $podminka = "$_GET[ok] == 1 || !empty($_POST[odeslano])";

pak použiji If($podminka){zobrazísemi pokud je promenna podminka vyplnena}

ale v $podminka je podminka kterou chci provést nechci zjistit jestli jsem zadal $podminka chápete mě?

jak todle vřešit ? potřebuju podminku do formu a počet polí se různí vše su mohu jen vygenerovat
Alphard
Profil
tipnu si :-)
If(eval ($podminka)){zobrazísemi pokud je promenna podminka vyplnena}
kari
Profil *
$if = "If($form->podminka[$form_type][$a][$i])";
If(empty($form->podminka[$form_type][$a][$i])) $if = "if($_POST[$form->input_name[$form_type][$a][$i]] == "")";

eval($if){echo "<p>Nevyplněno, špatně vyplněno!</p>"; $err = 1;} // Pokud není vyplněno podle podmínek # 290






Parse error: parse error in c:apacheform.php on line 290

290 řádek je ten kde je eval()
kari
Profil *
v proměnných $if je před $ dolarem a i před uvozovkama v $if druhém řádku u té podmínky
Alphard
Profil
říkal jsem, tipnu si :-) ale mělo by to jít, nevím kdy je vhodné nahrazovat proměnné za hodnoty a navíc toto fórum žere \
zkus ty řetězce uzavřít do apostrofů
tiso
Profil
Robme veci zložito? A k tomu takéto šialenosti? Čo presne potrebuješ spraviť?
kari
Profil *
už vpohodě , vyřešeno
v6ak
Profil
Alphard
If(eval ($podminka))
Krásná PHP injekce...
Něco jiného tak potenciálně vražedného (při nesprávném použití, jako třeba toto) jako eval v PHP snad není. Jedině incude/require, ale ne tolik.

Ono by úplně stačilo z "$_GET[ok] == 1 || !empty($_POST[odeslano])" udělat $_GET["ok"] == 1 || !empty($_POST["odeslano"]) ...
Alphard
Profil
v6ak
Něco jiného tak potenciálně vražedného
souhlasím :-) odpovídal jsem na dotaz

Ono by úplně stačilo ...
dotaz zněl jinak
v6ak
Profil
Alphard
souhlasím :-) odpovídal jsem na dotaz
Jo, ale má to dost zásadní chybu.

dotaz zněl jinak
Tázající asi neví, proč tam má ty uvozovky, někde to prostě IMHO viděl. Tak jsem navrhl takové vylepšení, aby to bylo napsáno správně. V podstatě nelze zjistit, zda je podmínka, kterou se snažil uložit do $podminka, splněna, právě kvůli té injekci.

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: