Verwerken formulier werkt niet
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';
}
?>
if($_SERVER['REQUEST_METHOD'] == 'POST'){
Er komt nooit true of false uit een formulier.
Meestal '1'/'0' of 'on'/'off'.
if($_POST['wijzig'] == true){
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 ?
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.
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.