25. februar 2003 - 13:43Der er
8 kommentarer og 1 løsning
Magic quotes eller hvad?
Hej!
Jeg har lokalt kørt PHP med MySQL og har aldrig haft brug for addslashes eller stripslashes, det gjorde PHP selv når man sendte noget i en formular.
Den gemte det dog i databasen uden \ så alt fungerede skønt og af sig selv.
Nu har jeg uploadet til serveren på domænet, og nu tilføjer PHP ikke selv \.
Det kan jeg slå til med get_magic_quotes_gpc() men det resulterer i at mit indhold også gemmes med \ i databasen. Så løber jeg ind i problemer når jeg vil stripslashes på dette, og det hele kager...
Hvad er forskellen på min egen (standard) PHP og MySQL og serverens? Det er hos azero.dk
Jeg kan ikke overskue hvilken del af phpinfo() der er interessant?
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Jeg er ikke sikker på hvor du vil have den hen den funktion?
Problemet er jo også at jeg ikke gider at se på \" i tekstfelterne. Og når jeg fjerner dem med stripslashes mangler de når jeg skal opdatere i databasen. Så får jeg en SQL-fejl.
På min lokale maskine sker der det her:
Feltet indeholder f.eks. dette:
Very large at 27 1/2" 7" high post 1952 marks.
Når jeg submitter udskriver jeg min query, for at se hvad den indeholder.
Den indeholder det her:
UPDATE tabelnavn SET tekst = "Very large at 27 1/2\" 7\" high post 1952 marks."
Og når jeg så kigger i databasen står der det her:
Du har magic-quotes sat til på din hjemmeserver. Derfor kommer der \" -ere på. Databasen fjerner dem ved indsættelse.
Ønsker du at bruge et submitted felt til visning på efterfølgende side, når du har magic-quotes sat til, skal du strippe dem af igen. Faktisk den "omvendte" funktion af ovenstående.
Jeg mener du skal bruge funktionen sådan
$sql="UPDATE tabelnavn SET tekst=\"".MyAddSlashes(mitfeltnavn),"\"";
så vil det altid virke.
Synes godt om
Slettet bruger
25. februar 2003 - 14:15#4
Jeg kan godt se at koden umiddelbart løser mit problem men:
- jeg skal ind og lave stripslashes på alle felter der vises fra databasen - jeg skal rette al min kode til at anvende din funktion
Det var det jeg gerne ville kunne på en lidt let måde :/
Du skal ikke lave stripslashes på det du tager ud af databasen. Det er bare OK som det er.
Men hvis du fra en form submitter til en side, OG vil vise teksten på denne side, skal du måske lave stripslashes (hvis magic_quotes er sat til).
Så værsgo': Masser af manuelt arbejde forude - og noget at tænke over næste gang du tænker på at lave et portabelt program i PHP. Og så kan du også filosofere lidt over det hensigtsmæssige i den beslutning PHP-designerne engang har lavet: nemlig at gøre magic_quotes optional. Det ville være bedre altid at have den slået til, eller altid slået fra. Dette er lidt bøvlet.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.