Ik ben een news-scriptje aan het maken. Het is de bedoeling dat de gebruiker ook allerlei apparte tekens kan gebruiken, die zo ook weer in de newspost terugkomen. Dus als de gebruiker een ' of \ tikt, moet in de newspost een ' of \ staan. En als hij \\ of \' tikt, moet in de newspost respectievelijk \\ of \' staan (en dus niet of ').
Het punt is dat dit scriptje moet werken, ongeacht of magic_quotes_gpc aanstaat. Ik heb daarvoor de volgende code (schematisch weergegeven):
Wanneer magic_quotes_gpc aanstaat werkt dit prima. Als de gebruiker een ' invult, wordt in de database ' opgeslagen. Bij het weergeven van de newspage wordt die weer gestript en wordt er weer netjes de ' weergegeven. Ook een backslash werkt goed.
Het gaat pas fout wanneer magic_quotes_gpc uit staat. De preview is gewoon goed, maar de newspost niet. De quotes doet ie dan goed, een ' wordt ' in de database en ' in de newspost. Maar de backslashes zijn een probleem. \' wordt '. Er wordt dus stiekum één backslash gestript als magic_quotes_gpc uit staat. Maar waar? Wat doe ik hier fout?
Het punt is dat dit scriptje moet werken, ongeacht of magic_quotes_gpc aanstaat. Ik heb daarvoor de volgende code (schematisch weergegeven):
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
| function addnews { // user vult wat in in tekstvak 'contents' // klikt submit, wordt verstuurd naar 'preview' } function preview { $contents = $_POST['contents']; if (get_magic_quotes_gpc() == 1) $contents = stripslashes($contents); // preview wordt getekend (werkt perfect) // tekstvak wordt gevuld met $contents (werkt perfect) // user verandert eventueel iets in tekstvak // submit --> wordt verstuurd naar 'post' } function post { $contents = $_POST['contents']; if (get_magic_quotes_gpc() == 0) $contents = addslashes($contents); // $contents wordt naar database geschreven } function shownews { // $contents wordt ingelezen van database echo $contents; // ik hoef niet te strippen want dat gebeurt al bij het invoegen in de database?? } |
Wanneer magic_quotes_gpc aanstaat werkt dit prima. Als de gebruiker een ' invult, wordt in de database ' opgeslagen. Bij het weergeven van de newspage wordt die weer gestript en wordt er weer netjes de ' weergegeven. Ook een backslash werkt goed.
Het gaat pas fout wanneer magic_quotes_gpc uit staat. De preview is gewoon goed, maar de newspost niet. De quotes doet ie dan goed, een ' wordt ' in de database en ' in de newspost. Maar de backslashes zijn een probleem. \' wordt '. Er wordt dus stiekum één backslash gestript als magic_quotes_gpc uit staat. Maar waar? Wat doe ik hier fout?
[ Voor 21% gewijzigd door Maniakje op 03-11-2003 23:40 ]
The sentence below is true.
The sentence above is false.