Avatar billede nemlig Professor
16. november 2011 - 23:12 Der er 7 kommentarer og
2 løsninger

problem med mysql_real_escape_string()

Hejsa.
Når jeg gemmer data fra inputformularer, smidder jeg bl.a. dataene igennem mysql_real_escape_string().

På min localserver (WAMP) fungerer det uden problemer, men hvis jeg anvender scriptet på et traditionelt webhotel, så har jeg noget, der driller.

Hvis jeg fx. har skrevet følgende i et textarea:

Der blev sendt 2 sms'ere og der var "perfekt".

Så bliver det gemt sådan her på Webhotellet:

Det blev sendt 2 sms\'ere og det var \"perfekt\".

Hvordan undgår jeg, at der sættes \ foran single-quote og dobbelt quote?

Er det noget med først at bruge htmlspecialchars() eller?
Avatar billede arne_v Ekspert
17. november 2011 - 04:09 #1
Kalder du selv addslashes? (ikke godt)

Har web hotellet magic_quotes_gpc on? (katastrofalt !)
Avatar billede nemlig Professor
17. november 2011 - 07:48 #2
Jeg kalder ikke addslashes, men har nogle valideringer på inputfelter. På mine textareas har jeg alene mysql_real_escape_string()

Og webhotellet har magic_quotes_gpc on.

Det skal dog siges at der kun er adgang til input-felter efter pålogning, så der ikke adgang for alle og enhver til inputfelterne.
Avatar billede JensPeterSvensson Nybegynder
17. november 2011 - 08:58 #3
Hvis du har magic quotes på skal du stripslashes.

Noget i retning af dette (forbehold for fejl), burde virke uanset om php har magic_quotes på eller af.

<?php
function make_safe($val){
  if (get_magic_quotes_gpc()) {
    return mysql_real_escape_string(stripslashes($val));
  }
  return mysql_real_escape_string($val);
}

$navn = make_safe($_POST['navn']);
Avatar billede nemlig Professor
17. november 2011 - 09:12 #4
#3 Det var løsningen. Tak for bidraget.
#1 Arne: Jeg fornemmer på dine bemærkninger, at der er et sikkerhedsmæssigt problem?
Avatar billede arne_v Ekspert
17. november 2011 - 15:19 #5
"magic_quotes_gpc on" laeser jeg som "vi foretraekker kunder som er haabloese til at programmere i PHP og derfor synes vi at det er helt fint at goer livet surt for kunder som faktisk kan programmere i PHP"
Avatar billede arne_v Ekspert
17. november 2011 - 15:20 #6
Avatar billede nemlig Professor
18. november 2011 - 16:57 #7
OK - tak for info til Arne.

Smid et svar begge 2 og jeg deler pointene.
Avatar billede arne_v Ekspert
20. november 2011 - 03:24 #8
svar
Avatar billede JensPeterSvensson Nybegynder
23. november 2011 - 23:10 #9
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester