Uncaught ValueError na een PHP-update
Uncaught ValueError betekent dat een waarde niet voldoet aan wat de aangeroepen code verwacht, en dat deze fout niet is opgevangen.
Welke PHP-versie meldt jouw site?
Passieve check van headers, versie en de kop van de homepage. Geen login, geen scan.
Meer uitleg
Lees de rest van de melding voordat je iets aanpast.
Daar staat vaak welke functie en welk argument betrokken zijn.
Alleen de woorden ValueError zijn te algemeen om vast te stellen welk veld of welke instelling moet veranderen.
Voor je begint
Bewaar de volledige foutregel met tijdstip in een privénotitie. Noteer welke handeling misging, welke PHP-versieEen PHP-versie is het nummer van de uitgave van PHP waarop jouw website draait, zoals 8.3. nu draait en welke onderdelen tegelijk zijn bijgewerkt. Deel alleen gegevens die nodig zijn voor onderzoek.
Een openbaar forum is geen geschikte plek voor klantgegevens, toegangscodes of volledige serverpaden.
Maak een back-upEen back-up is een kopie van je hele website, apart bewaard, zodat je hem kunt terugzetten als er iets misgaat. van bestanden en database voordat je wijzigingen laat uitvoeren. Controleer of die back-up bruikbaar is. Gebruik een afgeschermde testkopie met dezelfde PHP-versie en relevante instellingen.
Schakel daar echte betalingen en uitgaande klantmails uit. Spreek af wie de wijziging uitvoert en wie het resultaat controleert. Deze stappen zijn een onderzoeksadvies, geen diagnose van jouw website.
Wat veranderde er? PHPPHP is de programmeertaal waarmee veel websites, zoals WordPress-sites, hun pagina's maken op het moment dat een bezoeker erom vraagt. introduceerde ValueError in PHP 8. Het handboek beschrijft het verschil met een verkeerd type: een argument kan het juiste type hebben en toch een ongeldige waarde bevatten.
Denk aan een getal buiten het toegestane bereik. Welke waarden geldig zijn, hangt af van de betrokken functie. Gebruik daarom de handleiding van die functie naast de algemene uitleg over ValueError.
De juiste reparatie kiezen
Een concreet voorbeeld is array_chunk(), dat een verzameling in delen splitst. De grootte van een deel moet minimaal één zijn. Sinds PHP 8 levert een kleinere grootte een ValueError op.
Dit voorbeeld is geen diagnose van elke ValueError. Het laat zien waarom een getal omzetten naar een ander type niet automatisch helpt wanneer de echte fout in het toegestane bereik zit.
Vijf stappen naar herstel
- Schrijf de volledige melding over naar een privénotitie. Bewaar de functienaam en de naam of positie van het argument. Verwijder klantgegevens voordat je de informatie deelt met iemand buiten het beheerteam.
- Achterhaal waar de ongeldige waarde vandaan komt. Is het een formulier, een instelling of een resultaat van een andere berekening? Vraag de ontwikkelaar het eerste punt aan te wijzen waar de waarde onjuist wordt.
- Leg het geldige bereik vast aan de hand van de functiehandleiding. Bepaal wat de gebruiker bij ongeldige invoer moet zien. Kies niet zomaar een standaardwaarde zonder de betekenis van die invoer te begrijpen.
- Test een normale waarde en de grenzen van het bereik. Voor een positieve grootte zijn nul, één en een gangbare grotere waarde bruikbare controles. Verwacht bij elke controle een vooraf afgesproken resultaat.
- Controleer of de juiste uitkomst wordt opgeslagen of getoond. Bekijk de nieuwe logregels en voer dezelfde test nogmaals uit via de normale interface. Een apart testscript alleen dekt die gebruikersroute niet.
Een concrete controle
Stel dat een beheerder het aantal items per pagina op nul zet. Spreek af dat het formulier dit afwijst met een begrijpelijke melding. Test vervolgens één item per pagina en een normale paginagrootte.
Kijk ook naar een eerder opgeslagen ongeldige instelling. Dit voorgestelde scenario maakt onderscheid tussen invoercontrole en herstel van bestaande gegevens. Het voorkomt dat een nieuw formulier correct werkt terwijl een oude instelling dezelfde fout blijft veroorzaken.
Hulp en controle na herstel
Gebruik het hulpformulier hieronder als je geen toegang hebt tot de logs of niet weet wie de betreffende code onderhoudt. Beschrijf één mislukte handeling en het verwachte resultaat. Vraag om een voorstel dat de oorzaak, de wijziging en de controle afzonderlijk benoemt.
Stuur geen wachtwoorden mee met je aanvraag.
Herhaal na herstel de oorspronkelijke handeling op de testkopie. Controleer ook een normale bezoekersroute, een leeg resultaat en een foutieve invoer waar dat relevant is. Bekijk verse logregels bij het nieuwe testtijdstip.
Bewaar versies en uitkomsten bij je onderhoudsnotities. Laat de verantwoordelijke beheerder bepalen wanneer de geteste wijziging naar de echte website kan.
Welke vervolgstap past? Gebruik de links onder dit artikel om je vervolgstap te kiezen. De pagina over PHP updaten helpt je het onderhoud met je beheerder te bespreken.
De Exposure Check is een afzonderlijke publieke controle; gebruik de uitslag niet als bewijs dat deze programmeerfout is opgelost. Voor de actuele veiligheidsinformatie is er de statuspagina. Houd het herstel van de gebruikershandeling en de beoordeling van de server daarom als afzonderlijke controles bij.
Stuur bij een hulpvraag de fouttekst, de mislukte handeling en het verwachte resultaat mee, maar geen wachtwoorden. Vraag om één verantwoordelijke die de wijziging en de acceptatie samen bewaakt.