Voi ignorati NOTICE:(E_ALL) ?

Secţiune dedicată începatorilor.

Moderatori: Moderatori, Start Moderator

gabi3xz
Junior Member
Mesaje: 31
Membru din: Vin Dec 23, 2011 2:31 pm
Localitate: Bacau

Voi ignorati NOTICE:(E_ALL) ?

Mesajde gabi3xz » Vin Dec 30, 2011 6:28 pm

Am adaugat si eu pe pagina error_reporting(E_ALL); si am vazut ca am multe NOTICE:... voi le ignorati sau le rezolvati? 8O

Si daca le rezolvati cum se face? :pale:

De exemplu am la un cod un NOTICE

Cod: Selectaţi tot

 while ($row = mysql_fetch_assoc($login)) {
           $db_password = $row['password'];
           if (sha1($password)==$db_password)
              $loginok = TRUE;
           else
               $loginok = FALSE;
      }
       if ($loginok==TRUE)
           {
            etc...

imi zice
Notice: Undefined variable: loginok in ... (aici if ($loginok==TRUE))



dechim
Senior Member
Mesaje: 1486
Membru din: Mar Mai 10, 2005 11:53 pm
Localitate: Drobeta Turnu Severin

Mesajde dechim » Vin Dec 30, 2011 8:57 pm

In faza de proiectare este nevoie de E_ALL pentru a le vedea si elimina. In exploatare nu! De ce sa le vada toti?!?

Avatar utilizator
Birkoff
Senior Member
Mesaje: 6380
Membru din: Joi Mar 18, 2004 2:34 pm
Localitate: Bucuresti
Contact:

Mesajde Birkoff » Vin Dec 30, 2011 10:36 pm

la proiectele personale lucrez cu e_all si rezolv toate erorile care apar (inclusiv notice)

ulterior in faza de productie, loghez intr-un fisier de erori toate erorile si notice-urile care apar si le rezolv si pe alea...

la job insa lucrurile stau diferit, la fiecare firma pe unde am lucrat lucrurile difereau (de obicei se pune accent pe rapiditate apoi pe securitate, restul nu conteaza atata timp cat functioneaza fara probleme)

in legatura cu cealalta problema a ta, te folosesti de variabila respectiva fara sa o initializezi inainte de folosire.

normal se face asa:

// daca variabila va contine string
$ceva = NULL; // sau pui direct valoarea initiala in ea
// daca variabila va fi de tip array
$ceva = array();
// daca variabila va fi booleana
$ceva = true; // sau false depinde ce e nevoie

mai departe te poti folosi de variabila in verificarile tale (if, foreach etc)

problema la codul tau de mai sus e ca in situatia in care nu se executa bucla while sau nu corespunde nici una din verificarile din el nu se seteaza acea variabila si atunci normal ca iti va da eroare mai jos la if...
regula e sa initializezi variabila cu o valoare (in cazul tau false) inainte de while apoi restul codului e ok
1) CMS, ERP, CRM, etc... (doar pentru clienti))
2) Portofoliu, servicii, contact, blog
3) Folositi aceasta clasa sql in proiectele voastre (open source)
4) Vrei un magazin virtual la cheie, usor de folosit, cu api-uri incluse pentru maximizarea vanzarilor si multe alte facilitati? Da un semn si discutam.

AJalex
Average Member
Mesaje: 76
Membru din: Sâm Sep 27, 2008 3:54 pm

Mesajde AJalex » Sâm Dec 31, 2011 1:53 pm

Notice-urile nu prea creaza incomodari ... deci le poti ignora (error_reporting(0) ) ... dar restul e cel mai bine sa incerci sa le rezolvi deoarece nu sti niciodata ce probleme vor aparea in viitor din cauza lor.

Sugerez sa folosesti si E_STRICT. La unele erori iti ofera si o indrumare pentru rezolvare, dar doar la unele.


Înapoi la “PHP Incepători”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 3 vizitatori