[php] Undefined variable & undefined index

Pagina: 1
Acties:
  • 124 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

  • niels_999348
  • Registratie: Maart 2003
  • Laatst online: 07:13
Sinds een tijdje krijg ik lijsten met meldingen van php over mijn vars. Waarschijnlijk is dit gekomen door een verandering in php.ini maar ik heb geen idee wat het zou zijn en heb al verschillende dingen geprobeerd.
:? Zo zien de vars eruit:
$_COOKIE["gebruikersnaam"]
$_SESSION["gebruikersnaam"]
En zo de errors:
(oja dit komt op elke pagina (door includes))

[04-Jun-2003 17:47:15] PHP Notice: Undefined index: gebruikersnaam in c:\phpdev\www\skateboarden\include\onder.php on line 31
[04-Jun-2003 17:47:15] PHP Notice: Undefined variable: gebruikersnaam in c:\phpdev\www\skateboarden\include\onder.php on line 31
[04-Jun-2003 17:47:15] PHP Notice: Use of undefined constant gast - assumed 'gast' in c:\phpdev\www\skateboarden\include\onder.php on line 32
[04-Jun-2003 17:47:15] PHP Notice: Use of undefined constant gebruikersnaam - assumed 'gebruikersnaam' in c:\phpdev\www\skateboarden\include\onder.php on line 38
[04-Jun-2003 17:47:15] PHP Notice: Undefined index: gebruikersnaam in c:\phpdev\www\skateboarden\include\onder.php on line 38
[04-Jun-2003 17:47:15] PHP Notice: Use of undefined constant PHP_SELF - assumed 'PHP_SELF' in c:\phpdev\www\skateboarden\include\onder.php on line 41
[04-Jun-2003 17:47:15] PHP Notice: Use of undefined constant REMOTE_ADDR - assumed 'REMOTE_ADDR' in c:\phpdev\www\skateboarden\include\onder.php on line 42

Acties:
  • 0 Henk 'm!

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 02-09 11:02

D2k

isset()

Doet iets met Cloud (MS/IBM)


Acties:
  • 0 Henk 'm!

  • G33rt
  • Registratie: Februari 2002
  • Laatst online: 22-06-2022
als de var niet geset, moet je hem ="" maken

if(!isset($var))
{
$var="";
}

wat D2k zegt dus :+

zo doe ik het altijd, maar ik ben nog vreselijk nieuw, dus echt netjes zal het wel niet zijn eh ;)

[ Voor 42% gewijzigd door G33rt op 03-07-2003 09:32 ]


Acties:
  • 0 Henk 'm!

  • niels_999348
  • Registratie: Maart 2003
  • Laatst online: 07:13
En dit moet ik dan voor elke var aan het begin doen??

Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

je error_reporting staat waarschijnlijk hoger waardoor je nu gedwongen wordt netter te programmeren ;)

if ($_SESSION['gebruikersnaam'])

vervangen door

if (isset($_SESSION['gebruikersnaam']) && $_SESSION['gebruikersnaam'] != '')

en

$array[blaat]

vervangen door

$array['blaat']

Intentionally left blank


Acties:
  • 0 Henk 'm!

  • niels_999348
  • Registratie: Maart 2003
  • Laatst online: 07:13
Maar eerst had ik het nog niet. Ik laat alle errors loggen in errors.txt maar daar kwam nog niks in voor.

Acties:
  • 0 Henk 'm!

  • G33rt
  • Registratie: Februari 2002
  • Laatst online: 22-06-2022
niels_999 schreef op 03 July 2003 @ 09:34:
Maar eerst had ik het nog niet. Ik laat alle errors loggen in errors.txt maar daar kwam nog niks in voor.
dan staat error reporting nu hoger, je kan er ook voor kiezen of alles gelogt word maar niet op het scherm komt, etc etc ;)

als je mijn oplossing gebruikt moet het inderdaad voor elke variabele, maar zoals crisp zei werkt het natuurlijk ook

[ Voor 12% gewijzigd door G33rt op 03-07-2003 09:39 . Reden: typo :P ]


Acties:
  • 0 Henk 'm!

  • niels_999348
  • Registratie: Maart 2003
  • Laatst online: 07:13
Maar die fouten kwamen toen niet in de gelogte files en eerst had ik ook alle fouten aanstaan, en in eenkeer kwam die heermee. Maar ik zal het wel voor elke var gaan doen.
Rotwerk!

Acties:
  • 0 Henk 'm!

  • G33rt
  • Registratie: Februari 2002
  • Laatst online: 22-06-2022
