In PHP heb ik een stukje code dat perfect werkt, tenminste, tot op zekere hoogte. Meestal werkt het wel, maar soms om onbekende reden niet.
Relevant stukje gestripte code:
Het object "product()" haalt alle eigenschappen van het product op.
Dit werkt perfect, tot ik de pagina twee keer achter elkaar laat laden.
Ik kies dus de drie selectieboxen, de pagina laadt opnieuw met de goede gegevens, en ik kies nog een keer in de nieuw geladen pagina met de drie selectieboxen een andere auto.
Op dat moment krijg ik een fout dat ik een oproep doe naar een member functie in een non-object: "Fatal error: Call to a member function get_product() on a non-object in ..."
Als ik dan naar de tellertjes kijk dan blijkt de echo van 1 en 2 wel te werken, maar bij 3 is de teller leeg! En eigenlijk net VOOR het aanroepen van de functie in het object, daarom krijg ik de fout. Dit is het enige stukje script waar ik $ctr gebruik, zelfs in het object gebruik ik deze variabele niet, dus ik heb absoluut geen idee hoe het komt dat hij ineens leeg is.
Uiteraard heb ik gezocht op php.net, google en hier, maar ik heb eerlijk gezegd niet zo'n goed idee waar ik op moet zoeken
Is iemand bekend met deze fout of weet waar ik het moet zoeken? Het is vrij moeilijk om een testcase te maken om te laten zien en het staat op het lokale intranet dus even laten zien is er ook niet bij. Mocht het niet anders gaan, dan zal ik m'n best doen om toch iets te kunnen laten zien.
Relevant stukje gestripte code:
PHP:
De functie "get_product_id()" haalt een id uit de database aan de hand van een auto merk, type en uitvoering als deze bestaat. Merk, type en uitvoering worden met drie selectboxjes gekozen waarbij op de laatste een submit zit.1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| if (!empty($_REQUEST['cars'][0]) && !empty($_REQUEST['cartypes'][0]) && !empty($_REQUEST['carversions'][0])) { for ($ctr = 0; $ctr <= 3; $ctr ++) { $sub_ctr = $ctr + 1; $product_id[$ctr] = get_product_id($_REQUEST['cars'], $_REQUEST['cartypes'], $_REQUEST['carversions'], $sub_ctr); } } for ($ctr = 3; $ctr >= 0; $ctr --) { if ($product_id[$ctr] != false) { echo "1: $ctr"; $product[$ctr] = new product(); echo "2: $ctr"; $product[$ctr]->get_product($product_id[$ctr]); echo "3: $ctr"; } } |
Het object "product()" haalt alle eigenschappen van het product op.
Dit werkt perfect, tot ik de pagina twee keer achter elkaar laat laden.
Ik kies dus de drie selectieboxen, de pagina laadt opnieuw met de goede gegevens, en ik kies nog een keer in de nieuw geladen pagina met de drie selectieboxen een andere auto.
Op dat moment krijg ik een fout dat ik een oproep doe naar een member functie in een non-object: "Fatal error: Call to a member function get_product() on a non-object in ..."
Als ik dan naar de tellertjes kijk dan blijkt de echo van 1 en 2 wel te werken, maar bij 3 is de teller leeg! En eigenlijk net VOOR het aanroepen van de functie in het object, daarom krijg ik de fout. Dit is het enige stukje script waar ik $ctr gebruik, zelfs in het object gebruik ik deze variabele niet, dus ik heb absoluut geen idee hoe het komt dat hij ineens leeg is.
Uiteraard heb ik gezocht op php.net, google en hier, maar ik heb eerlijk gezegd niet zo'n goed idee waar ik op moet zoeken