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

Název: PHP - bug function isset
Přispěvatel: {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:
Kód: [Vybrat]
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 :/
Název: Re:PHP - bug function isset
Přispěvatel: Martin - ViPEr*CZ* 28 Března 2012, 19:24:19
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:

Kód: [Vybrat]
if(isset($_POST['_var_host']) && intVal($_POST['_var_host']) == 0) {
   ...
}
Název: Re:PHP - bug function isset
Přispěvatel: {V} P $ y c h o {V} 28 Března 2012, 19:37:30
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:

Kód: [Vybrat]
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 :( ...
Název: Re:PHP - bug function isset
Přispěvatel: Martin - ViPEr*CZ* 28 Března 2012, 19:43:06
Citace
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é.
Název: Re:PHP - bug function isset
Přispěvatel: {V} P $ y c h o {V} 28 Března 2012, 20:13:28
Citace
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:
Kód: [Vybrat]
<?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á ...
Název: Re:PHP - bug function isset
Přispěvatel: Martin - ViPEr*CZ* 28 Března 2012, 22:02:26
Citace
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:
Kód: [Vybrat]
<?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"!
Název: Re:PHP - bug function isset
Přispěvatel: mka 29 Března 2012, 09:45:52
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ě.
Název: Re:PHP - bug function isset
Přispěvatel: Martin Šácha 29 Března 2012, 11:18:10
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.