Verwerken formulier werkt niet
als ik een formulier verwerkt komt ik op de volgende pagina met onderstaande code. alleen kom ik altijd bij de laatste echo uit er is iets fout gegaan iemand een idee waarom hij niet het script verwerkt wat meegegeven is bij het versturen van het formulier. ik kom er niet uit
alvast bedankt voor jullie reactie
alvast bedankt voor jullie reactie
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
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
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
<?php
ini_set('display_errors', 'ON');
error_reporting (E_ALL);
if($_SERVER['REQUEST_METHOD'] == 'POST'){
if($_POST['wijzig'] == true){
$errors = array();
if(!isset($_POST['product']) OR $_POST['product'] == ''){
//error toevoegen
$errors[] = 'Er is een geen product ingevuld';
}
if(!isset($_POST['groep']) OR $_POST['groep'] == ''){
//error toevoegen
$errors[] = 'Er is geen product groep ingevuld';
}
//ander veld controle
if(!isset($_POST['prijs']) OR $_POST['prijs'] == ''){
//error toevoegen
$errors[] = 'Er is geen prijs ingevuld';
}
if(!isset($_POST['prijsper']) OR $_POST['prijsper'] == ''){
//error toevoegen
$errors[] = 'Er is geen prijs per ingevuld';
}
//ander veld controle
if(!isset($_POST['omschrijving']) OR $_POST['omschrijving'] == ''){
//error toevoegen
$errors[] = 'Er is geen omschrijving ingevuld';
}
if(empty($errors)){
//geen errors dus insert
($iid = mysql_real_escape_string ($_POST['id']));
($sgroep = mysql_real_escape_string ($_POST['groep']));
($sproduct = mysql_real_escape_string( $_POST['product']));
($sprijs = mysql_real_escape_string( $_POST['prijs']));
($sprijsper = mysql_real_escape_string( $_POST['prijsper']));
($somschrijving = mysql_real_escape_string( $_POST['omschrijving']));
mysql_query ("UPDATE aanbod SET product= '".$sproduct."', groep= '".$sgroep."', prijs='".$sprijs."', prijsper='".$sprijsper."', omschrijving= '".$somschrijving."' WHERE id ='".$iid."'" );
}
else{
foreach($errors AS $err){
//errors tonen
echo $err.'<br/>';
}
}
echo 'Uw aanbod is gewijzigd';
}
else{
if ($_POST['verwijder'] == true){
($iid = mysql_real_escape_string ($_POST['id']));
$foto = mysql_query("SELECT fotonaam, extensie FROM foto WHERE advertentieid='".$iid."' AND gebruikerid='".$_SESSION['gebruikerid']."'");
if(mysql_num_rows($foto) !=0){
mysql_query ("DELETE FROM foto WHERE advertentieid='".$_POST['id']."'");
$wis = mysql_fetch_array($foto);
$pad = "foto/";
$wisfoto = $pad.$wis['fotonaam'].$wis['extensie'];
unlink($wisfoto);
}
($iid = mysql_real_escape_string ($_POST['id']));
mysql_query ("DELETE FROM aanbod WHERE id='".$iid."'");
echo 'Uw aanbod is verwijderd';
exit;
}
}
}
else {
echo 'Er is iets fout gegaan';
}
?>
ini_set('display_errors', 'ON');
error_reporting (E_ALL);
if($_SERVER['REQUEST_METHOD'] == 'POST'){
if($_POST['wijzig'] == true){
$errors = array();
if(!isset($_POST['product']) OR $_POST['product'] == ''){
//error toevoegen
$errors[] = 'Er is een geen product ingevuld';
}
if(!isset($_POST['groep']) OR $_POST['groep'] == ''){
//error toevoegen
$errors[] = 'Er is geen product groep ingevuld';
}
//ander veld controle
if(!isset($_POST['prijs']) OR $_POST['prijs'] == ''){
//error toevoegen
$errors[] = 'Er is geen prijs ingevuld';
}
if(!isset($_POST['prijsper']) OR $_POST['prijsper'] == ''){
//error toevoegen
$errors[] = 'Er is geen prijs per ingevuld';
}
//ander veld controle
if(!isset($_POST['omschrijving']) OR $_POST['omschrijving'] == ''){
//error toevoegen
$errors[] = 'Er is geen omschrijving ingevuld';
}
if(empty($errors)){
//geen errors dus insert
($iid = mysql_real_escape_string ($_POST['id']));
($sgroep = mysql_real_escape_string ($_POST['groep']));
($sproduct = mysql_real_escape_string( $_POST['product']));
($sprijs = mysql_real_escape_string( $_POST['prijs']));
($sprijsper = mysql_real_escape_string( $_POST['prijsper']));
($somschrijving = mysql_real_escape_string( $_POST['omschrijving']));
mysql_query ("UPDATE aanbod SET product= '".$sproduct."', groep= '".$sgroep."', prijs='".$sprijs."', prijsper='".$sprijsper."', omschrijving= '".$somschrijving."' WHERE id ='".$iid."'" );
}
else{
foreach($errors AS $err){
//errors tonen
echo $err.'<br/>';
}
}
echo 'Uw aanbod is gewijzigd';
}
else{
if ($_POST['verwijder'] == true){
($iid = mysql_real_escape_string ($_POST['id']));
$foto = mysql_query("SELECT fotonaam, extensie FROM foto WHERE advertentieid='".$iid."' AND gebruikerid='".$_SESSION['gebruikerid']."'");
if(mysql_num_rows($foto) !=0){
mysql_query ("DELETE FROM foto WHERE advertentieid='".$_POST['id']."'");
$wis = mysql_fetch_array($foto);
$pad = "foto/";
$wisfoto = $pad.$wis['fotonaam'].$wis['extensie'];
unlink($wisfoto);
}
($iid = mysql_real_escape_string ($_POST['id']));
mysql_query ("DELETE FROM aanbod WHERE id='".$iid."'");
echo 'Uw aanbod is verwijderd';
exit;
}
}
}
else {
echo 'Er is iets fout gegaan';
}
?>
Heb je method="post" wel in <form> staan?
if($_SERVER['REQUEST_METHOD'] == 'POST'){
Er komt nooit true of false uit een formulier.
Meestal '1'/'0' of 'on'/'off'.
if($_POST['wijzig'] == true){
if($_SERVER['REQUEST_METHOD'] == 'POST'){
Er komt nooit true of false uit een formulier.
Meestal '1'/'0' of 'on'/'off'.
if($_POST['wijzig'] == true){
<form method="POST" action='verwerkwijzig.php'>
dit staat in het formulier dit moet kloppen volgens mij ?
moet ik dit anders zo doen ?
if (isset ($_POST['wijzig'])){
dit werkt ook niet ?
nog een suggestie ?
Toevoeging op 12/02/2013 15:54:44:
heb je anders een suggestie hoe ik anders het formulier moet verwerken met 2 submit knoppen 1 om te verwijderen en 1 om te wijzigen ?
dit staat in het formulier dit moet kloppen volgens mij ?
moet ik dit anders zo doen ?
if (isset ($_POST['wijzig'])){
dit werkt ook niet ?
nog een suggestie ?
Toevoeging op 12/02/2013 15:54:44:
heb je anders een suggestie hoe ik anders het formulier moet verwerken met 2 submit knoppen 1 om te verwijderen en 1 om te wijzigen ?
Ik ben nooit voorstander om de waarde van een knop te gebruiken bij het verwerken.
if (isset ($_POST['wijzig'])){ of if (isset ($_POST['submit'])){ zie ik nooit graag.
Er zijn meerdere mogelijheden. bv. twee <form> elementen.
Met css krijg je de layout wel goed.
Maar vooral; je moet meer structuur in je logica brengen.
Het moet altijd duidelijk zijn waarmee je bezig bent.
te veel if's nesten; onnodige elseif's ... maken het moeilijk leesbaar.
Maar denk ook: indentering is je vriend. waar nodig/nuttig: commentaar schrijven
bv.
if (isset ($_POST['wijzig'])){ of if (isset ($_POST['submit'])){ zie ik nooit graag.
Er zijn meerdere mogelijheden. bv. twee <form> elementen.
Met css krijg je de layout wel goed.
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<form method="POST" action='verwerkwijzig.php'>
<input type="hidden" name="action" value="update">
... update dingen ...
<input type="submit" value="UPDATE">
</form>
<form method="POST" action='verwerkwijzig.php'>
<input type="hidden" name="action" value="delete">
<input type="submit" value="DELETE">
</form>
<input type="hidden" name="action" value="update">
... update dingen ...
<input type="submit" value="UPDATE">
</form>
<form method="POST" action='verwerkwijzig.php'>
<input type="hidden" name="action" value="delete">
<input type="submit" value="DELETE">
</form>
Maar vooral; je moet meer structuur in je logica brengen.
Het moet altijd duidelijk zijn waarmee je bezig bent.
te veel if's nesten; onnodige elseif's ... maken het moeilijk leesbaar.
Maar denk ook: indentering is je vriend. waar nodig/nuttig: commentaar schrijven
bv.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST') {
$action = (isset($_POST['action']) ? $_POST['action'] : ''); // komt van de hidden
switch ($action) {
case 'update':
// alles van de update
$errors = array();
if(!isset($_POST['product']) || $_POST['product'] == '') {
$errors[] = ...
}
...
break;
case 'delete':
// alles van de delete
break;
}
}
?>
if($_SERVER['REQUEST_METHOD'] == 'POST') {
$action = (isset($_POST['action']) ? $_POST['action'] : ''); // komt van de hidden
switch ($action) {
case 'update':
// alles van de update
$errors = array();
if(!isset($_POST['product']) || $_POST['product'] == '') {
$errors[] = ...
}
...
break;
case 'delete':
// alles van de delete
break;
}
}
?>
Gewijzigd op 12/02/2013 16:33:01 door Kris Peeters
- SanThe - op 12/02/2013 15:28:35:
Heb je method="post" wel in <form> staan?
Nee dus.
Zet dat er eens in.
Bedankt voor je reactie
heb inderdaad een oplossing gevonden met een nieuw form element.
dat ik altijd bij de echo uitkwam kwam door een ander foutje in het formulier stond method 'POST' en in de controle stond "POST" met dubbele aanhalingstekens dat was daar het probleem
heb inderdaad een oplossing gevonden met een nieuw form element.
dat ik altijd bij de echo uitkwam kwam door een ander foutje in het formulier stond method 'POST' en in de controle stond "POST" met dubbele aanhalingstekens dat was daar het probleem
Stefan H op 12/02/2013 16:39:00:
.. in het formulier stond method 'POST' en in de controle stond "POST" met dubbele aanhalingstekens dat was daar het probleem
Kan me niet voorstellen want dat maakt niet uit.




