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.
4 svar · 442 visningar · startad av vic
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
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.
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 "
Hmm, okej. Man lär sig något nytt varje dag :D
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.