Warning: Trying to access array offset on value of type null

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Guus Wiegerinck

Guus Wiegerinck

15/10/2024 11:27:26
Quote Anchor link
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

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
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 categorien</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
 
PHP hulp

PHP hulp

15/11/2024 15:27:21
 
- Ariën  -
Beheerder

- Ariën -

15/10/2024 11:35:41
Quote Anchor link
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)?
 
Guus Wiegerinck

Guus Wiegerinck

15/10/2024 12:28:05
Quote Anchor link
- 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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
echo $selcrit'"MMM";

Dat levert alleen MMM op:
Doe ik:'
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
echo $selcrit['categorie']'"MMM";

dan geeft dat een error:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
Warning: Trying to access array offset on value of type null

Dus $selcrit is blijkbaar leeg.
 
- Ariën  -
Beheerder

- Ariën -

15/10/2024 13:12:17
 
Ozzie PHP

Ozzie PHP

15/10/2024 15:10:35
Quote Anchor link
Zowel dit ...

Guus Wiegerinck op 15/10/2024 12:28:05:
Ik gedaan:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
echo $selcrit'"MMM";

als dit ...

Guus Wiegerinck op 15/10/2024 12:28:05:
Doe ik:'
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
echo $selcrit['categorie']'"MMM";

... is geen valide PHP-code.

Probeer eerst eens dit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
var_dump($selcrit);
?>
Gewijzigd op 15/10/2024 15:11:44 door Ozzie PHP
 
Guus Wiegerinck

Guus Wiegerinck

15/10/2024 16:34:04
Quote Anchor link
Ozzie PHP op 15/10/2024 15:10:35:
Zowel dit ...

Guus Wiegerinck op 15/10/2024 12:28:05:
Ik gedaan:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
echo $selcrit'"MMM";

als dit ...

Guus Wiegerinck op 15/10/2024 12:28:05:
Doe ik:'
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
echo $selcrit['categorie']'"MMM";

... is geen valide PHP-code.


...maar het werkt wél. ):

Quote:

Probeer eerst eens dit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
var_dump($selcrit);
?>




Als ik deze code in het script zet en vernieuw het scherm, zie ik er niets van.
 
- Ariën  -
Beheerder

- Ariën -

15/10/2024 16:40:33
Quote Anchor link
Je zult toch echt iets moeten zien.
 
Ozzie PHP

Ozzie PHP

15/10/2024 16:55:39
Quote Anchor link
>> ...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.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
var_dump($selcrit);
exit;
?>
 
Guus Wiegerinck

Guus Wiegerinck

15/10/2024 23:05:10
Quote Anchor link
Dan krijg ik:

Kan geen verbinding maken

Firefox kan geen verbinding maken met de server op localhost.
 
Ozzie PHP

Ozzie PHP

16/10/2024 12:04:03
Quote Anchor link
Laat eens zien hoe je de code erin hebt gezet?
 
- Ariën  -
Beheerder

- Ariën -

16/10/2024 13:14:43
Quote Anchor link
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.


Dan staat je webserver blijkbaar uit, of zit je op een ander netwerk.
Dit heeft niks met je probleem te maken.
 
Guus Wiegerinck

Guus Wiegerinck

16/10/2024 16:28:04
Quote Anchor link
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.
 
- Ariën  -
Beheerder

- Ariën -

16/10/2024 19:32:24
Quote Anchor link
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.
Gewijzigd op 16/10/2024 19:32:41 door - Ariën -
 
Guus Wiegerinck

Guus Wiegerinck

17/10/2024 11:10:49
Quote Anchor link
Alles ineens als één pakket geïnstalleerd.

Ja, dit is eigenlijk wel een nieuw topic.
 
- Ariën  -
Beheerder

- Ariën -

17/10/2024 11:29:32
Quote Anchor link
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.
 
Guus Wiegerinck

Guus Wiegerinck

19/10/2024 16:12:07
Quote Anchor link
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.
 



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.