niels_999 schreef op 03 juli 2003 @ 09:43:
Maar die fouten kwamen toen niet in de gelogte files en eerst had ik ook alle fouten aanstaan, en in eenkeer kwam die heermee. Maar ik zal het wel voor elke var gaan doen.
Rotwerk!
als je heel veel vars heb is mijn oplossing inderdaad een klerewerk :)

heb em overigens gebruikt omdat ik nog flink aan het oefenen ben en die scripts maar 3 a 4 vars hebben die via get of post gaan ;)

Acties:
  • 0 Henk 'm!

  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 15-09 16:19

alienfruit

the alien you never expected

error_reporting( 0 )

Acties:
  • 0 Henk 'm!

Verwijderd

error_reporting(NONE); is het volgens mij.
Maar dat is een ranzige optie, je kan beter leren begrijpen waarom je die warnings krijgt.

Als je IETS met een variable gaat doen, moet je eerst kijken of die wel bestaat. (hij bestaat als er iets in staat) en dat doe je inderdaad met isset();

Ik zelf gebruikt error_reporting(E_ALL); dat is het hoogste error level en je programmeer skillz gaan er wel degelijk op vooruit :)

Acties:
  • 0 Henk 'm!

  • Swinnio
  • Registratie: Maart 2001
  • Laatst online: 16-09 07:50
Misschien een beetje offtopic, maar in plaats van
if (isset($var))
zou je toch ook gewoon
if ($var)
kunnen gebruiken. Of is dat minder netjes?

If the world wouldn't suck, we'd all fall off


Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Swinnio schreef op 03 juli 2003 @ 10:52:
[...]

Misschien een beetje offtopic, maar in plaats van
if (isset($var))
zou je toch ook gewoon
if ($var)
kunnen gebruiken. Of is dat minder netjes?
met isset() kijk je of een variabele (of een array index) ueberhaupt wel gedefinieerd is. Zoniet, dan zal if ($var) je een notice opleveren.
Verder zal if ($var) ook false opleveren als $var bijvoorbeeld 0 of '0' bevat

Intentionally left blank


Acties:
  • 0 Henk 'm!

  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 15-09 16:19

alienfruit

the alien you never expected

Ja, Maar lost wel het probleem op; want ik heb wel eens gehad dat ie warnings liet zien; terwijl het gewoon niet te fiksen viel.

Acties:
  • 0 Henk 'm!

Verwijderd

Eh... iedere warning is te fixen hoor :)
Kom jij maar eens met een warning (en code) die niet te fixen valt

Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

alienfruit schreef op 03 July 2003 @ 10:59:
Ja, Maar lost wel het probleem op; want ik heb wel eens gehad dat ie warnings liet zien; terwijl het gewoon niet te fiksen viel.
geef maar eens een voorbeeld, ik durf te wedden dat het wel degelijk op te lossen is ;)

edit: spuit-11 :P

[ Voor 4% gewijzigd door crisp op 03-07-2003 11:05 ]

Intentionally left blank


Acties:
  • 0 Henk 'm!

  • Swinnio
  • Registratie: Maart 2001
  • Laatst online: 16-09 07:50
crisp schreef op 03 July 2003 @ 10:56:
[...]

met isset() kijk je of een variabele (of een array index) ueberhaupt wel gedefinieerd is. Zoniet, dan zal if ($var) je een notice opleveren.
Verder zal if ($var) ook false opleveren als $var bijvoorbeeld 0 of '0' bevat
Je hebt helemaal gelijk. Omdat onze server echter ingesteld stond dat er geen notices getoond werden, ben ik me nooit van het verschil bewust geweest.
Heb nu even de notices in php.ini aangezet ;)

If the world wouldn't suck, we'd all fall off


Acties:
  • 0 Henk 'm!

Verwijderd

crisp schreef op 03 July 2003 @ 09:33:

if ($_SESSION['gebruikersnaam'])

vervangen door

if (isset($_SESSION['gebruikersnaam']) && $_SESSION['gebruikersnaam'] != '')
Dit is natuurlijk vrijwel hetzelfde als het veel kortere

if ( !empty ( $_SESSION [ 'gebruikersnaam' ] ) )

[ Voor 11% gewijzigd door Verwijderd op 03-07-2003 13:32 ]


Acties:
  • 0 Henk 'm!

  • Brakkie
  • Registratie: Maart 2001
  • Niet online

Brakkie

blaat

Systeem | Strava

Pagina: 1