webForumDet fria alternativet

Problem med .txt PHP editor

10 svar · 669 visningar · startad av Hampan90

Hampan90Medlem sedan feb. 2007137 inlägg
#1

Hej!
Har fått ett problem med detta script jag fick förut:
http://www.webforum.nu/showthread.php?p=1343668#post1343668

Det är så att när jag föröker skriva in en länk och spara blir det helt fel och jag ser inget.

Såhär:

Jag skriver in detta:

<a href="www.aftonbladet.se">Aftonbladet</a>

Men när jag har tryckt på Spara så får jag detta i textruten:

<a href=\"www.aftonbladet.se\">Aftonbladet</a>

Och om jag trycker på spara igen så får jag detta:

<a href=\\\"www.aftonbladet.se\\\">Aftonbladet</a>

Lite irriterande, varför blir det så?

fiddlerMedlem sedan juli 20023 617 inlägg
aasahMedlem sedan mars 20034 471 inlägg
#3

Om du skriver länken via en form, så är det säkert PHP:s magical_quotes_gpc som spökar. När denna är på (default) ser den till att skydda för elakt input från illvilliga användare. Visst löser fiddlers funktion problemet, men ev lite för bra. För du blir samtidigt av med skyddet för SQL Injections. :o

Du bör alltså kolla att det verkligen ÄR en länk innan du kör stripslashes. Alternativt kan möjligen en kombination av stripslashes och http://se.php.net/manual/en/function.htmlentities.php hjälpa?

Hampan90Medlem sedan feb. 2007137 inlägg
#4

aasah: detta matas ju inte in i en databas, utan till en textfil

Men jag förstår inte riktigt vart jag skall sätta denna lilla kod som du gav mig, känner mig som en stor fet noob.

Patrik81Medlem sedan okt. 2001538 inlägg
#5

Hejsan :)

Troligt är det att du vill ändra raden

echo implode('',file('text/startsida_left.txt'));

till

echo stripslashes(implode('',file('text/startsida_left.txt')));

(Koden saxad från den andra tråden, är den uppdaterad efter det får erforderliga ändringar göras på liknande sätt)

Poängen blir iaf. att när du väl spottar ut innehållet igen, som en lång sträng, så tar du bort alla slashes från strängen, innan det echo:as ut.

Hoppas jag beskrev det någorlunda vettigt. :)

/edit: Jag håller förstås med aasah om att du verkligen bör kolla vad som stoppas in och spottas ut igen, det behöver ju inte vara trevliga saker...
Som om någon till exempel skulle få för sig att mata in
"</textarea> [elak kod här]" där "elak kod" är något javascript eller liknande (är inte jättehet på den biten, men gissar att man kan göra mycket elakt) så skulle detta, så fort man sparat den koden, och den läses in igen, avsluta textarean och köra javascriptet. Kan vara bra att skydda sig från sådant.
(Hmmms, tror just jag lyckades göra mitt inlägg ännu mer svårförstått, dags att lägga sig...)

Mvh Patrik

colioneMedlem sedan juni 20014 421 inlägg
#6

aasah skrev:

Om du skriver länken via en form, så är det säkert PHP:s magical_quotes_gpc som spökar. När denna är på (default) ser den till att skydda för elakt input från illvilliga användare. Visst löser fiddlers funktion problemet, men ev lite för bra. För du blir samtidigt av med skyddet för SQL Injections. :o

Du bör alltså kolla att det verkligen ÄR en länk innan du kör stripslashes. Alternativt kan möjligen en kombination av stripslashes och http://se.php.net/manual/en/function.htmlentities.php hjälpa?

I detta fallet spelar det ingen roll iom att det inte ska in i en databas, men att förlita sig på mqg för att skydda sig från sql-injection är som att använda gladpack som kondom. Är inte mqg avstängt på din host som default bör du själv försöka stänga av det.

Hampan90Medlem sedan feb. 2007137 inlägg
#7

hm, det går inte som jag vill.

Det är inte själva visningen av backslasharna jag har problem med, utan att de skrivs till filen.
För även om jag inte ser backslasharna i edit rutan, så tar de effekt i filen.
Vilket gör att när txt filen väl includeras på sidan, så funkar inte länkarna.

Får detta:

Not Found

The requested URL /ergonomeva/site/\"http://www.av.se\" was not found on this server.

Eftersom det i textfilen nu står såhär:
<a href=\"http://www.av.se\">www.av.se</a><br />

Istället för såhär:
<a href="http://www.av.se">www.av.se</a><br />

Då funkar ju inte länkarna.

Jag vill alltså förhindra att dessa backslashar SKRIVS till filen överhuvudtaget.

Hoppas att ni förstod vad jag menade, tack för att ni hjälper mig. Börjar bli smått desperat nu.

colioneMedlem sedan juni 20014 421 inlägg
#8
fwrite($FIL, stripslashes($_POST["cont"]));
Hampan90Medlem sedan feb. 2007137 inlägg
#9

Suveränt! Tackar, än en gång så har ni hjälpt mig, tackar och bockar! Ni är bäst!

colioneMedlem sedan juni 20014 421 inlägg
#10

Du kan ju ge tillbaka genom att acceptera inlägget som löste ditt problem som svar.

aasahMedlem sedan mars 20034 471 inlägg
#11

Ooops jag läste aldrig den andra tråden varför jag trodde att det gällde en databas.

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