formulier fout
nou ik probeer zelf een systeem te maken dat "solicitatie systeem" inhoud
via een formulier moet je gegevens in een database kunnen zetten
dit is toevoegen.php:
Code (php)
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
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
<?php
mysql_connect('localhost','maarten_sol','sol');
mysql_select_db('maarten_sol') or die (mysql_error());
if(isset($_POST['verzenden']))
{
$shabbonaam = addslashes($_POST['habbonaam']);
$sskypenaam = addslashes($_POST['skypenaam']);
$iLeeftijd = addslashes($_POST['leeftijd']);
$inum = addslashes($_POST['num']);
$serv = addslashes($_POST['serv']);
$ssche = addslashes($_POST['sche']);
$ssoft = addslashes($_POST['soft']);
$smuzlist = addslashes($_POST['muzlist']);
$smuzdr = addslashes($_POST['muzdr']);
$side = addslashes($_POST['ide']);
$swhy = addslashes($_POST['why']);
mysql_query("INSERT INTO formulier (habbonaam, skypenaam, leeftijd, num, erv, sche, soft, muzlist, muzdr, ide, why) VALUES ('".$shabbonaam."', '".$sskypenaam."', '".$iLeeftijd."', '".$inum."' ,'".$sserv."' ,'".$sserv."' ,'".$ssche."' ,'".$ssoft."' ,'".$smuzlist."' ,'".$smuzdr."' ,'".$side."' ,'".$swhy."') or die (mysql_error());
echo 'Je gegevens zijn succesvol in de database geplaatst';
}
else
{
?>
<form action=" [code]<?=$_SERVER['PHP_SELF']?> " method="POST">
habbonaam <input type="text" name="habbonaam"><br />
skypenaam <input type="text" name="skypenaam"><br />
leeftijd <input type="text" name="leeftijd"><br />
heb je ervaring ? <input type="text" name="erv"><br />
nummers(liedjes) op je computer <input type="text" name="num"><br />
software die je gebruikt om te draaien: <input type="text" name="soft"><br />
Naar wat voor muziek luister je graag? <input type="text" name="muzlist"><br />
Wat voor soort muziek draai jij voor de luisteraars? <input type="text" name="muzdr"><br />
Heb je al idee�n om je progamma aantrekkelijk te maken? <input type="text" name="ide"><br />
waarom moet jij een dj worden bij hithabbo ?<input type="text" name="why"><br />
<input type="submit" name="verzenden" value="verzenden">
</form>
<?
}
?>
mysql_connect('localhost','maarten_sol','sol');
mysql_select_db('maarten_sol') or die (mysql_error());
if(isset($_POST['verzenden']))
{
$shabbonaam = addslashes($_POST['habbonaam']);
$sskypenaam = addslashes($_POST['skypenaam']);
$iLeeftijd = addslashes($_POST['leeftijd']);
$inum = addslashes($_POST['num']);
$serv = addslashes($_POST['serv']);
$ssche = addslashes($_POST['sche']);
$ssoft = addslashes($_POST['soft']);
$smuzlist = addslashes($_POST['muzlist']);
$smuzdr = addslashes($_POST['muzdr']);
$side = addslashes($_POST['ide']);
$swhy = addslashes($_POST['why']);
mysql_query("INSERT INTO formulier (habbonaam, skypenaam, leeftijd, num, erv, sche, soft, muzlist, muzdr, ide, why) VALUES ('".$shabbonaam."', '".$sskypenaam."', '".$iLeeftijd."', '".$inum."' ,'".$sserv."' ,'".$sserv."' ,'".$ssche."' ,'".$ssoft."' ,'".$smuzlist."' ,'".$smuzdr."' ,'".$side."' ,'".$swhy."') or die (mysql_error());
echo 'Je gegevens zijn succesvol in de database geplaatst';
}
else
{
?>
<form action=" [code]<?=$_SERVER['PHP_SELF']?> " method="POST">
habbonaam <input type="text" name="habbonaam"><br />
skypenaam <input type="text" name="skypenaam"><br />
leeftijd <input type="text" name="leeftijd"><br />
heb je ervaring ? <input type="text" name="erv"><br />
nummers(liedjes) op je computer <input type="text" name="num"><br />
software die je gebruikt om te draaien: <input type="text" name="soft"><br />
Naar wat voor muziek luister je graag? <input type="text" name="muzlist"><br />
Wat voor soort muziek draai jij voor de luisteraars? <input type="text" name="muzdr"><br />
Heb je al idee�n om je progamma aantrekkelijk te maken? <input type="text" name="ide"><br />
waarom moet jij een dj worden bij hithabbo ?<input type="text" name="why"><br />
<input type="submit" name="verzenden" value="verzenden">
</form>
<?
}
?>
dat zou hem moeten sturen naar deze rijen:
en hij geeft dit aan:
Column count doesn't match value count at row 1
ik heb de database nagekeken en alle rijen zijn er
Toevoeging op 07/02/2011 08:02:37:
ik zie al dat de text rood is maar wat is daar aan te doen ?
Gewijzigd op 07/02/2011 08:01:35 door Maarten heijden
- Controleren of een formulier gepost is doe je met if($_SERVER['REQUEST_METHOD'] == 'POST'), soms wordt de submit knop niet meegestuurd, ook is het zo dat je nu alles mooi kan groeperen op post afhandeling.
- addslashes nooit of te nimmer gebruiken, zij verneuken per definitie je data. Gebruik mysql_real_escape_string.
- Foutafhandeling van de query ontbreekt.
- Donwload een editor zoals notepad++ en kijk naar de kleurtjes. Komt alles overeen? Zijn er een even aantal ' en " ? Zie ook sprintf voorbeeld op mysql_real_escape_string.
dus..
de normale code (zonder aanpassingen zoals:
)
deed hij het wel (maar niet alle rijen in database aleen habbonaam skypenaam en leeftijd)
maar als ik ze zelfstandig toevoeg krijgen we die eror's
dus kun je me vertellen hoe ik handmatig invoeg-rijen kan toevoegen ?
Alle rijen in je INSERT-query moeten overeenkomen de de omschreven velden in die query.
dit deel:
Code (php)
1
mysql_query("INSERT INTO formulier (habbonaam, skypenaam, leeftijd, num, erv, sche, soft, muzlist, muzdr, ide, why) VALUES ('".$shabbonaam."', '".$sskypenaam."', '".$iLeeftijd."', '".$inum."' ,'".$sserv."' ,'".$sserv."' ,'".$ssche."' ,'".$ssoft."' ,'".$smuzlist."' ,'".$smuzdr."' ,'".$side."' ,'".$swhy."') or die (mysql_error());
en dit deel:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
if(isset($_POST['verzenden']))
{
$shabbonaam = addslashes($_POST['habbonaam']);
$sskypenaam = addslashes($_POST['skypenaam']);
$iLeeftijd = addslashes($_POST['leeftijd']);
$inum = addslashes($_POST['num']);
$serv = addslashes($_POST['serv']);
$ssche = addslashes($_POST['sche']);
$ssoft = addslashes($_POST['soft']);
$smuzlist = addslashes($_POST['muzlist']);
$smuzdr = addslashes($_POST['muzdr']);
$side = addslashes($_POST['ide']);
$swhy = addslashes($_POST['why']);
{
$shabbonaam = addslashes($_POST['habbonaam']);
$sskypenaam = addslashes($_POST['skypenaam']);
$iLeeftijd = addslashes($_POST['leeftijd']);
$inum = addslashes($_POST['num']);
$serv = addslashes($_POST['serv']);
$ssche = addslashes($_POST['sche']);
$ssoft = addslashes($_POST['soft']);
$smuzlist = addslashes($_POST['muzlist']);
$smuzdr = addslashes($_POST['muzdr']);
$side = addslashes($_POST['ide']);
$swhy = addslashes($_POST['why']);
of kun je het voordoen plz ?
want volgens mij komen die wel overeen
Gewijzigd op 07/02/2011 09:55:19 door maarten heijden
Zie dus ook mijn post.
Maarten heijden op 07/02/2011 07:57:34:
if(isset($_POST['verzenden']))
Niet doen!
Een submit knop dient om te submitten, niet om controleren of er iets gepost is.
Die waarde wordt vaak niet meegestuurd naar de server.
Weten of er een post request is, doe je met
if ($_SERVER['REQUEST_METHOD'] == 'POST')
Wil je specifiek weten welk formulier is opgestuurd, zet dan een extra hidden input met die informatie.
Dit zou je prima in je mysql_query kunnen verwerken dan dat je alle variabelen op lijn 7 t/m 17 over kopieert.
Vraag, is mijn post zo onduidelijk ofzo?