Fórum Ubuntu CZ/SK
Ubuntu pro osobní počítače => Software => Příkazový řádek a programování pro GNU/Linux => Téma založeno: {V} P $ y c h o {V} 28 Března 2012, 19:13:31
-
Omlouvám se že sem píšu znovu, ale nemůžu si zvyknout přechod z PHP 5.2 na zabugovaný PHP 5.3 ...
Mám další problém, ale tentokrát s isset funkcí ...
Můj kód:
if(!isset($_POST['_var_host']))
{
echo('<script type="text/javascript">alert("Vzdálená služba je vypnuta!");</script>');
return;
}
Problém je že pokud vyplním políčko nebo ho nechám prázdné, tak se ta funkce isset(); nevykoná nebo se jí spíše nechce ... Funguje mi správně funkce empty(); jenže u ní mám problém že číslo 0 bere jakoby prázdnou hodnotu což je pro mě problém, protože pracuji s čísly 0 a 1 :/
-
No ono 5.2 bude mít taktéž bugy... jen si je třeba občas zvyknout na to, že se některé věci změnili... ale to nemusí být nutně bug.
Funkce isset podle mě funguje dobře. Ona odhalí zda-li je v daném rozsahu platnosti ona proměnná definovaná. Empty zase pracuje tak, že sleduje zdali proměnná něco obsahuje... a 0 vrací false. Pokud pracujete s čísli, pak třeba takhle:
if(isset($_POST['_var_host']) && intVal($_POST['_var_host']) == 0) {
...
}
-
No ono 5.2 bude mít taktéž bugy... jen si je třeba občas zvyknout na to, že se některé věci změnili... ale to nemusí být nutně bug.
Funkce isset podle mě funguje dobře. Ona odhalí zda-li je v daném rozsahu platnosti ona proměnná definovaná. Empty zase pracuje tak, že sleduje zdali proměnná něco obsahuje... a 0 vrací false. Pokud pracujete s čísli, pak třeba takhle:
if(isset($_POST['_var_host']) && intVal($_POST['_var_host']) == 0) {
...
}
Vyzkoušeno, funguje správně na PHP 5.2, ale na PHP 5.3 si funkce isset dělá co chce a vůbec neposlouchá :/ ... Přesněji používám 5.3.6 na Ubuntu 11.10 64bit ... Upgradoval sem z 5.2 na 5.3 a teď mi 1/3 projektu nefunguje :( ...
-
funkce isset dělá co chce a vůbec neposlouchá
To znamená přesněji co? Dělá to něco jiného než jak je uvedeno v dokumentaci na php.net ? Bych se divil. Jo s tím je potřeba počítat při každém takovém upgradu z jedné větve do jiné.
-
funkce isset dělá co chce a vůbec neposlouchá
To znamená přesněji co? Dělá to něco jiného než jak je uvedeno v dokumentaci na php.net ? Bych se divil. Jo s tím je potřeba počítat při každém takovém upgradu z jedné větve do jiné.
Udělal jsem si stránku zkouska.php a vložil do ní kód:
<?php
$zkouska = "";
if(isset($zkouska)) echo('Vyplněno');
else echo('Nevyplněno');
Když sem otevřel stránku zkouska.php v prohlížeči, tak mi to vypsalo ,,Vyplněno'' a i když sem přidal do proměnné ,,zkouska'' text, tak taky stejný výsledek ... Ta funkce prostě ignoruje co se po ní žádá ...
-
funkce isset dělá co chce a vůbec neposlouchá
To znamená přesněji co? Dělá to něco jiného než jak je uvedeno v dokumentaci na php.net ? Bych se divil. Jo s tím je potřeba počítat při každém takovém upgradu z jedné větve do jiné.
Udělal jsem si stránku zkouska.php a vložil do ní kód:
<?php
$zkouska = "";
if(isset($zkouska)) echo('Vyplněno');
else echo('Nevyplněno');
Když sem otevřel stránku zkouska.php v prohlížeči, tak mi to vypsalo ,,Vyplněno'' a i když sem přidal do proměnné ,,zkouska'' text, tak taky stejný výsledek ... Ta funkce prostě ignoruje co se po ní žádá ...
Cože???? To je nesmysl. To co popisuješ je naprosto správně. Jak jsem psal výše... tato funkce zjišťuje zda-li je daná proměnná definovaná v daném rozsahu, což v obou případech je splněno... proto to vypisuje v obou "Vyplněno"!
-
Nastuduj si, prosím, nejdříve, co isSet() vlastně dělá. Přiřazením $zkouska = ""; definuješ proměnnou $zkouska a přiřadíš jí hodnotu "", proměnná tedy je definovaná, je nastavená, IS SET.
V daném případě pomocí isSet() zjistíš, jestli odeslaný formulář obsahoval vstup daného jména, tedy jestli tam to políčko je nebo není. Nikoliv jestli je vyplněné.
A hlavně přestaň všechno, co ti nefunguje, označovat termínem bug. Většinou to toitž chodí tak, že to nefunguje proto, že s tím jeden zachází špatně.
-
Takovéhle věci prosím řeš na programátorských forech. Tenhle, ani tenhle: http://forum.ubuntu.cz/index.php?topic=62152.0 topic s Ubuntu vůbec nesouvisí. Další takovéhle "bugy" budu uzavírat.