Autor Zpráva
T-ony
Profil
Dobrý den, včera jsem před všechny skripty dal

ini_set('display_errors', 'On');
error_reporting(E_ALL);

Následovalo nepříjemné zjištění, a plno výpisu.
Některé funkce jsem měl zastarale - nahradil (kvůli tomu že by v budoucnu nemuseli jít).
Ale pak tam mám chyby např.

if(array_key_exists("iden_$identifikator", $poslany_produkt)){..

Upozorňuje že promena poslany produkt není pole.

V první fázi proměna není pole ale jak na dané stránce uživatel odešle formulář tak tato chyba zmizí - uživatel vytvořil dané pole.
(Další ostatní chyby jsou kvůli stejnému problemu )

Můžu tuto chybu zanedbat ? díky
joe
Profil
T-ony:
Jak plníš proměnnou $poslany_produkt?
Borius
Profil
T-ony:
Raději bych ošetřil i to, zda proměnná pole je:
if ((is_array('poslany_produkt')) &&(array_key_exists("iden_$identifikator", $poslany_produkt))){…}
joe
Profil
Borius:
Když už, tak takhle is_array($poslany_produkt)
T-ony
Profil
joe:
Borius

if(is_array($poslany_produkt)){
   if(array_key_exists("iden_$identifikator", $poslany_produkt)){....}
}

bez te kontroly is_array
mi to vypíše Warning: array_key_exists() expects parameter 2 to be array, null given in

a s ní mi tam zůstane už jenom oznámení Notice: Undefined variable: poslany_produkt

Oznámení nevadí ?
Joker
Profil
T-ony:
Celá kontrola by asi byla:
if(isset($poslany_produkt) && is_array($poslany_produkt))

To nebude házet ani tu poznámku (notice)
Borius
Profil
joe:
Když už, tak takhle is_array($poslany_produkt)
Jojo, díky za opravení.

T-ony:
Undefined variable: poslany_produkt
V tom případě je vhodné přidat i další ošetření:
…&&(isset($poslany_produkt))…
joe
Profil
T-ony:
Problém je spíš v tom, kde tento kus kódu vlastně vůbec máš, protože evidentně ne na správném místě.

V první fázi proměna není pole ale jak na dané stránce uživatel odešle formulář tak tato chyba zmizí - uživatel vytvořil dané pole.
Proč ten kód nemáš až tam, kde ta proměnná pole je, ale takto ho zbytečně podmínkuješ?
Joker
Profil
Borius:
Poznámka, ty operandy musejí být obráceně, is_array && isset bude notice házet pořád, musí to být isset && is_array (čímž se u nenastavené proměnné is_array vůbec nevyhodnotí a nevyhodí poznámku).
T-ony
Profil
Joker, joe, Borius:
Mám to celý blbě řešený - učím se na tom.
Jinak vše ok po nastavení if(isset($poslany_produkt) and is_array($poslany_produkt)){..
takže díky moc

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: