Je hebt gelijk.
magische aanhalingstekens hebben niets te maken met sql-dingen en zouden er niet mee verbonden moeten zijn.
Omdat magische aanhalingstekens een probleem voor de hele site is en sql-escaping alleen een sql-gerelateerd probleem is.
Ze hebben dus een andere behandeling nodig en mogen nooit in combinatie worden gebruikt.
Je moet onvoorwaardelijk van magische aanhalingstekens afkomen, omdat het niet alleen SQL-dingen bederft, maar ook elke gegevensmanipulatie van je site.
Het zou dus verstandig zijn om wat stripslashes-code in een bootstrap-bestand te plaatsen dat bij elke aanroep van het script moet worden uitgevoerd. De code vind je in talloze implementaties van zo'n code, google maar eens op de functie 'stripslashes_deep'.
Het zou verstandig zijn om deze code altijd te laten draaien (uiteraard onder de voorwaarde check get_magic_quotes_gpc()) ondanks de actuele staat van magische aanhalingstekens, alleen omwille van de compatibiliteit.
Maar er is nog een andere mogelijkheid om ze uit te schakelen:probeer een php.ini-bestand aan te maken in de root van je applicatie.
Er staat echter een ernstige fout in uw code. In feite beschermt het niets.
U ontsnapt aan $memberid
en $postid
maar citeer ze niet! . Er is dus helemaal geen bescherming. Gewoon omdat escapen alleen werkt bij citeren.
Onthoud alsjeblieft:
Ontsnappen is geen synoniem voor veiligheid!
Alleen ontsnappen helpt niets. Er moet een hele reeks regels worden gevolgd.
Ik heb onlangs een fatsoenlijke uitleg geschreven, dus ik zou mezelf niet herhalen:Mysql_*-functies vervangen door PDO en voorbereide instructies