Ik ben bezig met het maken van een eigen CMS voor mijn website en nu ben ik op het probleem gestuit dat ik apostrofes(') en citeringstekens (") niet kan invullen want dan krijg ik een error. Ik vul het uiteraard via een form in, die het vervolgens naar de DB stuurt. De oplossing kan ik niet vinden en op google krijg ik heel andere dingen, wat ook niet zo gek is.

Ik moet nog wel html in kunnen vullen in mijn input, want anders dan heb ik er nog niets aan.
Het hangt nogal af van de code die je formuliergegevens verwerkt.
[edit]Kijk anders even naar de code van een voorbeeldformulier die ik online heb staan.[/edit]
Die is niet zo heel ingewikkeld, maar wel vrij lang een heeeel onoverzichtelijk. Heb je niet een linkje ofzo waar oplossingen staan.
Even een testje. Wat heeft het volgende scriptje als uitvoer bij jou?

<?php
    echo get_magic_quotes_gpc ();
?>
Jan Koehoorn schreef op 28.10.2007 18:17
Even een testje. Wat heeft het volgende scriptje als uitvoer bij jou?

<?php
    echo get_magic_quotes_gpc ();
?>

Hij geeft 1 als uitvoer.
Wat voor computer heb je? Als het uitvoeren van dat script al 10 minuten duurt ;-)


Maar ff serieus: magic quotes staat aan, wat betekent dat PHP automatisch een aantal tekens voor je gaat escapen. Wat ik zelf altijd doe, is via een .htaccess bestand die magic quotes uitzetten.

Je moet er dan wel heel goed op letten dat je, voordat je je gegevens in je DB zet, er even mysql_real_escape_string overheen haalt. Zo ben je meteen beveiligd tegen MySQL injection.

[edit]dat .htaccess bestand moet in de root van je site staan. Zet dit er in:

# magic quotes uit
php_flag magic_quotes_gpc off

[/edit]
Nu werkt deze " wel, maar deze ' nog niet. Ik heb .htaccess in de root gezet. Hij geeft nu 0 als uitvoer. Het script waar ik trouwens mijn gegevens invul en verstuur naar de DB staat in de map admin.
Ik gebruik trouwens Xampp om mijn website te hosten. Ik moet die .htaccess toch in de map zetten waarin ook mijn website staat. In htdocs dus?
Help me alsjeblieft. Ik moet echt een oplossing hebben, want anders kan ik in geen enkele inputform dit ' zetten.
Gebruik dan dus mysql_real_escape_string() om input vanuit een formulier te beveiligen voordat je het wegschrijft naar de database...

Reageren