Napaka pri php-ju

Pozdravljeni,

vprašanje bi imel še pri tej operaciji. Zapisano sem imel tako

$textnovica = $POST['text_novica']

vendar mi je php error napisal undefine veriable. Sedaj pa sem to popravil tako, vendar ne vem ali je to podoben zapis? Nekaj podobnega sem našel na internetu vendar ne vem ali deluje tako, da ko ni nobenih spremenljivk da nastavi na 0 če pa je pa pošlje kar koli je pač zapisano v $POST['textnovica']. [ zadeva sicer deluje vendar bi vseeno raje še kakšno drugo mnenje ]

$textnovica = isset($POST['textnovica']) ? $POST['text_novica'] : 0;

Hvala za odgovor.

5 odgovorov

$textnovica = isset($POST['textnovica']) ? $POST['text_novica'] : 0;

je krajši zapis za

if(isset($POST['textnovica']))
$textnovica = $POST['textnovica'];
else
$text
novica = 0;

tako da dela prav.

2

Kar je krajši zapis

if (isset($_POST['text_novica']) {
    $text_novica = $_POST['text_novica']
}
else {
    $text_novica = 0
}

Ozirom kot je janko zapisal če imaš le eno vrstico lahko zavite oklepaje spustiš, ampak te shorhand varjante po mojem mnenju precej zmanjšujejo berljivost kode ki je zlata vredna ko se par mesecev pozneje vrneš k njej. Kot je blo enkrat omenjeno, če ne maraš zqvitih oklepajov raje prešaltaj na python. $_POST jr arraj ki drži vse spremenjivke iz post requesta, in če te spremenlkjivke ni notri dobiš warnining da je nedefinirana. Načeloma ti to ne polomi kode ampak ti lahko narobe hodi kasneje, zato te php opozori, in da se temu izognemo naredimo preverajne (isset), torej če obstaja naj bo ta vrednost drugače nastavimo neko privzeto vrednost (0, false, '' ipd.)

1

Pa direktna uporaba $POST, $GET spremenljivk načeloma tudi ni najbolj varna. Nekako velja eno zlato pravilo, da vsako vrednost, ki jo vnaša uporabnik prečistiš in preveriš ali je vrednost znotraj dovoljenih kriterijev.

2

Hvala vsem za obrazložitev :)