Avatar billede MathLund Nybegynder
27. februar 2012 - 11:08 Der er 6 kommentarer og
1 løsning

Insert into quiz WHERE id??

Hej eksperter.

Er igang med en quiz, hvor jeg prøver at få indsat spørgsmålene ind til tablen som man lige har oprettet.

Hvordan gør man det?


    echo '<form method="POST">
          Quiz navn: <input type="text" name="quiz_name" /><br />
          Oprettet af: <input type="text" name="quiz_forfatter" />
           
            <input type="submit" name="letsgo" value="Opret!" /></form>';

    if($_POST['letsgo'])
    {   
        mysql_query("INSERT INTO quiz (navn,dato,username) VALUES ('$_POST[quiz_name]',NOW(),'$_POST[quiz_forfatter]')");
        echo''.$_POST['quiz_name'].' oprettet af '.$_POST['quiz_forfatter'].'';
       
        echo'<div display="none" id="blueborder" style="width:600px;border:3px solid blue;margin: 0 auto;">';
        echo'<form method="POST">
              Q 1: <input type="text" name="q1" /><br />
              Q 2: <input type="text" name="q2" /><br />
              Q 3: <input type="text" name="q3" /><br />
           

                <input type="submit" name="quiz_klar" value="Opret!" /></form>';
       
            if($_POST['quiz_klar']);
            {
                mysql_query("INSERT INTO quiz (quest_1,quest_2,quest_3) VALUES ('$_POST[q1]','$_POST[q2]','$_POST[q3]')");
                echo'INDSAT';
            }


tak på forhånd!
Avatar billede olebole Juniormester
27. februar 2012 - 16:50 #1
<ole>

Jeg forstår ikke din kode - og så mangler du da vist en }.

Derudover er det ikke god kodeskik at blande PHP-kode ind HTML'en - hvad det ser ud til, du gør. Opret i stedet funktioner i toppen af dokumentet, som returnerer HTML-strenge. Så kan du kalde funktionerne 'nede' fra HTML'en og udskrive det returnerede.

Det værste af det er dog, at det er tudelet at tømme hele din database for enhver, der kommer ind på siden. Du må aldig nogensinde bruge brugerinput direkte i en SQL-streng!

Tag lige et kik på en hurtig forklaring af SQL-injection. Der er mange dårlige måder til at forsøge at undgå SQL-injections i PHP's MySQL-API, men langt den bedste løsning er at bruge Prepared Statements det mere moderne API MySQLI (MySQL Improved).

/mvh
</bole>
Avatar billede MathLund Nybegynder
28. februar 2012 - 08:51 #2
okay tak olebole :)

kan du så svare mig på hvordan mouseclick fungerer?
               
<form method="POST">
    <input type="radio" name="rating" value="1" /> 1
    <input type="radio" name="rating" value="2" /> 2
    <input type="radio" name="rating" value="3" /> 3
    <input type="radio" name="rating" value="4" /> 4
    <input type="radio" name="rating" value="5" /> 5
    <input type="radio" name="rating" value="6" /> 6
    <input type="radio" name="rating" value="7" /> 7
    <input type="radio" name="rating" value="8" /> 8
    <input type="radio" name="rating" value="9" /> 9
    <input type="radio" name="rating" value="10" /> 10
</form>';

    if($_POST['rating'])
    {
        mysql_query("INSERT INTO hot_or_not (rating) VALUES ('$_POST[rating]')");
        echo'indsat';
    }

hvordan gør man så man ikke behøver en submit button, så når man bare klikker på 1,2,3,4,5,6,7,8,9 eller 10, så indsætter den i databasen? :)
Avatar billede olebole Juniormester
28. februar 2012 - 14:47 #3
Du sætter denne onclick handler på dine radios:

<input type="radio" name="rating" value="1" onclick="this.form.submit()">

- og din SQL er stadig selvmorderisk.

Bruger du ikke XML i dit dokument, er der ingen grund til at skrive i XHTML, så i stedet for at afslutte tomme elementer med ' />' bør du bare bruge '>'. Derfor har jeg rettet dette i koden
Avatar billede MathLund Nybegynder
03. marts 2012 - 19:22 #4
helt perfekt! giv et svar :D
Avatar billede olebole Juniormester
03. marts 2012 - 19:26 #5
Ellers tak, jeg samler ikke point. Læg selv et svar og accepter det, så tråden lukkes  =)
Avatar billede MathLund Nybegynder
07. marts 2012 - 14:11 #6
I orden :) tak for hjælpen!
Avatar billede olebole Juniormester
07. marts 2012 - 16:19 #7
Selvtak  =)
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