warning undefined constant
Na een overschakeling van een oude wamp naar wampserver 2 krijg ik nu steeds de foutmelding:
undefined constant index.
Dit krijg ik op vele plaatsen, dus lijkt het me eenvoudigst om deze melding af te zetten.
Kan ik enkel dit uitzetten en andere foutmeldingen wel nog verkrijgen?
Alvast bedankt voor de hulp!
Dat is net alsof je een nieuwe broek over je net afgehakte been aantrekt. Het bloed nog steeds.
Je moet die foutmeldingen oplossen, verbeteren, zorgen dat het script niet meer fout is.
Waarschijnlijk doe jij dingen als $_GET[blabla], wat dus natuurlijk $_GET['blabla'] moet zijn.
Maar zonder relevante code kan ik niet zeggen wat er mis gaat.
(Bij een live website zet je de foutmeldingen wel af.)
En als je toch leuk errors aan het opruimen bent, maak er gelijk strict van:
Gewijzigd op 01/01/1970 01:00:00 door Afra ca
Afra schreef op 18.01.2010 22:28:
Het uitzetten van errors wordt altijd afgeraden, en niet zonder reden.
Alleen op een live website dus juist wel, dan moet je zorgen voor goede foutafhandeling (voor bijvoorbeeld mysql).
Want hackers kunnen de php waarschuwingen gebruiken om misbruik te maken van de website. Bijvoorbeeld als php aangeeft dat een query mislukt is omdat er een onbekende quote is.
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
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
<?php
// Turn off all error reporting
error_reporting(0);
// Report simple running errors
error_reporting(E_ERROR | E_WARNING | E_PARSE);
// Reporting E_NOTICE can be good too (to report uninitialized
// variables or catch variable name misspellings ...)
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
// Report all errors except E_NOTICE
// This is the default value set in php.ini
error_reporting(E_ALL ^ E_NOTICE);
// Report all PHP errors (see changelog)
error_reporting(E_ALL);
// Report all PHP errors
error_reporting(-1);
// Same as error_reporting(E_ALL);
ini_set('error_reporting', E_ALL);
?>
// Turn off all error reporting
error_reporting(0);
// Report simple running errors
error_reporting(E_ERROR | E_WARNING | E_PARSE);
// Reporting E_NOTICE can be good too (to report uninitialized
// variables or catch variable name misspellings ...)
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
// Report all errors except E_NOTICE
// This is the default value set in php.ini
error_reporting(E_ALL ^ E_NOTICE);
// Report all PHP errors (see changelog)
error_reporting(E_ALL);
// Report all PHP errors
error_reporting(-1);
// Same as error_reporting(E_ALL);
ini_set('error_reporting', E_ALL);
?>
Meestal zegt men dit:
http://phptuts.nl/view/39/12/
Want het gaat hier om een redelijk grote website.
Je zet de foutmeldingen niet uit,, je zorgt alleen dat je zelf alle foutmeldingen afvangt.
Daardoor is het niet meer nodig om de foutmelding aan te laten staan.
Weet trouwens iemand of het ook mogelijk is om PHP alle error's als Excpetion te laten gooien?
nico schreef op 18.01.2010 23:06:
@Karl,
Je zet de foutmeldingen niet uit,, je zorgt alleen dat je zelf alle foutmeldingen afvangt.
Daardoor is het niet meer nodig om de foutmelding aan te laten staan.
Weet trouwens iemand of het ook mogelijk is om PHP alle error's als Excpetion te laten gooien?
Je zet de foutmeldingen niet uit,, je zorgt alleen dat je zelf alle foutmeldingen afvangt.
Daardoor is het niet meer nodig om de foutmelding aan te laten staan.
Weet trouwens iemand of het ook mogelijk is om PHP alle error's als Excpetion te laten gooien?
Nee, je zet ze dus wel uit, want php kan niet alles als exception gooien o.i.d. geloof ik. Wat dus weer betekend dat je wel een error krijgt (maar ook gelijk afhandelt).
Of je moet weer met set_error_handler gaan klooien.
Wel jammer dat php niet alles als Exception kan gooien, dan had je veel meer mogelijkheden gehad, ook omdat je dan alle fouten had kunnen loggen, zonder dat de user daar echt last van heeft.
Wat is er dan zo anders in deze php.ini?
Graag wat duiding, alvast bedankt!
Mogelijk staat de display_errors instelling uit? In dat geval wordt er geen enkele foutmelding weergegeven. Verder zou je ook kunnen kijken naar de error_reporting instelling in je php.ini, alhoewel je die ook in je PHP script kunt manipuleren.
Welke php versie staat erop,
welke Apache versie?
de appache is:
Apache/2.2.4 (Win32)
de php is 5.2.3
in php.ini staat:
error_reporting 6135
display_errors staat op on.
Met deze configuratie krijg ik geen notice te zien.
Kunnen jullie hermee iets meer doen?
In ieder geval bedankt!
Gewijzigd op 01/01/1970 01:00:00 door Andy De Clercq
heb je wel de goeie gewijzigd?
Thuis op mijn wampserver 2 wel.
Liefst zou ik die notice toestanden weg hebben, maar wel nog de foutmeldingen krijgen die ervoor zorgen dat je script niet meer loopt.
De eigenlijke errors dus.
Welke instelling moet ik hiervoor aanpassen en hoe?
Alvast bedankt!
waarom zou je je notices weg willen hebben,, dan weet je nooit of je iets misschien fout doet.
Ondier die wamp5 ging alles vrij vlot maar nu met die nieuwe wampserver 2 komen die notice toestanden.
Zelf had ik dit nog nooit gezien, dus zou ik al de bestanden van mijn voorgangers moeten gaan nazien want dit probleem komt héél vaak terug. Dat zie ik niet zitten.
Wat ik zeker wel wil doen is voor mezelf deze controle behouden en er voor zorgen dat mijn php "proper" is.
Op die manier leer ik behoorlijk programmeren.
zou onderstaande code op de pagina's met "oude" php kunnen helpen?
Of heeft dit invloed op al mijn pagina's?
Maar dan moet je even goed kijken,, want volgens mij wil je allen E_FATAL laten zien.
Zal die vanavond wel eens testen en zien wat dat geeft. Want zoals ik al zei ben ik zelf geen voorstander van dergelijk "gedoog" beleid en zal ik dit enkel gebruiken om die "oude php" zonder problemen verder te kunnen gebruiken.
In elk geval vriendelijk bedankt voor alle reacties, ik laat het resultaat van de tests dan melden.