Nederbasse wrote:
> "Johan Holst Nielsen" <spam@phpgeek.dk> skrev i en meddelelse 
> news:49a6552b$0$90272$14726298@news.sunsite.dk...
>> Nederbasse wrote:
>>> Hej
>>>
>>>
>>> På trods af advarsler er der stadig nogle der vil skrive f.eks. GPS'er i 
>>> en tekst der skal ind i en Mysql db hvilket giver en error.
>>>
>>> Hvordan sikre man at der kan indsættes ' og / i en Mysql database
>>> Databasens tegnsæt er UTF-8 Unicode (utf8)
>> mysql_real_escape_string();
>>
>> Det bedste er noget at lave en funktion ala
>>
>> function dbstr($str) {
>>   if(get_magic_quotes_gpc()) {
>>     $str = stripslashes($str);
>>   }
>>   return mysql_real_escape_string($str);
>> }
>>
>> Så når du indsætter laver du blot noget ala
>>
>> $str = "GPS'er";
>>
>> $sql = "INSERT INTO tabel (value) VALUES ('".dbstr($str)."')";
>> mysql_query($sql);
>>
>> ... og problemet er løst :)
>>
>>
> Det er desværre ikke så let
> Der er ca. 40 forskellige uddannelses institutioner der skal indsætte tekst 
> så derfor ved ikke ikke på forhånd hvor funktionen skal bruges. GPS'er er 
> bare et eksembel på hvad der kan komme i teksten.
Jamen det er jo ikke sådan du skal fikse det.
Dataene bliver f.eks. posted og du smider den ind i databaen via noget ala:
$sql = "INSERT INTO foo (val1, val2) VALUES 
('".$_POST['val1']."','".$_POST['val2']."')";
I stedet skal det blot være:
$sql = "INSERT INTO foo (val1, val2) VALUES 
('".dbstr($_POST['val1'])."','".dbstr($_POST['val2'])."')";
> Har jeg forstået det ret at problemet vil blive løst hvis  magic_quotes 
> bliver slået til?
Du skal IKKE slå den til. Det vil være det samme som hvis du ikke kunne 
finde ud af at bruge ovnen, så du i stedet saver dit spisebord i små 
stykker og tænder et bål i køkkenet, i stedet for at læse brugsanvisningen.
Som sagt - ovenstående metode er den mest "korrekte". magic_quotes_gpc 
er noget fanden har skabt i php, og ført til et væld af sikkerhedsfejl 
(som den du beskriver) i php applikationer. Derfor bliver den heldigvis 
også skrottet nu.
-- 
Johan Holst Nielsen
Freelance PHP Developer - 
http://phpgeek.dk