Provider is over van 5.3 naar 5.4 en krijg nu alleen maar: Notice: Undefined variable:
Loop tegen het probleem aan dat bij v5.4 enkele functies uit zijn gezet, weet niet welke ervoor zorgt dat nu de site vol staat met foutmeldingen mbt: Notice: Undefined variable:
Om mijn probleem op te lossen heb ik op de site zelf een onderhoudsscherm geplaatst, en de hele omgeving in wamp (WampServer Version 2.5 met php v5.5) gezet!
De site opbouw is als volgt:
Maak geen gebruik van een DB maar een bestand, hierin zijn de variabelen gevuld met waarden. Bijvoorbeeld:
// -------------------------------------------------------------------------------------------/
//*ALGEMENE ITEMS WEBSITE*/
// -------------------------------------------------------------------------------------------/
$C_FL_SITE_METAKEYWORD = "fm utrecht";
$C_FL_SITE_METADESCRIPTION = "";
$C_FL_ADRES_HTMLSTR = "";
$C_FL_CONTACTFORM =
// -------------------------------------------------------------------------------------------/
//*HOOFDMENU ITEMS*/
// -------------------------------------------------------------------------------------------/
$C_FL_HOOFDMENU_ITEM_PRAKTIJK_ID = 100000201000;
$C_FL_HOOFDMENU_ITEM_PRAKTIJK_PARENT_ID = 0;
$C_FL_HOOFDMENU_ITEM_PRAKTIJK_HEEFTSUBPAGINASBOOL = false;
$C_FL_HOOFDMENU_ITEM_PRAKTIJK_FILENAMESTR = "fm.php";
$C_FL_HOOFDMENU_ITEM_PRAKTIJK_MENU_TITELSTR = "praktijk";
$C_FL_HOOFDMENU_ITEM_PRAKTIJK_METAKEYWORD = $C_FL_SITE_METAKEYWORD;
$C_FL_HOOFDMENU_ITEM_PRAKTIJK_METADESCRIPTION = $C_FL_SITE_METADESCRIPTION;
$C_FL_HOOFDMENU_ITEM_PRAKTIJK_HTMLSTR = $C_FL_CONTENT_ITEM_PRAKTIJK_HTMLSTR;
* ik heb om privacy redenen wat variabelen geleegd *
Deze variabelen worden door de hele site aangeroepen, werkte perfect t/m php v5.3. Nu is het een drama, scherm staat vol met:
Notice: Undefined variable: C_FL_CONTENT_FYSIOTHERAPIE_HTMLSTR in C:\wamp\www\_const.php on line 33
# Time Memory Function Location
1 0.0010 241048 {main}( ) ..\index.php:0
2 0.0010 314184 include( 'C:\wamp\www\functies.php' ) ..\index.php:5
3 0.0010 417248 include( 'C:\wamp\www\_const.php' ) ..\functies.php:6
Alle variabelen staan in _const.php, de intellegentie staat in: functies.php (opbouw van de pagina, gevuld met de variabelen). Per onderwerp is er een content file, zo is de index.php bedoeld als home pagina die de juiste paginagegevens aanroept uit functies en de content uit _const.php.
Inhoud van index.php ziet er als volgt uit:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
// top of page
include("functies.php");
include("_const.php");
//bovenkant pagina
top($C_FL_HOOFDMENU_ITEM_PRAKTIJK_ID, $C_FL_HOOFDMENU_ITEM_PRAKTIJK_TITELSTR, '');
echo "<p STYLE='margin-top: 0px;'>
".$C_FL_HOOFDMENU_ITEM_PRAKTIJK_HTMLSTR."
</p>";
//bottom of page
bottom($C_FL_HOOFDMENU_ITEM_PRAKTIJK_ID);
?>
// top of page
include("functies.php");
include("_const.php");
//bovenkant pagina
top($C_FL_HOOFDMENU_ITEM_PRAKTIJK_ID, $C_FL_HOOFDMENU_ITEM_PRAKTIJK_TITELSTR, '');
echo "<p STYLE='margin-top: 0px;'>
".$C_FL_HOOFDMENU_ITEM_PRAKTIJK_HTMLSTR."
</p>";
//bottom of page
bottom($C_FL_HOOFDMENU_ITEM_PRAKTIJK_ID);
?>
Geen idee wat ik moet doen, zit al sinds gisterenmiddag aan het zoeken op internet naar en oplossing. Veel gelezen maar (nog) geen werkende oplossing. Wie help mij?
Op welke regels? (Staat in de Notice regel).
Gewijzigd op 19/06/2015 14:29:25 door Randy vsf
$C_FL_HOOFDMENU_ITEM_PRAKTIJK_TITELSTR en $C_FL_CONTENT_ITEM_PRAKTIJK_HTMLSTR
Wordt _const.php wel geinclude()?
Staat error_reporting(E_ALL) aan?
Gewijzigd op 19/06/2015 14:37:33 door - SanThe -
Verder is het de bedoeling dat je met isset() controleert of de variabelen bestaan. met 300 variabelen is wel een hoop werk, maar je hebt al een tijdelijk lapmiddel.
Gewijzigd op 19/06/2015 14:36:38 door - Ariën -
Verder kan ik ook aangeven dat het ondoenlijk is alle variabelen te benoemen in deze melding, vertrouw er op dat ze er zijn. Zoals eerder aangegeven de site werkte als een zonnetje tot de ISP van PHP v5.3 naar PHP v5.4 ging. Vanaf dat moment is het bagger.
Dank -Aar-, wel heel grappig hoe die regel werkt. Ben ineens van alle foutmeldingen af!!
Feit blijft dat er iets niet -meer- goed gaat vanaf v5.4, kun je aangeven waar ik de isset() moet toepassen. Als dat alleen in de _const.php is, is het even werk maar als dit het oplost doe ik dit met alle liefde. Als dit door de hele site moet telkens als een var wordt aangeroepen, dan ben ik nog wel even bezig ben ik bang.
Heb 1 var uit de _const.php gehaald:
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
$C_FL_CONTENT_BEHANDELRESULTATEN_HTMLSTR = "
In verschillende publicaties werd gemeld dat voldoende tot optimaal
resultaat werd behaald bij meer dan 80% van de verwezen patiënten bij
een gemiddelde van vier behandelingen.
";
?>
$C_FL_CONTENT_BEHANDELRESULTATEN_HTMLSTR = "
In verschillende publicaties werd gemeld dat voldoende tot optimaal
resultaat werd behaald bij meer dan 80% van de verwezen patiënten bij
een gemiddelde van vier behandelingen.
";
?>
Kun je aangeven -Aar- hoe -en waar- ik dan de isset() moet toepassen?
Uiteindleijk zal deze var aangeroepen worden vanuit de relevante content file (fm-behandelresultaten.php):
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
// top
include ("functies.php");
include ("_const.php");
//bovenkant pagina
top($C_FL_HOOFDMENU_ITEM_THERAPIEEN_ID, $C_FL_SUBMENU_ITEM_MANUELETHERAPIE_ID, $C_FL_SUB_SUBMENU_ITEM_BEHANDELRESULTATEN_ID);
echo "<p STYLE='margin-top: 0px;'>
".$C_FL_CONTENT_BEHANDELRESULTATEN_HTMLSTR."
</p>";
echo" ".$C_FL_SUB_SUBMENU_ITEM_BEHANDELRESULTATEN_PRINTSTR."";
//onderkant pagina
bottom($C_FL_HOOFDMENU_ITEM_THERAPIEEN_ID);
?>
// top
include ("functies.php");
include ("_const.php");
//bovenkant pagina
top($C_FL_HOOFDMENU_ITEM_THERAPIEEN_ID, $C_FL_SUBMENU_ITEM_MANUELETHERAPIE_ID, $C_FL_SUB_SUBMENU_ITEM_BEHANDELRESULTATEN_ID);
echo "<p STYLE='margin-top: 0px;'>
".$C_FL_CONTENT_BEHANDELRESULTATEN_HTMLSTR."
</p>";
echo" ".$C_FL_SUB_SUBMENU_ITEM_BEHANDELRESULTATEN_PRINTSTR."";
//onderkant pagina
bottom($C_FL_HOOFDMENU_ITEM_THERAPIEEN_ID);
?>
Gewijzigd op 19/06/2015 14:59:02 door Gerrit Bakker
Gerrit Bakker op 19/06/2015 14:28:42:
het gaat om alle $vars!
Weet je zeker dat ie dat bestand include()?
Is het path goed?
Doe eens een echo van zo'n var direct na de include().
Krijg je dan ook direct een notice?
PHP 5.4 staat gewoon wat strenger afgesteld, maar de "fouten" waren ook al aanwezig in 5.3, het is niet alsof 5.4 nu ineens functionaliteit breekt volgens mij.
Beste Thomas, dank voor je verheldering een hele opluchting! Aan jouw dan de vraag of je ook kunt aangeven wat ik dan fout doe.
Gewoon 1 voor 1 aflopen en besluiten wat er in elk van de gevallen moet gebeuren.
Dat, of je past je error_reporting aan zoals Aar aangaf.
Maar dat laatste is dus een beetje het onder het tapijt vegen van fouten naar mijn mening.
EDIT: EN mogelijk een bron van complexere fouten, die veel meer tijd kosten om op te lossen! Ik zou dit dus preventief al doen.
Gewijzigd op 19/06/2015 16:08:30 door Thomas van den Heuvel
Begrijp ondertussen ook dat het redelijk lastig uit te leggen hoe de site werkt, terwijl het in mijn beleving redelijk recht door zee is met die afwijking, dat ik een bestand gebruik met alle constanten ipv een DB.
Gerrit Bakker op 19/06/2015 16:27:26:
de tip van Aars
I LOLed.
PHP zegt toch echt "undefined variable" dus PHP kent deze niet... Ik zou er toch een keer met de fijne kam doorheen gaan.