Mis mijn formulier
Het is het volgende script gedeelte:
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
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
<?
$form = true;
if(isset($_GET['a']) && $_GET['a'] == "toevoegen"){
$form = true;
if(isset($_POST['submit'])){
$form = false;
if($_POST['titel'] == "" || $_POST['prijs'] == ""){
echo mededeling("rood", "Een of meerdere verplichte velden zijn leeg gelaten.");
$form = true;
}
if(!$form){
if(!$form){
$sql = mysql_query("INSERT INTO Tabel
VALUES ('', '". $_POST['titel'] ."', '". $_POST['geinspireerd'] ."', '". $_POST['inhoud'] ."', '". $_POST['prijs'] ."', '". $_POST['geurgroep'] ."', '". $_POST['details'] ."', '". $_POST['collectie'] ."', '". $_POST['model'] ."', '". $_POST['afbeelding'] ."', '". $_POST['nieuw'] ."')");
if($sql){
echo mededeling("uitroepteken", "De parfum is succesvol toegevoegd.");
$overzicht = true;
}
else{
echo mededeling("error", "Er ging iets fout tijdens het toevoegen van dit parfum. Hieronder kunt u het nogmaals proberen.");
$form = true;
}
}
}
if($form){
echo "<form method='post'>
<table width='500' border='0' cellpadding='0' cellspacing='0'>
<tr>
<td>Naam:</td>
<td><input size='47' type='text' value='". $_POST['titel'] ."' name='titel'></td>
</tr>
<tr>
<td>Geinspireerd door:</td>
<td><input size='47' type='text' value='". $_POST['geinspireerd'] ."' name='geinspireerd'></td>
</tr>
<tr>
<td>Inhoud:</td>
<td>
<select name='inhoud'>";
$s_q = mysql_query("SELECT * FROM Inhoud ORDER BY Inhoud DESC") or die(mysql_error());
while($s = mysql_fetch_assoc($s_q)){
echo "<option value='". $s['ID'] ."'>". $s['Inhoud'] ."</option>";
}
echo "</select></td>
</tr>
<tr>
<td>Prijs:</td>
<td>
<select name='prij...
";
?>
$form = true;
if(isset($_GET['a']) && $_GET['a'] == "toevoegen"){
$form = true;
if(isset($_POST['submit'])){
$form = false;
if($_POST['titel'] == "" || $_POST['prijs'] == ""){
echo mededeling("rood", "Een of meerdere verplichte velden zijn leeg gelaten.");
$form = true;
}
if(!$form){
if(!$form){
$sql = mysql_query("INSERT INTO Tabel
VALUES ('', '". $_POST['titel'] ."', '". $_POST['geinspireerd'] ."', '". $_POST['inhoud'] ."', '". $_POST['prijs'] ."', '". $_POST['geurgroep'] ."', '". $_POST['details'] ."', '". $_POST['collectie'] ."', '". $_POST['model'] ."', '". $_POST['afbeelding'] ."', '". $_POST['nieuw'] ."')");
if($sql){
echo mededeling("uitroepteken", "De parfum is succesvol toegevoegd.");
$overzicht = true;
}
else{
echo mededeling("error", "Er ging iets fout tijdens het toevoegen van dit parfum. Hieronder kunt u het nogmaals proberen.");
$form = true;
}
}
}
if($form){
echo "<form method='post'>
<table width='500' border='0' cellpadding='0' cellspacing='0'>
<tr>
<td>Naam:</td>
<td><input size='47' type='text' value='". $_POST['titel'] ."' name='titel'></td>
</tr>
<tr>
<td>Geinspireerd door:</td>
<td><input size='47' type='text' value='". $_POST['geinspireerd'] ."' name='geinspireerd'></td>
</tr>
<tr>
<td>Inhoud:</td>
<td>
<select name='inhoud'>";
$s_q = mysql_query("SELECT * FROM Inhoud ORDER BY Inhoud DESC") or die(mysql_error());
while($s = mysql_fetch_assoc($s_q)){
echo "<option value='". $s['ID'] ."'>". $s['Inhoud'] ."</option>";
}
echo "</select></td>
</tr>
<tr>
<td>Prijs:</td>
<td>
<select name='prij...
";
?>
Ik hoop dat iemand van jullie ziet waarom het formulier niet meer wordt weergegeven op de pagina.
Nee, het vreemde van alles is. Ik krijg geen foutmeldingen meer... spijtig genoeg.
Owja, ik heb er 1 van die 2 weg gehaald.... nu werkt alleen het posten van het formulier niet meer, ik heb al wel het formulier terug
Neem eens een kijkje in deze PHP beginnershandleiding en lees dan met name de stukken die over forumlieren in PHP gaan. Daar wordt uitgelegd hoe je formulieren veilig opzet. Ook dit script met een uitgebreide formuliercontrole is het bekijken waard. Succes!
2. Een formulier posten doen we op de volgende manier:
3. Bij je query gebruik je *, Noem gewoon alle namen op die je eruit wilt halen.
4. Om een veld controle te doen kan je het beste op de volgende manier doen:
5. Gebruik gewoon
ark schreef op 06.06.2009 15:53:
Die isset() is daar overbodig, die zit immers ook al in empty() verwerkt. Die functie controleert namelijk zowel of een variabele bestaat en of hij gevuld is.4. Om een veld controle te doen kan je het beste op de volgende manier doen:
ps. In een formulier controle is het niet altijd handig om empty() te gebruiken, aangezien deze functie ook false teruggeeft bij bijvoorbeeld '0'. Gebruik voor de controle op een lege string liever:
Dank jullie wel voor de posten. Ik ga er gewoon opnieuw mee aan de slag, en ga eerst eens die pagina goed doorlezen die ik eerder kreeg.
Dus eigenlijk is
al goed genoeg?
/* Edit */
Dan zou de volgende manier ook goed zijn?
Gewijzigd op 01/01/1970 01:00:00 door Mr.Ark
@ Ark, inderdaad. Maar zoals hij zegt, bij invullen van 0 returned hij wel false
Quote:
@ Ark, inderdaad. Maar zoals hij zegt, bij invullen van 0 returned hij wel false
Maar om een cijfer controle uit te voeren gebruik je toch is_numeric ?
@ Blanche
Inderdaad, Snap het.
ark schreef op 06.06.2009 16:07:
Jep, of als je integers wilt hebben kun je ook nog ctype_digit() gebruiken...Maar om een cijfer controle uit te voeren gebruik je toch is_numeric ?