Op mijn website heb ik een gastenboek staan. Ja, ik weet het, een beetje verouderde versie en het wordt ook niet meer ge-update, maar op dit moment heb ik niets beters.
Dit wetende, bij de update van PHP 7.2 naar 7.4 loop ik tegen het volgende probleem aan:
function get_magic_quotes_gpc() is deprecated
Nu vroeg ik me af of hier een eenvoudig alternatief voor is dat hetzelfde doet.
Dat was toch altijd een slappe functie die meer een wassen neus was. "Waarom zou je PHP moeten laten beslissen of iets netjes geëscaped moet worden, terwijl dit soms niet nodig is? De programmeur zou het zelf moeten weten.", was de strekking van de gedachten van programmeurs.
De 'magic quotes' die automatisch quotes aan queries toevoegden zijn al in PHP 5.3.0 verdwenen, en in PHP 5.4.0 verwijderd. Die controle-functie get_magic_quotes_gpc() heeft dus ook geen nut meer.
Beste advies: Netjes op de juiste manier je invoer in je queries escapen met $mysqli->real_escape_string(..) (OO) of mysqli_real_escape_string(...) (procedureel). Of prepared statements in PDO, zolang de zeker bent van de juiste manier van gebruiken.
Hopelijk wordt deze functie gebruikt om te kijken of de data eerst weer ge-un-escaped moet worden (dat wat "magic quotes" deed weer ongedaan maken). Omdat PHP 7.2 niet meer aan magic quotes doet kun je dit dus ook zelf "doorgeven" door dit ergens bovenaan in je code toe te voegen:
function get_magic_quotes_gpc(){
return false; //magic quotes not enabled
}
Ik zou ook vooral nagaan hoe deze functie werd ingezet en niet enkel de hierboven voorgestelde pleister toepassen.
magic_quotes_gpc is sinds versie 5.4.0 verwijderd, en dat was alweer terug in 2012. In termen van software is dit gastenboek dus toch een beetje een curieus fossiel.
Het enige wat ik je (met klem) zou aanraden is het gastenboek te vervangen of compleet te herschrijven met wat modernere technieken.
?Onbekende gebruiker
30-09-2020 10:04
gewijzigd op 30-09-2020 10:12
J opla op 29/09/2020 11:48:41
Nu vroeg ik me af of hier een eenvoudig alternatief voor is dat hetzelfde doet.
Ja dat is er, al vraag ik me af wat je er mee zou willen:
<?php
function get_magic_quotes_gpc_alternatief() : bool {return FALSE;}
?>
Volgens de handleiding"Returns 0 if magic_quotes_gpc is off, 1 otherwise. Or always returns FALSE as of PHP 5.4.0."
Je geeft aan dat het een upgrade betreft vanaf PHP 7.2, dus een vind/vervang door alle codebestanden voor de alternatieve functie is de meest simpele oplossing.