create_function() ontbreekt na PHP-update
Call to undefined function create_function() betekent dat code een functie probeert te maken met een oude PHP-functie die niet beschikbaar is.
Welke PHP-versie meldt jouw site?
Passieve check van headers, versie en de kop van de homepage. Geen login, geen scan.
Meer uitleg
Je kunt dit tegenkomen wanneer een oud themaEen WordPress-thema is het ontwerp van je WordPress-site: het bepaalt hoe pagina's eruitzien en hoe ze zijn opgebouwd. of een uitbreiding op PHPPHP is de programmeertaal waarmee veel websites, zoals WordPress-sites, hun pagina's maken op het moment dat een bezoeker erom vraagt. 8 wordt geladen.
De bestandsnaam is het begin van het onderzoek.
Controleer welke versie van die code actief is voordat je bestanden vervangt of instellingen aanpast.
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? Volgens het PHP-handboek is create_function() in PHP 7.2 verouderd verklaard en in PHP 8.0 verwijderd. Het handboek verwijst naar anonieme functies als vervanging.
Dat zijn functies zonder een vaste naam in de code. De ontwikkelaar moet de bedoelde werking overzetten, inclusief de invoer en het resultaat. Een wijziging van alleen de naam is daarvoor niet voldoende.
De juiste reparatie kiezen
Vraag waar de gemaakte functie later wordt gebruikt. Het kan bijvoorbeeld gaan om een callback: een stukje code dat een andere routine op een afgesproken moment aanroept. Laat de ontwikkelaar nagaan welke waarden op dat moment nodig zijn.
Een geldige vervanging moet dezelfde taak uitvoeren. Dat een pagina weer opent, bewijst niet dat een filter of sortering ook nog de gewenste uitkomst geeft.
Vijf stappen naar herstel
- Bewaar de foutregel en de handeling vlak daarvoor. Noteer of de melding meteen bij openen verschijnt of pas na het opslaan van een instelling. Dat bepaalt welke route eerst wordt nagebouwd.
- Zoek uit wie het betreffende bestand onderhoudt. Controleer een beschikbare update op een vermelde aanpassing voor deze functie. Gebruik een volledige versie van de leverancier in plaats van willekeurige vervangbestanden.
- Laat de ontwikkelaar de invoer en uitvoer van de gemaakte functie beschrijven. Vraag welke gegevens van buiten de functie nodig zijn. Daarmee wordt zichtbaar wat de nieuwe anonieme functie moet behouden.
- Test de omzetting met kleine, bekende voorbeelden. Gebruik bij sortering een lijst waarvan je de juiste volgorde vooraf opschrijft. Controleer een lege lijst apart, zodat een stille fout niet onopgemerkt blijft.
- Herhaal de oorspronkelijke gebruikershandeling en controleer het resultaat. Open bijvoorbeeld de opgeslagen instelling opnieuw. Bekijk daarna de logregels van precies die test en noteer welke codeversie is gecontroleerd.
Een concrete controle
Een bruikbaar voorbeeld is een filter dat drie zichtbare items omzet naar twee geselecteerde items. Bepaal vooraf welk item hoort weg te vallen en waarom. Na de reparatie vergelijk je de uitvoer met die verwachting.
Test ook een invoer waarbij geen enkel item voldoet. Dit is een voorgestelde controle, geen bewering over jouw pluginEen WordPress-plugin is een uitbreiding die je aan je WordPress-site toevoegt voor een extra functie, zoals een formulier of een webshop.. Een ontwikkelaar kan hiermee laten zien dat de callback inhoudelijk werkt en niet alleen dat de oorspronkelijke fouttekst verdwenen is.
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.