Avatar billede sesam Nybegynder
22. oktober 2004 - 12:51 Der er 22 kommentarer og
1 løsning

problemer med \

Hvordan smider jeg tegnet \ ind i min db...

og andre tegn som < > ' " &
Avatar billede sone Nybegynder
22. oktober 2004 - 12:51 #1
Hvad gør du nu?
Avatar billede 3xm Nybegynder
22. oktober 2004 - 12:54 #2
\\

=)
Avatar billede sesam Nybegynder
22. oktober 2004 - 12:58 #3
har prøvet med

$str = htmlentities($str);
$str = addslashes($str);
Avatar billede detox Nybegynder
22. oktober 2004 - 13:06 #4
Avatar billede detox Nybegynder
22. oktober 2004 - 13:06 #5
Husk at connecte til databasen før du bruger funktionen.
Avatar billede sone Nybegynder
22. oktober 2004 - 13:12 #6
må vi se din SQL...
Avatar billede sesam Nybegynder
22. oktober 2004 - 13:15 #7
$sql = "UPDATE `$tablename` SET `name` = '$name', u_id = '$_uid' WHERE `id` = '$id' LIMIT 1";
Avatar billede detox Nybegynder
22. oktober 2004 - 13:26 #8
Hvis det er '$name' det er galt med:

$sql = sprintf("UPDATE `$tablename` SET `name` = '%s', u_id = '$_uid' WHERE `id` = '$id' LIMIT 1",
  mysql_real_escape_string($name));
Avatar billede sesam Nybegynder
22. oktober 2004 - 13:38 #9
detox: vil du forklare...
Avatar billede detox Nybegynder
22. oktober 2004 - 13:43 #10
mysql_real_escape_string() indsætter de nødvendige backslash \ og
sprintf() giver dig en formateret streng, hvor den indsætter resultatet af mysql_real_escape_string() i stedet for %s.
Avatar billede sesam Nybegynder
22. oktober 2004 - 13:45 #11
%s hvad er det?
Avatar billede detox Nybegynder
22. oktober 2004 - 13:58 #12
%s er der hvor sprintf() indsætter resultatet af mysql_real_escape_string().
Avatar billede sesam Nybegynder
22. oktober 2004 - 14:03 #13
ok det er altså forud defineret...
Avatar billede detox Nybegynder
22. oktober 2004 - 14:04 #14
Ja, det er en slags 'stand in'. Du kan jo tjekke resultatet ved at printe forespørgslen ud, fx:

<?php
require 'db.php'; // Forbindelse til databasen
$tablename = 'tabel';
$name = 'hej \der';
$_uid = 123456;
$id = 4;

$sql = sprintf("UPDATE `$tablename` SET `name` = '%s', u_id = '$_uid' WHERE `id` = '$id' LIMIT 1",
  mysql_real_escape_string($name));
echo $sql;
?>
Avatar billede detox Nybegynder
22. oktober 2004 - 14:09 #15
Et simpelt eksempel:

$str = sprintf("Hej %s dig", "med");
echo $str;
Avatar billede sesam Nybegynder
22. oktober 2004 - 14:29 #16
mysql_real_escape_string($name));

kan man have flere variabler i
mysql_real_escape_string($name, $lastname));?
Avatar billede sesam Nybegynder
22. oktober 2004 - 14:40 #17
Hva' så når jeg heneter det fra databasen igen?
Avatar billede detox Nybegynder
22. oktober 2004 - 14:46 #18
Nej, men du kan have flere mysql_real_escape_string()'s i en sprintf(), fx:

$sql = sprintf("UPDATE `$tablename` SET `name` = '%s', lastname = '%s', u_id = '$_uid' WHERE `id` = '$id' LIMIT 1",
  mysql_real_escape_string($name),
  mysql_real_escape_string($lastname));
Avatar billede sesam Nybegynder
22. oktober 2004 - 14:48 #19
Hva' så når jeg heneter det fra databasen igen?
Avatar billede detox Nybegynder
24. oktober 2004 - 14:53 #20
Så skal du ikke foretage dig noget specielt, da selve backslash-tegnene ikke bliver gemt i databasen.
Avatar billede sesam Nybegynder
24. oktober 2004 - 14:58 #21
Ok takkker for hjælpen...
Avatar billede sesam Nybegynder
27. november 2004 - 15:50 #22
detox: Jeg har problemer nåj jeg skal hente værdien ud i en form fx i et tekst felt...

Der kommer ingenting frem da text feltets value er = ""test"" hvad skal jeg gøre???
Avatar billede detox Nybegynder
28. november 2004 - 01:02 #23
Prøv måske at bruge apostroffer omkring value:

<input type="text" name="test" value='<?php echo $test?>' />
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