Undefined variable
Beste allemaal,
Ik zou graag eens een probleempje (uitdaging) bij jullie neerleggen.
Ik krijg een notice:
Undefined variable: context op Regel: 1788
Op deze regel begint het volgende stukje code:
if (!$spider_match || $context['user']['is_guest'])
is_not_guest();
Nu denk ik dat ik dit kan oplossen met isset. Het probleem echter is dat ik geen PHP held ben die precies weet hoe hij dit kan toepassen binnen dit stukje code.
Ik hoop dat jullie mij kunnen helpen.
Bij voorbaat dank!
Dit is een hulp-forum. Dat er Hulp gevraagd is weten de meeste mensen wel. -> Topic titel veranderd.[/modedit]
Ik zou graag eens een probleempje (uitdaging) bij jullie neerleggen.
Ik krijg een notice:
Undefined variable: context op Regel: 1788
Op deze regel begint het volgende stukje code:
if (!$spider_match || $context['user']['is_guest'])
is_not_guest();
Nu denk ik dat ik dit kan oplossen met isset. Het probleem echter is dat ik geen PHP held ben die precies weet hoe hij dit kan toepassen binnen dit stukje code.
Ik hoop dat jullie mij kunnen helpen.
Bij voorbaat dank!
Dit is een hulp-forum. Dat er Hulp gevraagd is weten de meeste mensen wel. -> Topic titel veranderd.[/modedit]
Gewijzigd op 24/01/2011 15:48:42 door Jens V
Hij herkent de $context niet, weet je zeker dat je die hiervoor hebt gedefinieerd en je kan deze inderdaad checken door isset dat doe je zo:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?php if (!empty($modSettings['enabled_spider']))
{
$enabled_spider = explode(",", preg_replace("/(\[^a-ZA-Z0-9,])/", "", $modSettings['enabled_spider']));
foreach ($enabled_spider as $key => $value)
if (empty($value))
unset($enabled_spider[$key]);
}
else
$enabled_spider = array();
$spider_match = false;
if (!empty($modSettings['enable_spiderAccess']))
{
foreach($enabled_spider as $spider)
{
preg_match('/' . $spider . '/', $_SERVER['HTTP_USER_AGENT'], $matches);
if(count($matches) > 0)
$spider_match = true;
}
}
if (!$spider_match || $context['user']['is_guest'])
is_not_guest(); ?>
{
$enabled_spider = explode(",", preg_replace("/(\[^a-ZA-Z0-9,])/", "", $modSettings['enabled_spider']));
foreach ($enabled_spider as $key => $value)
if (empty($value))
unset($enabled_spider[$key]);
}
else
$enabled_spider = array();
$spider_match = false;
if (!empty($modSettings['enable_spiderAccess']))
{
foreach($enabled_spider as $spider)
{
preg_match('/' . $spider . '/', $_SERVER['HTTP_USER_AGENT'], $matches);
if(count($matches) > 0)
$spider_match = true;
}
}
if (!$spider_match || $context['user']['is_guest'])
is_not_guest(); ?>
Dit is het stuk code waar het om gaat.
Wat ik niet helemaal snap is, ik definieer $context bovenin het document (global).
Gewijzigd op 24/01/2011 12:22:47 door Barry Meijer
zou je alsjeblieft alleen even de code willen plaatsen die relevant is ?
niemand hier heeft zin om 1443 regels aan code door te spitten.
niemand hier heeft zin om 1443 regels aan code door te spitten.
Excuses :) Het is aangepast.
Toevoeging op 24/01/2011 14:05:43:
Het is gelukt! :) Hartelijk dank!
Toevoeging op 24/01/2011 14:05:43:
Het is gelukt! :) Hartelijk dank!
Een notice is geen error; een notice is ook geen warning.
Vertaal eens dat woord; het betekent iets als "merk op".
Wat php jou probeert te vertellen:
Jij vraagt:
is $context['user']['is_guest'] gelijk aan true?
Nu, als $context niet gedefinieerd is, en dus niet bestaat, bestaat $context['user'] ook niet en $context['user']['is_guest'] zeker niet.
Vergelijk het wat met iemand die vraagt: "Wie is de onderdirecteur van Duff beer?"
Dan denk je: "Duff" bestaat niet eens, dus er is sowieso ook geen directeur. Laat staan dar er een onderdirecteur zou kunnen zijn.
Oplossing:
1) met isset() of empty().
2)zet je error reporting wat soepeler, op bv.
error_reporting(E_ERROR | E_WARNING | E_PARSE);
Vertaal eens dat woord; het betekent iets als "merk op".
Wat php jou probeert te vertellen:
Jij vraagt:
is $context['user']['is_guest'] gelijk aan true?
Nu, als $context niet gedefinieerd is, en dus niet bestaat, bestaat $context['user'] ook niet en $context['user']['is_guest'] zeker niet.
Vergelijk het wat met iemand die vraagt: "Wie is de onderdirecteur van Duff beer?"
Dan denk je: "Duff" bestaat niet eens, dus er is sowieso ook geen directeur. Laat staan dar er een onderdirecteur zou kunnen zijn.
Oplossing:
1) met isset() of empty().
Code (php)
2)zet je error reporting wat soepeler, op bv.
error_reporting(E_ERROR | E_WARNING | E_PARSE);




