Avatar billede majbom Novice
11. november 2004 - 11:24 Der er 13 kommentarer og
1 løsning

fjerner alt efter '

hejsa..

jeg har et lille problem i mit forum;
når jeg opretter en post, hvor teksten indeholder tegnet ', sletter den alt efter tegnet inklusive tegnet og laver en backslash, jeg har et andet sted noget der ligner MEGET, men der skriver den tegnet og resten af teksten og jeg kan bare ikke se hvad der er forskellen på de to scripts...

her er den sql-sætning hvor der er problemer:
mysql_query("INSERT INTO news(brugerid, date, dato, navn, titel, indhold, kilde, kildeurl, pic, vist) VALUES('$brugerid', '$sidste', '$dato', '$bruger', '$_POST[titel]', '$indhold', '$_POST[kilde]', '$_POST[kildeurl]', '$_POST[pic]', '0')") or die(mysql_error());

pft
Avatar billede wickedd Juniormester
11. november 2004 - 11:28 #1
$indhold = ereg_replace("'","´",$indhold);
mysql_query("INSERT INTO news(brugerid, date, dato, navn, titel, indhold, kilde, kildeurl, pic, vist) VALUES('$brugerid', '$sidste', '$dato', '$bruger', '$_POST[titel]', '$indhold', '$_POST[kilde]', '$_POST[kildeurl]', '$_POST[pic]', '0')") or die(mysql_error());
Avatar billede majbom Novice
11. november 2004 - 11:30 #2
hmm...

som sagt så har jeg denne her som ligner, men her gør den som den skal...

mysql_query("INSERT INTO posts(brugerid, dato, kat, emne, indhold, navn, sidste, laast, ip, date) VALUES('$brugerid', '$dato', '$_POST[kat]', '$_POST[emne]', '$indhold', '$navn', '$sidste', '0', '$ip', '$date')") or die(mysql_error());
Avatar billede expnet Seniormester
11. november 2004 - 11:34 #3
<?=expnet?>

prøv at lave det om til det her der hvor du udskriver:

echo htmlspecialchars($indhold);

<?=expnet?>
Avatar billede majbom Novice
11. november 2004 - 11:38 #4
-> expnet
så skriver den heller ikke længere end til ', hvor den laver den om til 2 backslashes

hmm... så er det jo ikke noget med sql-sætningen..
Avatar billede expnet Seniormester
11. november 2004 - 11:39 #5
har du et link?
Avatar billede majbom Novice
11. november 2004 - 11:47 #6
jeg tror jeg har fundet ud af det..
fra den side hvor man skriver det som den så sletter noget af, bliver man sendt videre til en ny side, hvor variablerne fra første side kommer med, og bliver lagt i hidden inputs, så de kan komme med til den sidste side... og det er der at den fucker det op..
Avatar billede stalle Nybegynder
11. november 2004 - 12:08 #7
Mit bud - Når du smider i databasen gør du sådan:

$indhold=Addslashes($indhold);

Når du så henter ud, gør du sådan her:

$indhold=stripslashes($indhold);
Avatar billede majbom Novice
11. november 2004 - 12:19 #8
jamen hvis jeg nu skriver "test ' test", så skriver den "test \' test" på næste side...
så har jeg prøvet at lave en replace, men jeg kan ikke få det til at virke helt...
Avatar billede hmortensen Nybegynder
11. november 2004 - 12:49 #9
Avatar billede majbom Novice
11. november 2004 - 13:09 #10
takker... det virker med stripslashes();

smid lige et svar
Avatar billede sukos Juniormester
11. november 2004 - 21:39 #11
Du kan også kikke på denne artikel:

http://www.eksperten.dk/artikler/190
Avatar billede stalle Nybegynder
12. november 2004 - 06:37 #12
Grunden til at du får "fejlen" er at magic_quotes er sat til "on" i php konfigurationen.

Havde det ikke været det, og du havde undladt at bruge addslahes kunne det have medført at SQLen ikke virkede.

Men da du jo har magic_quotes sat til "on" sørger php selv for delen med at tilføje \ foran tegn der kan gøre "skade". Det er derfor kun nødvendigt at benytte sig af stripslahes, som jeg nævnte tidligere.
Avatar billede majbom Novice
12. november 2004 - 07:12 #13
ok, det er jo smart nok egentlig, når man lige ved hvad man skal gøre...

men takker for hjælpen, kan du ikke lige smide et svar?
Avatar billede stalle Nybegynder
12. november 2004 - 10:57 #14
Jamen det kan jeg da så lige gøre
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