Avatar billede rippie Nybegynder
20. juli 2005 - 23:52 Der er 7 kommentarer og
1 løsning

Mysql fejl. tegnet ' laver fejl

Hey folkens ....

har en input text boks som indeholde tegnet ' eks. Rippie's webdesign.

den bliver sendt afsted via en form og hedder så $_POST['link']

hvorfor laver den en fejl når jeg køre denne sql command ?

    $result = mysql_query("update subsites set
        name = '$_POST[name]',
        title = '$_POST[title]',
        link = '$_POST[link]',
        text1 = '$_POST[text1]',
        text2 = '$_POST[text2]',
        link_1 = '$_POST[link1]',
        link_2 = '$_POST[link2]',
        link_3 = '$_POST[link3]',
        link_4 = '$_POST[link4]',
        link_5 = '$_POST[link5]',
        link_1text = '$_POST[link1text]',
        link_2text = '$_POST[link2text]',
        link_3text = '$_POST[link3text]',
        link_4text = '$_POST[link4text]',
        link_5text = '$_POST[link5text]',
        template = '$_POST[template]'

        where id = '$_GET[id]'") or die (mysql_error());

Den siger denne fejl :
-------------------------------------
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Noer-Photo', link_4text = 'Web10 - Webhost', link_5text = 'Google Search',' at line 13
Avatar billede staywarde Nybegynder
20. juli 2005 - 23:56 #1
jeg ved ikke om det virker, men prøv
    $result = mysql_query("update subsites set
        name = '".$_POST['name']."',
        title = '".$_POST['title']."',
        link = '".$_POST['link']."',
        text1 = '".$_POST['text1']."',
        text2 = '".$_POST['text2']."',
        link_1 = '".$_POST['link1']."',
        link_2 = '".$_POST['link2']."',
        link_3 = '".$_POST['link3']."',
        link_4 = '".$_POST['link4']."',
        link_5 = '".$_POST['link5']."',
        link_1text = '".$_POST['link1text']."',
        link_2text = '".$_POST['link2text']."',
        link_3text = '".$_POST['link3text']."',
        link_4text = '".$_POST['link4text']."',
        link_5text = '".$_POST['link5text']."',
        template = '".$_POST['template']."'

        where id = '".$_GET['id']."'") or die (mysql_error());
Avatar billede rippie Nybegynder
21. juli 2005 - 00:01 #2
takker prøver senere
Avatar billede rippie Nybegynder
21. juli 2005 - 00:04 #3
Det virkede ikke ....
Avatar billede ksoren Nybegynder
21. juli 2005 - 01:23 #4
Når apostroffer skal indesættes, er du nødt til at escape dem sådan: \'
Det gøres nemmest ved at køre alt input gennem addslashes()
Avatar billede flatov Nybegynder
21. juli 2005 - 02:47 #5
$result = mysql_query("update subsites set name='$_POST[name]',
        title='$_POST[title]',
        link='$_POST[link]',
        text1='$_POST[text1]',
        text2='$_POST[text2]',
        link_1='$_POST[link1]',
        link_2='$_POST[link2]',
        link_3='$_POST[link3]',
        link_4='$_POST[link4]',
        link_5='$_POST[link5]',
        link_1text='$_POST[link1text]',
        link_2text='$_POST[link2text]',
        link_3text='$_POST[link3text]',
        link_4text='$_POST[link4text]',
        link_5text='$_POST[link5text]',
        template='$_POST[template]' where id = '$_GET[id]'") or die (mysql_error());

Det lyder underligt hvis det ikk virker, jeg gør det selv på nøjagtig samme måde.

ellers prøv at byt $_GET ud med $_REQUEST er lidt svært da jeg ikk ved hvordan du har din form.
Avatar billede ksoren Nybegynder
21. juli 2005 - 02:55 #6
flatoy, hvis du kan indsætte ' uden at foretage dig noget, er det fordi din server har magic quotes aktiveret. Så escaper php automatisk ved submit
Avatar billede rippie Nybegynder
22. juli 2005 - 06:53 #7
Jeg takker mange gange for dit svar. gider du lige svare så jeg kan give dig point ksoren ?
Avatar billede ksoren Nybegynder
28. juli 2005 - 03:13 #8
ok
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