Provider is over van 5.3 naar 5.4 en krijg nu alleen maar: Notice: Undefined variable:

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Gerrit Bakker

Gerrit Bakker

19/06/2015 14:11:54
Quote Anchor link
Hallo,
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)
PHP script in nieuw venster Selecteer het PHP script
1
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);

?>




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?
 
PHP hulp

PHP hulp

16/01/2025 00:49:05
 
- SanThe -

- SanThe -

19/06/2015 14:22:07
Quote Anchor link
Om welke $vars gaat het?
Op welke regels? (Staat in de Notice regel).
 
Randy vsf

Randy vsf

19/06/2015 14:22:12
Quote Anchor link
Verkeerd gelezen, maar die variable die je aanroept bestaat niet.
Gewijzigd op 19/06/2015 14:29:25 door Randy vsf
 
Gerrit Bakker

Gerrit Bakker

19/06/2015 14:28:42
Quote Anchor link
Beste - SanThe - het gaat om alle $vars! Voor alle duidleijkheid, _const.php bevat iets meer dan 300 $vars. Heb al aangegeven dat ik ipv een DB met een bestand werk.

Heb ook het idee dat het iets basaals is...
Gewijzigd op 19/06/2015 14:30:32 door Gerrit Bakker
 
- SanThe -

- SanThe -

19/06/2015 14:35:09
Quote Anchor link
Deze bestaan in bovenstaand niet zo te zien:
$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 -
 
- Ariën  -
Beheerder

- Ariën -

19/06/2015 14:35:44
Quote Anchor link
Je zou als tijdelijk lapmiddels dit kunnen toepassen, bovenaan je site binnen de PHP-code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
error_reporting(E_ALL ^ E_NOTICE);
?>


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 -
 
Gerrit Bakker

Gerrit Bakker

19/06/2015 14:55:27
Quote Anchor link
Beste -SanThe- begrijp je vraag, dat zou de foutmelding inderdaad impliceren. Zie de inhoud van index.php in mijn eerste melding, daar worden beide bestanden ge-include:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php

// top of page

  include("functies.php");
  include("_const.php");

//
?>


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)
PHP script in nieuw venster Selecteer het PHP script
1
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.
"
;
?>

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)
PHP script in nieuw venster Selecteer het PHP script
1
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);
?>
Gewijzigd op 19/06/2015 14:59:02 door Gerrit Bakker
 
- SanThe -

- SanThe -

19/06/2015 15:08:52
Quote Anchor link
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?
 
Thomas van den Heuvel

Thomas van den Heuvel

19/06/2015 15:11:27
Quote Anchor link
Het ging waarschijnlijk in PHP 5.3 ook al mis, maar hier werd toen niet over gerapporteerd.

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.
 
Gerrit Bakker

Gerrit Bakker

19/06/2015 15:24:01
Quote Anchor link
Beste -SanThe-, volgens mij is de syntax van de include correct. Daarnaast staan alle bestanden in 1 map, verder heb ik de tip van -Aar- toegepast. Met als resultaat dat de site weer 'normaal' reageerd, zie nu geen foutmeldingen meer. Ook dat is een bewijs dat er correct wordt ge-include, feit blijft dat ik iets niet goed doe.

Beste Thomas, dank voor je verheldering een hele opluchting! Aan jouw dan de vraag of je ook kunt aangeven wat ik dan fout doe.
 
Thomas van den Heuvel

Thomas van den Heuvel

19/06/2015 16:07:28
Quote Anchor link
Je refereert waarschijnlijk aan variabelen die gewoon niet bestaan. Dit kan zijn omdat ze verkeerd gespeld zijn en/of in het geheel niet gedefinieerd zijn.

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
 
Gerrit Bakker

Gerrit Bakker

19/06/2015 16:27:26
Quote Anchor link
Beste Thomas, kan je verzekeren dat de vars wel degelijk bestaan en niet verkeerd gespeld zijn. Anders zou de site niet werken, omdat er buiten wat afbeeldingen niets -aan content of menu items- getoond kan worden. De vars worden door de hele website gebruikt, zal het ergens anders moeten zoeken. Al weet ik nog niet waar... Daarom ben ik al blij met de tip van Aars, en inderdaad, het is even onder het tapijt schuiven van fouten. Geeft mij wel de optie om 'rustig' op zoek te gaan naar de eigenlijke oorzaak.

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.
 
Thomas van den Heuvel

Thomas van den Heuvel

19/06/2015 16:33:30
Quote Anchor link
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.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.