webForumDet fria alternativet

Ingen escape på ", ' etc??

6 svar · 417 visningar · startad av lilja

liljaMedlem sedan juli 20041 183 inlägg
#1

Jag har två förhoppningsvis simpla frågor angående escapade strängar. Vet inte vad en svensk översättning av escape kan vara, sorry :)

  1. Finns det något sätt att skriva ut exakt vad som postats från ett forumlär. Jag vill inte att <a href="foo.html">foo</a> ändras till <a href=\"foo.html\">.

Känns som att det finns en enkel förklaring men jag vet inte vad jag ska söka på så jag har inte hittat något.

  1. Bör man använda dbx_escape_string() vid ionloggningsformulär för att ta bort de farliga tecknena? De farliga tecknena escapas väl ändå verkar det som?
liljaMedlem sedan juli 20041 183 inlägg
#2

När jag slutligen skriver här så hittar man de bara några minuter efter :P

stripslashes()

Men man kan inte göra de när man hämtar variabeln utan måste göra det varje gång man använder variabeln??

När jag sparar i en databas händer inget men när jag skriver ut med print() så tillkommer \-tecknena om jag inte använder stripslashes(). Varför?

GislavedMedlem sedan nov. 20041 740 inlägg
#3

Du vill nog läsa lite om begreppet magic quotes och funktionen mysql_real_escape_string. Manualen förklarar dessa ganska bra.

liljaMedlem sedan juli 20041 183 inlägg
#4

Gislaved skrev:

Du vill nog läsa lite om begreppet magic quotes och funktionen mysql_real_escape_string. Manualen förklarar dessa ganska bra.

Hmm, stämmer bra. Tack! :)

liljaMedlem sedan juli 20041 183 inlägg
#5

Äh, jag är fortfarande lite konfunderad. Jag är på det klara med hur man ska hantera SQL-injektions till MySQL (tror jag) men när det gäller dessa speciella tecken och escape-tecken...

Jag testar just nu att spara till en fil och då sparas escape-tecknena. Det blir inte särskilt snyggt tycker jag så jag plockar bort dem med stripslashes(). Är det verkligen meningen att man ska göra så när man skriver ut en variabel (eller skriver till en fil) som innehåller speciella tecken?

T.ex. om någon postar något som får min felkontroll att börja tjuta och visa röda meddelanden så tycker jag om att lägga in data i text-fälten igen. Mycket för att underlätta för användaren. Men har man då skrivit ', " eller nåhot konstigt tecken i nåt fält så läggs / på före.

Är det då meningen att man ska använda stripslashes() när man skriver ut variabeln??

Hmm, låter dumt och självklart nu när jag skriver de men de skadar ju inte att fråga efter en bättre lösning? :)

PeeerMedlem sedan mars 20025 907 inlägg
#6

Om "magic quotes" är aktiverat på servern så körs add_slashes() automatiskt på all indata. Om du istället för att spara väljer att skriva ut innehållet så måste dessa slashar strippas bort. För att datan ska förstöra något på sidan när det skrivs ut, så kör den genom htmlentities() innan utskrift.

liljaMedlem sedan juli 20041 183 inlägg
#7

Jo de visste jag och jag vet varför jag blev så konfunderad nu. Magic Quote var påslaget på min WAMP server som jag kör min egna dator och inte påslaget på Loopias FreeBSD server där jag också testade sidan.

Ibland blev de \-tecken och ibland blev det inte vilket gjorde mig förvirrad.

Tack för hjälpen!

123 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
121 ms — hämta tråd, inlägg och bilagor (db)