Inschrijvingsformulier met extra opties.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Dennis Driessen

Dennis Driessen

13/02/2008 11:34:00
Quote Anchor link
Hoi,

Ik ben bezig met het maken van een inschrijfformulier voor een workshop-dag.
Dit is de website: http://dendri0.freehostia.com/spolt/
Hij is nog 100% HTML. Maar had graag de ingevulde gegevens weggeschreven in mijn MySQL database, zodat ik het dan in Excel of Access kan overzetten.

Maar nu is het probleem het wilt niet lukken,
Er kunnen maximaal 200 mensen zich opgeven voor een workshop, ik wil graag dat er foutmelding komt, ofdat de workshop niet meer kiesbaar is in het menu. Maargoed dat is zorg voor later.

Ik hoop dat mensen me opweg kunnen helpen.
Heb veel gelezen en geprobeerd maar zie door de bomen het bos niet meer.

DennizZ.

EDIT:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
$sql = "INSERT INTO Klant (Voornaam, Tussenvoegsel, Achternaam, School,
Keuze1, Keuze2, Reserve1, Reserve2, Reserve3) VALUES ('$voornaam',
'$tussenvoegsel', '$achternaam', '$school', '$KEUZE1', '$KEUZE2',
'$RESERVE1', '$RESERVE2', 'RESERVE3')";


Ben ik hier mee op de goede weg? Bij alle input velden heb ik in HTML de namen hetzelfde als achter het $ teken. En de namen zonder $ ervoor zijn mijn database tabellen.
Ik heb dit van een ander script gekopieerd en aangepast.
Gewijzigd op 01/01/1970 01:00:00 door Dennis Driessen
 
PHP hulp

PHP hulp

05/01/2025 11:31:02
 
Gerben Jacobs

Gerben Jacobs

13/02/2008 12:01:00
Quote Anchor link
Ja en nee. Je gebruikt inderdaad een INSERT INTO maar de namen van de html velden gaan natuurlijk nooit overéén komen met die php variabelen.



