Ik zit met een probleempje... Ik heb een heel simpel cms systeempje gemaakt. Puur om alleen pagina's aan te passen.. Hiervoor heb ik TinyMCE gebruikt. Haal de code die in de database staat gewoon in de edittor door de rij te echoën. Gaat allemaal prima. Alleen zodra ik de pagina aanpas en hem opsla, wat via een UPDATE querry gaat, komen bij alle aanhalingstekens (") een schuine streep. Elke keer dat ik het aanpas weer. Dus na een tijdje krijg je //////" te zien. Terwijl ik, als ik het stukje html via phpmyadmin in de database plaats, hij dat niet doet en hij gewoon perfect werkt.
Weet iemand wat ik fout doe? moet ik tinymce op een andere manier "installeren" of het veld in de database een andere soort geven? Dat is nu trouwens gewoon text.
Dat zijn de "wonderbaarlijke" magic quotes van php waarschijnlijk. Een gruwel waar menig programmeur een essay vol ergernis over kan schrijven.
Natuurlijk moet er wel altijd input ge-escaped worden omdat er anders een veiligheidsrisico ontstaat. Waarschijnlijk zit dit altijd standaard in je TinyMCE.
Je kan natuurlijk bij je output gebruik maken van [php]stripslashes[/php] om de slashes kwijt te raken.
Hmm zal het eens proberen.
Zou ik ook:
<?php
echo stripslashes($row["content"]);
?>
kunnen doen of moet ik eerst de gegevens uit de database in een string zetten ofzo? heb nu namelijk geen ftp tot mijn beschikking dus kan het nog niet proberen.. :(
Je kan op php.net bij de functie kijken naar de return value. Dan zie je dat [php]stripslashes[/php] een string returned en je die dus inderdaad gewoon kan echo-en.
Besef wel dat, wat ik uit je eerste post opmaak, je nu bij elke update er een ' / ' bij krijgt. Ik denk niet dat dat een ideale situatie is. Ik weet niet hoe TinyMCE precies in elkaar steekt. Ik denk dat het eenvoudig aan te passen is om dit probleem te verhelpen, ik zal zo even een kijkje nemen in dat systeem.
Heb het nu in de pagina waarop de bezoekers de inhoud kunnen zien toegepast, maar ook in de pagina waar je het aan kan passen.
Dus hij echoot dan dus de tekst uit de database zonder de streepjes, dus na het aanpassen, komt er 1 bij, maar omdat hij tijdens het aanpassen er geen 1 meer in had staan, komt het niet hoger als 1 streepje.. Dus in de database staat wel een schuin streepje erbij, maar op de pagina om het te laten zien word die eruit gehaald, en zodra je hem gaat aanpassen ook, komt dus nooit meer als 1 streepje bij.
Werkt verder prima, tenminste, ben nog geen fouten of problemen tegen gekomen! :)