Warning: Trying to access array offset on value of type null
Onlangs heb ik een nieuwere WAMP geïnstalleerd: versie 3.3.0_x86 i.p.v. versie 2.5.
Nu blijken de bestaande scripts allerlei errors, waarschuwingen en fouten op te leveren. Dat zal wel komen door veranderde regels en afspraken, maar is dus een klus om de scripts aan te passen. Ik weet wel een beetje van php maar ben niet doorgewinterd, dus ik leg wat ik niet snap maar aan dit forum voor.
Hier is er een:
Warning: Trying to access array offset on value of type null in C:\wamp\www\modellenAlle.php on line <i>213</i></th></tr>
Ter verduidelijking geef ik eerst de context van regel 213. Vooraan de regelnummers van het script
Dit levert de volgende waarschuwing op
<tr><th align='left' bgcolor='#e9b96e' colspan='5'>Call Stack</th></tr>
Bedoeling is om in de selectie lijst eerste de optie "alle categorieën" op te nemen. Deze optie kiezen moet er in resulteren dat ALLE categoriën uit de database worden opgehaald.
Daarna volgen de categorieën als afzonderlijke opties.
Ik snap echter niet wat de waarschuwing betekent. Wat is er fout op regel 213?
Nu blijken de bestaande scripts allerlei errors, waarschuwingen en fouten op te leveren. Dat zal wel komen door veranderde regels en afspraken, maar is dus een klus om de scripts aan te passen. Ik weet wel een beetje van php maar ben niet doorgewinterd, dus ik leg wat ik niet snap maar aan dit forum voor.
Hier is er een:
Warning: Trying to access array offset on value of type null in C:\wamp\www\modellenAlle.php on line <i>213</i></th></tr>
Ter verduidelijking geef ik eerst de context van regel 213. Vooraan de regelnummers van het script
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
6: $result = mysqli_query($db,"SELECT * FROM categorie") or die ("ophalen van gegevens is niet gelukt.<br />");
7: $selectiecriteria = array();
8: while ($selcrit = mysqli_fetch_assoc($result))
9: {
10: $selected = "";
11: if (!EMPTY ($_POST['categorie']) && ($_POST['categorie'] == $selcrit['id_cat']))
12: {
13: if (($_POST['categorie']) == "'%'")
14: {$selected = "selected";}
15: }
16: $selectiecriteria[] = "<option value=\"'".$selcrit['id_cat']."'\">".$selcrit['Categorie']."</option>\n";
17: }
18:
19: if (EMPTY ($_POST['categorie'])){$selectie = "WHERE categorie.id_cat LIKE ".$_GET['categorie'];}
20: else {$selectie = "WHERE categorie.id_cat LIKE ".$_POST['categorie'];}
... in html-blok ...
213 <option value="'%'"<?php if ( $selcrit['categorie'] == "'%'" ) { echo " selected"; } ?>>alle categorie��n</option>
7: $selectiecriteria = array();
8: while ($selcrit = mysqli_fetch_assoc($result))
9: {
10: $selected = "";
11: if (!EMPTY ($_POST['categorie']) && ($_POST['categorie'] == $selcrit['id_cat']))
12: {
13: if (($_POST['categorie']) == "'%'")
14: {$selected = "selected";}
15: }
16: $selectiecriteria[] = "<option value=\"'".$selcrit['id_cat']."'\">".$selcrit['Categorie']."</option>\n";
17: }
18:
19: if (EMPTY ($_POST['categorie'])){$selectie = "WHERE categorie.id_cat LIKE ".$_GET['categorie'];}
20: else {$selectie = "WHERE categorie.id_cat LIKE ".$_POST['categorie'];}
... in html-blok ...
213 <option value="'%'"<?php if ( $selcrit['categorie'] == "'%'" ) { echo " selected"; } ?>>alle categorie��n</option>
Dit levert de volgende waarschuwing op
<tr><th align='left' bgcolor='#e9b96e' colspan='5'>Call Stack</th></tr>
Bedoeling is om in de selectie lijst eerste de optie "alle categorieën" op te nemen. Deze optie kiezen moet er in resulteren dat ALLE categoriën uit de database worden opgehaald.
Daarna volgen de categorieën als afzonderlijke opties.
Ik snap echter niet wat de waarschuwing betekent. Wat is er fout op regel 213?
Gewijzigd op 15/10/2024 11:48:27 door Guus Wiegerinck
Zonder de code die er omheen zit wordt het lastig om te oordelen. Dus wordt het even debuggen.
Heeft $selcrit['categorie'] wel een waarde? Met meldt van te voren een print_r($selcrit)?
Heeft $selcrit['categorie'] wel een waarde? Met meldt van te voren een print_r($selcrit)?
- Ariën - op 15/10/2024 11:35:41:
Heeft $selcrit['categorie'] wel een waarde? Met meldt van te voren een print_r($selcrit)?
Dat laatste begrijp ik niet goed. Bedoel je 'echo'?
Ik gedaan:
Dat levert alleen MMM op:
Doe ik:'
dan geeft dat een error:
Dus $selcrit is blijkbaar leeg.
Zowel dit ...
als dit ...
... is geen valide PHP-code.
Probeer eerst eens dit:
als dit ...
... is geen valide PHP-code.
Probeer eerst eens dit:
Gewijzigd op 15/10/2024 15:11:44 door Ozzie PHP
Ozzie PHP op 15/10/2024 15:10:35:
...maar het werkt wél. ):
Quote:
Als ik deze code in het script zet en vernieuw het scherm, zie ik er niets van.
Je zult toch echt iets moeten zien.
>> ...maar het werkt wél. ):
Nee ...
>> Als ik deze code in het script zet en vernieuw het scherm, zie ik er niets van.
Waarschijnlijk omdat je een error triggert.
Zet deze code eens na de while-lus. In jouw voorbeeld in het eerste bericht is dat op regel 18.
Nee ...
>> Als ik deze code in het script zet en vernieuw het scherm, zie ik er niets van.
Waarschijnlijk omdat je een error triggert.
Zet deze code eens na de while-lus. In jouw voorbeeld in het eerste bericht is dat op regel 18.
Dan krijg ik:
Kan geen verbinding maken
Firefox kan geen verbinding maken met de server op localhost.
Kan geen verbinding maken
Firefox kan geen verbinding maken met de server op localhost.
Laat eens zien hoe je de code erin hebt gezet?
Guus Wiegerinck op 15/10/2024 23:05:10:
Dan krijg ik:
Kan geen verbinding maken
Firefox kan geen verbinding maken met de server op localhost.
Kan geen verbinding maken
Firefox kan geen verbinding maken met de server op localhost.
Dan staat je webserver blijkbaar uit, of zit je op een ander netwerk.
Dit heeft niks met je probleem te maken.
Weet je dat ik heel lang bezig geweest met installeren van WAMP. Telkens een andere download, en telkens weer diezelfde mededeling. En nu weer. Ook heb ik de codes met dump verwijderd, de mededeling blijft. Een keer heb ik de paginabron bekeken, en daar stond alles! Ook de opgevraagde categorieën uit de database en ook de foutmelding. En nog veel meer, dingen die ik nooit in het script heb gezet. Kan het je helaas niet zien, want nu krijg ik ook als ik de paginabron wil zien, de mededeling van geen verbinding.
Wat ik wel gek vind, is dat de achter de homepage een andere index.html zit dan ik aantref in www. Zelfs toen WAMP net geïnstalleerd was en ik localhost opende, gaf die niet de index.php weer die in de www stond, maar MIJN index.html. Huh??? Waar haalt die die vandaan? Geen idee, waar WAMP een homepage opslaat, ergens buiten de directory wamp, die niet verwijderd wordt met de-installatie. En ergens vraag ik me af of hier niet de oorzaak zou kunnen zitten van GEEN VERBINDING.
Toevoeging op 16/10/2024 17:00:20:
Ik kan ook niet meer bij phpMyAdmin. Dezelfde reden.
Wat ik wel gek vind, is dat de achter de homepage een andere index.html zit dan ik aantref in www. Zelfs toen WAMP net geïnstalleerd was en ik localhost opende, gaf die niet de index.php weer die in de www stond, maar MIJN index.html. Huh??? Waar haalt die die vandaan? Geen idee, waar WAMP een homepage opslaat, ergens buiten de directory wamp, die niet verwijderd wordt met de-installatie. En ergens vraag ik me af of hier niet de oorzaak zou kunnen zitten van GEEN VERBINDING.
Toevoeging op 16/10/2024 17:00:20:
Ik kan ook niet meer bij phpMyAdmin. Dezelfde reden.
Heb je heel de WAMP-stack los geïnstalleerd? Zoals een losse Apache download, Losse PHP download, losse MySQL download. Of gebruik je een kant-en-klaar product, zoals bijvoorbeeld XAMPP dat wordt aangeboden door Apachefriends? In het laatste geval heb je in maximaal vijf minuten je webserver draaiende.
Als je de melding krijgt dat er geen verbinding is, dan draait Apache blijkbaar niet. Kijk eens bij bij je draaiende processen en services via CTRL+SHIFT+ESC. Is Apache een service (wat superhandig in Windows), check dan de het Windows logboek als het niet start.
Eigenlijk is dit wel een ander topic waard.
Als je de melding krijgt dat er geen verbinding is, dan draait Apache blijkbaar niet. Kijk eens bij bij je draaiende processen en services via CTRL+SHIFT+ESC. Is Apache een service (wat superhandig in Windows), check dan de het Windows logboek als het niet start.
Eigenlijk is dit wel een ander topic waard.
Gewijzigd op 16/10/2024 19:32:41 door - Ariën -
Alles ineens als één pakket geïnstalleerd.
Ja, dit is eigenlijk wel een nieuw topic.
Ja, dit is eigenlijk wel een nieuw topic.
Ik stel inderdaad voor om een nieuw topic aan te maken, en deze weer omhoog te halen als je wilt terug komen op het probleem uit je topicstartbericht.
Ja, dat heb ik gedaan. Zul je wel gezien hebben
Het probleem met die lege variabele $selcrit heb ik opgelost door al die regels te verwijderen. Ik had dat script jaren geleden geschreven, maar nu snapte ik niet meer goed zo waarom ik het zó geschreven had. Ik kreeg hetzelfde resultaat zonder die regels. Daarmee waren de foutmeldingen verdwenen.
Alle andere scripts van mijn project heb ik intussen aangepast. Het voornaamste was het aanpassen van de inloggegevens. Ik heb daar een apart bestandje inc_connect_db.php van gemaakt dat ik oproep met include. En dat werkt goed. Eventuele wijzigingen hoef ik voortaan nog maar op één plek te doen.
Het probleem met die lege variabele $selcrit heb ik opgelost door al die regels te verwijderen. Ik had dat script jaren geleden geschreven, maar nu snapte ik niet meer goed zo waarom ik het zó geschreven had. Ik kreeg hetzelfde resultaat zonder die regels. Daarmee waren de foutmeldingen verdwenen.
Alle andere scripts van mijn project heb ik intussen aangepast. Het voornaamste was het aanpassen van de inloggegevens. Ik heb daar een apart bestandje inc_connect_db.php van gemaakt dat ik oproep met include. En dat werkt goed. Eventuele wijzigingen hoef ik voortaan nog maar op één plek te doen.




