Du har ret.
magiske citater har intet at gøre med sql-ting og bør ikke være forbundet til det.
Fordi magiske citater er et problem på hele webstedet, og sql-escaping er kun sql-relateret problem.
Så de har brug for forskellig behandling og bør aldrig bruges sammen.
Du er nødt til at slippe af med magiske citater ubetinget, fordi det ødelægger ikke kun SQL-ting, men enhver datamanipulation af dit websted.
Så det ville være klogt at sætte nogle stripslashes-kode i hvilken som helst bootstrap-fil, der skal køres ved hvert kald af scriptet. Koden kan du finde i adskillige implementeringer af sådan en kode, bare google efter funktionen 'stripslashes_deep'.
Det ville være klogt at have denne kode altid kørende (naturligvis under betingelseskontrol get_magic_quotes_gpc()) på trods af den faktiske tilstand af magiske citater, bare for kompatibilitetens skyld.
Men der er en anden mulighed for at slå dem fra:prøv at oprette en php.ini-fil i roden af dit program.
Der er dog en alvorlig fejl i din kode. Faktisk beskytter det ikke noget.
Du undslipper $memberid
og $postid
men citer dem ikke! . Der er således ingen beskyttelse overhovedet. Bare fordi undslippe kun virker, når det bruges med citat.
Husk venligst:
Escaping er ikke et synonym for sikkerhed!
At flygte alene kan intet hjælpe. Der er et helt sæt regler, der skal følges.
Jeg skrev en anstændig forklaring for nylig, så jeg ville ikke gentage mig selv:Erstatning af mysql_*-funktioner med PDO og forberedte sætninger