webForumDet fria alternativet

Problem med att skriva till filer..?

PHP

4 svar · 442 visningar · startad av vic

Medlem sedan apr. 2006244 inlägg
Frågan#1

Hejsan!

Håller på med ett litet cms åt en webbplats. Man skall bland annat kunna ändra i css filen. För att hämta in filen i textarean scriptar jag följande:

<?
$css = include ("/styles/main_style.css");
print "$css";                         
?>

För att skriva nytt innehåll i filen scriptar jag följande:

<?
  if(isset($_POST['nytt_css'])) 
  {
   $f = @fopen ("/styles/main_style.css","w ");
   fwrite ($f, $text );fclose ($f);
   include("go_back/go_main_style.php");
  }
?>

Problemen som uppstår är följande:

- Siffran "1" skrivs till i slutet av filen varje gång man sparar

- Varje gång man skriver in citationstecken blir det konstigt i den sparad filen, ex:

skriver in

font-family:"Trebuchet MS";

sparas i detta i filen

font-family:\\\\\\\\\\"Trebuchet MS\\\\\\\\\\\"

Någon som har snabb lösning på detta lilla problem?

Mvh

Vic

Medlem sedan mars 2005232 inlägg
#2

Inte ska du skriva css-kod med citationstecken.
Då var väl det problemet löst?

Vad gäller det andra så har jag ingen aning, tyvärr.

Medlem sedan apr. 2006244 inlägg
#3

Vissa fonter skall skrivas med citationstecken.

Jag har förövrigt löst problemet. Det berodde av någon konstig anledning på att jag la texten i en string istället för att inkludera den direkt. Sen la jag en str_replace på $text och bytte ut \" mot endast "

Medlem sedan mars 2005232 inlägg
#4

Hmm, okej. Man lär sig något nytt varje dag :D

Medlem sedan aug. 20002 975 inlägg
#5

include returnerar sant eller falskt, det är alltså inget man skriver ut eller sparar i sträng, utan kör direkt.
Vill du hämta ett filinnehåll till en sträng använder du dig av file_get_contents.

Du har sannolikt magic_quotes_gpc satt.
Detta innebär att på allt som kommer till PHP från postade formulär, länkar och cookies, kommer citationstecken, apostrofer samt några tecken mer att "escapas", eller med andra ord få ett backslash före sig.
Innan du sparar ned till fil kan du då använda stripslashes för att ta bort dina backslash.

Jag förutsätter att du har någon form av validering av dina postade värden ifall det är någon annan än du som har möjlighet att posta till sidan.

261 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
129 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)