Dit is natuurlijk niet 100% compleet, maar je snapt 't idee wel:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
$sql
= sprintf(
        "INSERT INTO Klant (Voornaam, Tussenvoegsel, Achternaam, School, Keuze1, Keuze2, Reserve1, Reserve2, Reserve3)
        VALUES ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s')"
,
            mysql_real_escape_string($_POST["voornaam"],
            mysql_real_escape_string($_POST["tussenvoegsel"],
            # etc..
        );
?>
 
Dennis Driessen

Dennis Driessen

13/02/2008 12:13:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
$sql
= sprintf(
        "INSERT INTO inschrijvingen (Voornaam, Tussenvoegsel, Achternaam, School, Keuze1, Keuze2, Reserve1, Reserve2, Reserve3)
        VALUES ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s')"
,
            mysql_real_escape_string($_POST["VNAAM"],
            mysql_real_escape_string($_POST["TSSV    "],
            mysql_real_escape_string($_POST["ANAAM"],
            mysql_real_escape_string($_POST["SCHOOL"],
            mysql_real_escape_string($_POST["KEUZE1"],
            mysql_real_escape_string($_POST["KEUZE2"],
            mysql_real_escape_string($_POST["RESERVE1"],
            mysql_real_escape_string($_POST["RESERVE2"],
            mysql_real_escape_string($_POST["RESERVE3"],

        );

?>


Ik heb nou deze code, ik heb bij die mysql_real_escape_string de waarde ingevuld die ik bij het tekstveld heb ingevuld bij name="...".
Dus <input name="VNAAM"> en mysql_real_escape_string($_POST["VNAAM"],

Dat klopt tot dusver?
Dan moet ik toch nog de submit button aanpassen oid en dan is het klaar?
 
Gerben Jacobs

Gerben Jacobs

13/02/2008 12:23:00
Quote Anchor link
Er moet ook nog een mysql_query() om 't uit te voeren..

(en pgFrank zou ook nog willen dat je er een mysql_affected_rows bij doet, maar da's niet noodzakelijk) en dan ben je inderdaad wel ver ja.

p.s. bij TSSV zit nog een tab.. die moet weg.
 
Dennis Driessen

Dennis Driessen

13/02/2008 12:29:00
Quote Anchor link
Ik heb dus nu deze code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
$sql
= sprintf(
        "INSERT INTO inschrijvingen (Voornaam, Tussenvoegsel, Achternaam, School, Keuze1, Keuze2, Reserve1, Reserve2, Reserve3)
        VALUES ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s')"
,
            mysql_real_escape_string($_POST["VNAAM"],
            mysql_real_escape_string($_POST["TSSV"],
            mysql_real_escape_string($_POST["ANAAM"],
            mysql_real_escape_string($_POST["SCHOOL"],
            mysql_real_escape_string($_POST["KEUZE1"],
            mysql_real_escape_string($_POST["KEUZE2"],
            mysql_real_escape_string($_POST["RESERVE1"],
            mysql_real_escape_string($_POST["RESERVE2"],
            mysql_real_escape_string($_POST["RESERVE3"],

        );


if(!$res = mysql_query($sql))
{

    trigger_error(mysql_error().'<br />In query: '.$sql);
}

?>


En dan zet ik daar nog bij:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
require_once 'db_config.php';


Ik heb deze informatie uit de SQL beginners cursus. Dus ik ga ervanuit dat dit verder klopt.
Bedankt voor de hulp Gerben tot nog toe!
Moet ik nog wat aan de HTML veranderen verder of wilt het zo ook wel?

EDIT:
====
Dit levert mij een mooie error op:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
Parse error: parse error, unexpected ')' in /home/www/dennisdriessen.com/spolt/index.php on line 15


Het heeft wat te maken met de ); denk ik want die zit op regel 15.
Ik heb deze veranderd naar deze code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
$sql
= sprintf(
        "INSERT INTO inschrijvingen (Voornaam, Tussenvoegsel, Achternaam, School, Keuze1, Keuze2, Reserve1, Reserve2, Reserve3)
        VALUES ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s')"
,
            mysql_real_escape_string($_POST["VNAAM"],
            mysql_real_escape_string($_POST["TSSV"],
            mysql_real_escape_string($_POST["ANAAM"],
            mysql_real_escape_string($_POST["SCHOOL"],
            mysql_real_escape_string($_POST["KEUZE1"],
            mysql_real_escape_string($_POST["KEUZE2"],
            mysql_real_escape_string($_POST["RESERVE1"],
            mysql_real_escape_string($_POST["RESERVE2"],
            mysql_real_escape_string($_POST["RESERVE3"],');

if(!$res = mysql_query($sql))
{
    trigger_error(mysql_error().'
<br />In query: '.$sql);
}

?>


En dan krijg ik een error dat er op regel 23 een unexpected > zou staan.
Gewijzigd op 01/01/1970 01:00:00 door Dennis Driessen
 
Dennis Driessen

Dennis Driessen

15/02/2008 08:35:00
Quote Anchor link
Ik blijf de foutmelding Query was empty houden.
Ook na alle aanpassingen.

Huidige code register.php
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
<?php

include_once "functions.php";

connect();

if(!$_POST['submit']){
    echo "<table border=\"0\" cellspacing=\"3\" cellpadding=
\"3\">\n"
;
    echo "<form method=\"post\" action=\"register.php\">\n";
    echo "<td colspan=\"2\" align=\"center\">Registration Form\n";
    echo "Voornaam:<\td input type=\"text\" name\"vnaam\">\n";
    echo "Tussenvoegsel:<\td input type=\"text\" name\"tssv\">\n";
    echo "Achternaam:<\td input type=\"text\" name\"anaam\">\n";
    echo "E-mailadres:<\td input type=\"text\" name\"email\">\n";
    echo "School:<\td input type=\"text\" name\"school\">\n";
    echo "Eerste keuze:<\td input type=\"text\" name\"keuze1\">\n";
    echo "Tweede keuze:<\td input type=\"text\" name\"keuze2\">\n";
    echo "Eerste reservekeuze:<\td input type=\"text\" name\"reserve1\">\n";
    echo "Tweede reservekeuze:<\td input type=\"text\" name\"reserve2\">\n";
    echo "Derde reservekeuze:<\td input type=\"text\" name\"reserve3\">\n";
    echo "<td colspan=\"2\" align=\"center\"><input type=\"submit\" name=\"submit\" value=\"Register\">\n";
    echo "</form></table>\n";
}
else {
    $vnaam = protect($_POST['vnaam']);
    $tssv = protect($_POST['tssv']);
    $anaam = protect($_POST['anaam']);
    $email = protect($_POST['email']);
    $keuze1 = protect($_POST['keuze1']);
    $keuze2 = protect($_POST['keuze2']);
    $reserve1 = protect($_POST['reserve1']);
    $reserve2 = protect($_POST['reserve2']);
    $reserve3 = protect($_POST['reserve3']);
    
    $errors = array();
    
        if(!$vnaam)    {
            $errors[] = "Het veld voornaam is niet ingevuld.";
             }
        
            
        if(!$tssv)    {
            $errors[] = "Het veld tussenvoegsel is niet ingevuld.";
             }
    
            
        if(!$anaam)    {
            $errors[] = "Het veld achternaam is niet ingevuld.";
             }
    

        if(!$email)    {
            $errors[] = "Het veld e-mailadres is niet ingevuld.";
             }
    

        if(!$school)    {
            $errors[] = "Het veld school is niet ingevuld.";
             }
    


        if(!$keuze1)    {
            $errors[] = "Het veld keuze is niet ingevuld.";
             }
    
            

        if(!$keuze2)    {
            $errors[] = "Het veld keuze 2 is niet ingevuld.";
             }
    
            

        if(!$reserve1)    {
            $errors[] = "Het veld reserve 1 is niet ingevuld.";
             }
    
            

        if(!$reserve2)    {
            $errors[] = "Het veld reserve 2 is niet ingevuld.";
             }
    
            

        if(!$reserve3)    {
            $errors[] = "Het veld reserve 3 is niet ingevuld.";
             }
    
            

        if(!$school)    {
            $errors[] = "Het veld school is niet ingevuld.";
             }
            
        
        if($email){
            $sql = "SELECT * FROM 'inschrijvingen' WHERE 'email'={$email}";
            $res = mysql_query($sql2) or die(mysql_error());
            
                if(mysql_num_rows($res) > 0){
                    $errors[] = "Er heeft zich al iemand opgegeven met dit e-mailadres";
                }
        }

        
        if(count($errors) > 0){
            foreach($errors AS $error){
                echo $error . "<br>\n";
            }
            
            }
else {
                $sql2 = "INSERT INTO 'inschrijvingen'
                        ('vnaam','tssv','anaam','email','school','keuze1','keuze2',
                        'reserve1','reserve2','reserve3')
                        VALUES ('vnaam','tssv','anaam','email','school','keuze1','keuze2',
                        'reserve1','reserve2','reserve3') "
;
                $res4 = mysql_query($sql2) or die (mysql_eror());
                echo "Bedankt voor je aanmelding! Het aanmelden is succesvol voltooid.";
                
            }
    
}




?>


en functions.php:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php

function protect($string)
{

    $string = mysql_real_escape_string($string);
    $string = strip_tags($string);
    $string = addslashes($string);

    return $string;

}

function
connect()
{

    $con = mysql_connect(localhost, database_naam, 'database_wachtwoord') or die (mysql_error());
    $db = mysql_select_db(inschrijvingen, $con);
}


?>


En de url is:


Ben echt ten einde raad.
 
- SanThe -

- SanThe -

15/02/2008 09:08:00
Quote Anchor link
Echo je query vlak voordat je 'm uitvoert.
 
Dennis Driessen

Dennis Driessen

15/02/2008 09:19:00
Quote Anchor link
Dat doet mijn script nu toch al?
 
- SanThe -

- SanThe -

15/02/2008 09:23:00
Quote Anchor link
$sql = "SELECT * FROM 'inschrijvingen' WHERE 'email'={$email}";
$res = mysql_query($sql2) or die(mysql_error());
 
Dennis Driessen

Dennis Driessen

15/02/2008 09:45:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
        if(count($errors) > 0){
            foreach($errors AS $error){
                echo $error . "<br>\n";
            }
            
            }else {
                $sql2 = "INSERT INTO 'inschrijvingen'
                        ('vnaam','tssv','anaam','email','school')
                        VALUES ('$vnaam','$tssv','$anaam','$email','$school') ";
                $res4 = mysql_query($sql2) or die (mysql_eror());
                echo "Bedankt voor je aanmelding! Het aanmelden is succesvol voltooid.";
                
            }


Heb dat gedeelte eruit gehaald, SanThe. Maar ik had nog een typo gevonden.
$res4 = mysql_query($sql2) or die (mysql_eror());
$res4 = mysql_query($sql2) or die (mysql_error());

Maar nu krijg ik deze error:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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 ''inschrijvingen' ('vnaam','tssv','anaam','email','school' at line 1
 
- SanThe -

- SanThe -

15/02/2008 09:51:00
Quote Anchor link
Géén quotes om de tabelnamen heen zetten.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.