Tak se mi po úmorné konečně podařilo, dokončit zase jeden skript a hned se musela objevit potíž.
Nahraju návštěvníkovi cookie, který se skládá ze slova hlasovano a jména
např. hlasovanoJan_Novak1
To vše proběhne v pohodě, ale zádrhel nastane, když chci ověřit, jestli má návštěvník cookie uloženou. Jenže nejdřív musím zjistit, jakou cookie vůbec chci, čili něco ve smyslu
if ($(echo "hlasovano". $jmeno) != "ano"):
ale tímhle způsobem to smaozřejmně nejde. Dokáže mi někdo poradit?
Něco jako:
eval("if($_COOKIE ['hlasovano".$jmeno."']));");
?
No téhle funkci jsem teda moc neporozumněl. Podle toho co jsem vyčetl z mánualu, tak by to mělo věc uvnitř eval brát jako php kód a převést proměnné. Ale co tam tedy znamená ten kousek if($_COOKIE ?
http://php.benscom.com/manual/cs/function.eval.php
V eval může být prakticky jakýkoliv PHP kód, tedy i podmínky.
Aha, ale ještě dotázek kam se ztratila dvojtečka u if nebo spíš kam přijde?
Tak jsem to nakonec mohl vyřešit jednodušeji. Díky tomu $_COOKIE jsem mohl odstranit hlasovano a zbyla tak jenom promenna. Díky moc za to i za eval :-)
Bohužel jsem asi moc zhejčkanej JavaScriptem (tam takováhle konstrukce funguje úplně normálně). Že by eval v PHP byl tak okleštěnej?
Divný. No, tak jinak:
if (IsSet($_COOKIE['hlasovano'.$jmeno]))
{
echo 'bla bla bla';
}
Přesně takhle jsem to nakonec dal, akorát bez hlasovano a funguje :-) Ještě jednou díky.
Ta první kontrukce, co jsem napsal, je samozřejmě špatně :-), takhle neuzavřený by to nedávalo smysl, ale ono nefunguje ani:
eval("if (1==1)");
{
echo 'test';
}
nejmenuje se to evaluate? nevim, nechce se mi to zkoušet :o)
>> nejmenuje se to evaluate?
Skutecne to znamena evaluate, ale funkce samotna se jmenuje eval()
tak nevim,to je divný....