Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: PHP - bug function isset  (Přečteno 1925 krát)

{V} P $ y c h o {V}

  • Návštěvník
  • *
  • Příspěvků: 72
    • Zobrazit profil
PHP - bug function isset
« kdy: 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 :/

Martin - ViPEr*CZ*

Re:PHP - bug function isset
« Odpověď #1 kdy: 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) {
   ...
}
Open source is gold way... Mint 17.2, Debian 8.1 Jessie| Ubuntu Wiki (návody) | Google vyhledávač | Qt4 návody

{V} P $ y c h o {V}

  • Návštěvník
  • *
  • Příspěvků: 72
    • Zobrazit profil
Re:PHP - bug function isset
« Odpověď #2 kdy: 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 :( ...

Martin - ViPEr*CZ*

Re:PHP - bug function isset
« Odpověď #3 kdy: 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é.
Open source is gold way... Mint 17.2, Debian 8.1 Jessie| Ubuntu Wiki (návody) | Google vyhledávač | Qt4 návody

{V} P $ y c h o {V}

  • Návštěvník
  • *
  • Příspěvků: 72
    • Zobrazit profil
Re:PHP - bug function isset
« Odpověď #4 kdy: 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á ...

Martin - ViPEr*CZ*

Re:PHP - bug function isset
« Odpověď #5 kdy: 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"!
Open source is gold way... Mint 17.2, Debian 8.1 Jessie| Ubuntu Wiki (návody) | Google vyhledávač | Qt4 návody

mka

  • Závislák
  • ****
  • Příspěvků: 1907
  • Chybovat je moje.
    • Zobrazit profil
    • Příložany Cé Zet
Re:PHP - bug function isset
« Odpověď #6 kdy: 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ě.
« Poslední změna: 29 Března 2012, 09:49:36 od mka »

Martin Šácha

  • Člen občanského sdružení Ubuntu ČR a placené komunitní podpory
  • Administrátor fóra
  • Guru
  • ******
  • Příspěvků: 5153
    • Zobrazit profil
Re:PHP - bug function isset
« Odpověď #7 kdy: 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.
« Poslední změna: 29 Března 2012, 11:21:11 od Martin "sachy" Šácha »
Mint MATE 64bit / DuckDuckGo.com
Programátoři považují WYSIWYG za špatné u kódu i u žen. Programátor chce "dostat to, co žádá“ – kód tajemný, neodpouštějící, nebezpečný.

 


Provoz zaštiťuje spolek OpenAlt.