Knop bevestigen doet niets
Als de scheidsrechter op de knop bevestigen drukt moet de status aangepast worden en er een melding op het scherm verschijnen.
Er gebeurt echter niks.
Wat loopt er fout?
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
error_reporting(E_ALL);
ini_set('display_errors',1);
/******************
*Initialisatie
*******************/
$_srv = $_SERVER['PHP_SELF'];
session_start();
$_srid = $_SESSION['user_srid'];
$_output = "";
// authorisation
include("../php_lib/user_ok.inc.php");
User_OK(4);
/******************
* autoload
******************/
function __autoload($className) {
require_once "../klassen/$className.class.php";
}
include("../connections/pdo.inc.php");
include("../php_lib/menu.inc.php");
try
{
$_result = $_PDO -> query("SELECT * FROM v_aanduiding WHERE Srid =". $_srid." AND (Status = 'Is aangeduid door verantwoordelijke' OR Status = 'Bevestigd door sr');");
if ($_result -> rowCount() > 0)
{
$_output.= "<form id='club' method='post' action='$_srv'><fieldset><legend>Aanduiding</legend><ol>";
while ($_row = $_result -> fetch(PDO:: FETCH_ASSOC))
{
$_output.= $_row['Data']." - ".$_row['Reeks']." - ".$_row['Thuis']." - ".$_row['Uit']." - ".$_row['Sporthal']."<br>".$_row['Functie']." - ".$_row['Famnaam']." ".$_row['Voornaam']."";
$_output.="<input name='id' type='hidden' value='".$_row['Aanid']."'>";
$_output.= "<br><br><button type='submit' name='submit'>Bevestigen</button>";
;
;
}
$_output.= "</fieldset></form>";
}
else
{
$_output = "<form id='club' method='post'><fieldset><legend>Aanduiding</legend><ol><li>Geen aanduidingen</li></fieldset></form>";
}
//ONDERSTAANDE BIJGEVOEGD
if (isset($_POST["$_srv"])){
// echo $_output;
// verwerk inhoud van het formulier
$_id = $_POST["Aanid"];
$_scheidsrechter = $_srid;
$_result = $_PDO -> query("UPDATE t_aanduiding
SET t_scheidsrechter_d_scheidsrechter_id = '$_scheidsrechter', t_status_naam_d_status_id = '3' WHERE d_aanduiding_id = '$_id';");
$_output = "Scheidsrechter heeft bevestigd.";
}
// Object instantieren
$_smarty = new My_smarty();
// We kennen de variabelen toe
$_smarty->assign('menuh',menu(1,'H'));
$_smarty->assign('menuv',menu(4,'VA'));
$_smarty->assign('inhoud', $_output);
// display it
$_smarty->display('test.tpl');
}
catch( PDOexception $e ){
//doe iets met de foutmelding
// log("../log/logfile.csv");
// errorMessage();
echo $e->getMessage();
}
?>
error_reporting(E_ALL);
ini_set('display_errors',1);
/******************
*Initialisatie
*******************/
$_srv = $_SERVER['PHP_SELF'];
session_start();
$_srid = $_SESSION['user_srid'];
$_output = "";
// authorisation
include("../php_lib/user_ok.inc.php");
User_OK(4);
/******************
* autoload
******************/
function __autoload($className) {
require_once "../klassen/$className.class.php";
}
include("../connections/pdo.inc.php");
include("../php_lib/menu.inc.php");
try
{
$_result = $_PDO -> query("SELECT * FROM v_aanduiding WHERE Srid =". $_srid." AND (Status = 'Is aangeduid door verantwoordelijke' OR Status = 'Bevestigd door sr');");
if ($_result -> rowCount() > 0)
{
$_output.= "<form id='club' method='post' action='$_srv'><fieldset><legend>Aanduiding</legend><ol>";
while ($_row = $_result -> fetch(PDO:: FETCH_ASSOC))
{
$_output.= $_row['Data']." - ".$_row['Reeks']." - ".$_row['Thuis']." - ".$_row['Uit']." - ".$_row['Sporthal']."<br>".$_row['Functie']." - ".$_row['Famnaam']." ".$_row['Voornaam']."";
$_output.="<input name='id' type='hidden' value='".$_row['Aanid']."'>";
$_output.= "<br><br><button type='submit' name='submit'>Bevestigen</button>";
;
;
}
$_output.= "</fieldset></form>";
}
else
{
$_output = "<form id='club' method='post'><fieldset><legend>Aanduiding</legend><ol><li>Geen aanduidingen</li></fieldset></form>";
}
//ONDERSTAANDE BIJGEVOEGD
if (isset($_POST["$_srv"])){
// echo $_output;
// verwerk inhoud van het formulier
$_id = $_POST["Aanid"];
$_scheidsrechter = $_srid;
$_result = $_PDO -> query("UPDATE t_aanduiding
SET t_scheidsrechter_d_scheidsrechter_id = '$_scheidsrechter', t_status_naam_d_status_id = '3' WHERE d_aanduiding_id = '$_id';");
$_output = "Scheidsrechter heeft bevestigd.";
}
// Object instantieren
$_smarty = new My_smarty();
// We kennen de variabelen toe
$_smarty->assign('menuh',menu(1,'H'));
$_smarty->assign('menuv',menu(4,'VA'));
$_smarty->assign('inhoud', $_output);
// display it
$_smarty->display('test.tpl');
}
catch( PDOexception $e ){
//doe iets met de foutmelding
// log("../log/logfile.csv");
// errorMessage();
echo $e->getMessage();
}
?>
Als je de errormelding geeft zou het een stuk makkelijker zijn om te ontdekken wat er fout gaat.
Ik krijg helemaal geen foutmelding er gebeurt gewoon niks als ik op de knop bevestigen druk.
Dus zo:
En $_SERVER['PHP_SELF'] is niet altijd de juiste pagina.php... let daar op.
Beter gebruik je dan NIETS (dus action="") of __FILE__.
Bert Van den Brande op 19/06/2013 19:49:49:
Ik krijg helemaal geen foutmelding...
Dan moet je je errormeldingen aanzetten/afvangen.
error_reporting(E_ALL);
ini_set('display_errors',1); bovenaan en in mijne catch
catch( PDOexception $e ){
//doe iets met de foutmelding
// log("../log/logfile.csv");
// errorMessage();
echo $e->getMessage();
}
Toevoeging op 19/06/2013 21:27:43:
Ondertussen doet hij het wel en wordt er een bevestigingsmail gestuurd als ik op bevestigen druk
Waar en hoe in m'n code kan ik indien er geen records zijn de tekst laten tonen
"Geen nieuwe aanduidingen"?
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
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
117
118
119
120
121
122
123
124
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
117
118
119
120
121
122
123
124
<?php
error_reporting(E_ALL);
ini_set('display_errors',1);
//ini_set('SMTP','uit.telenet.be');
ini_set('SMTP','mail.sna-webo.be');
ini_set ('sendmail_from',"[email protected]");
/******************
*Initialisatie
*******************/
$_srv = $_SERVER['PHP_SELF'];
session_start();
$_srid = $_SESSION['user_srid'];
$_output = "";
// authorisation
include("../php_lib/user_ok.inc.php");
User_OK(4);
/******************
* autoload
******************/
function __autoload($className) {
require_once "../klassen/$className.class.php";
}
include("../connections/pdo.inc.php");
include("../php_lib/menu.inc.php");
try
{
$_result = $_PDO -> query("SELECT * FROM v_aanduiding WHERE Srid =". $_srid." AND Status = 'Is aangeduid door verantwoordelijke';");
if ($_result -> rowCount() > 0)
// toon formulier
if (! isset($_POST["submit"])) // geen formulier
{
$_output.= "<form id='club' method='post' action='$_srv'><fieldset><legend>Aanduiding</legend><ol>";
while ($_row = $_result -> fetch(PDO:: FETCH_ASSOC))
{
$_output.= $_row['Data']." - ".$_row['Reeks']." - ".$_row['Thuis']." - ".$_row['Uit']." - ".$_row['Sporthal']."<br>".$_row['Functie']." - ".$_row['Famnaam']." ".$_row['Voornaam']."";
$_output.="<input name='id' type='hidden' value='".$_row['Aanid']."'>";
$_output.= "<br><br><button type='submit' name='submit'>Bevestigen</button>";
$_SESSION['aan_id'] = $_row['Aanid'];
$_SESSION['famnaam'] = $_row['Famnaam'];
$_SESSION['voornaam'] = $_row['Voornaam'];
$_SESSION['reeks'] = $_row['Reeks'];
$_SESSION['thuis'] = $_row['Thuis'];
$_SESSION['uit'] = $_row['Uit'];
$_SESSION['functie'] = $_row['Functie'];
$_SESSION['data'] = $_row['Data'];
$_SESSION['sporthal'] = $_row['Sporthal'];
;
;
}
$_output.= "</fieldset></form>";
}
if (!isset($_POST["$_srv"])){
// echo $_output;
// verwerk inhoud van het formulier
$_aanid = $_SESSION['aan_id'];
$_id = $_aanid;
$_naam = $_SESSION['famnaam'];
$_voornaam = $_SESSION['voornaam'];
$_reeks = $_SESSION['reeks'];
$_thuis = $_SESSION['thuis'];
$_uit = $_SESSION['uit'];
$_functie = $_SESSION['functie'];
$_data = $_SESSION['data'];
$_sporthal = $_SESSION['sporthal'];
$_scheidsrechter = $_srid;
$_to = '[email protected]';
$_onderwerp = "$_reeks - $_thuis - $_uit - $_data ".$_naam." ".$_voornaam."";
$_result = $_PDO -> query("UPDATE t_aanduiding
SET t_scheidsrechter_d_scheidsrechter_id = '$_scheidsrechter', t_status_naam_d_status_id = '3' WHERE d_aanduiding_id = '$_id';");
// $_output = "Scheidsrechter heeft bevestigd.";
// GEGEVENS VOOR E-MAIL VERZENDING
$_output = htmlentities("$_voornaam $_naam heeft de wedstrijd bevestigd.");
$_bericht = "$_voornaam $_naam heeft de wedstrijd in $_reeks tussen $_thuis en $_uit bevestigd.\n
Deze wedstrijd gaat door op $_data in $_sporthal.
";
$_headers = "From: [email protected]" . "\r\n" .
"CC: [email protected]" . "\r\n" .
"BCC: [email protected]" . "\r\n" .
"X-Priority: 1"."\r\n"
;
if (mail($_to, $_onderwerp, $_bericht, $_headers))
// if(mail(($row['Email']), $_onderwerp, $_bericht, $_headers))
// $_email = addslashes($_POST["Email"]);
{echo"Mail is verzonden aan $_to.
";}
else
{echo"ERROR: mail is niet verzonden!!!";}
}
// Object instantieren
$_smarty = new My_smarty();
// We kennen de variabelen toe
$_smarty->assign('menuh',menu(1,'H'));
$_smarty->assign('menuv',menu(4,'VA'));
$_smarty->assign('inhoud', $_output);
// display it
$_smarty->display('test.tpl');
}
catch( PDOexception $e ){
//doe iets met de foutmelding
// log("../log/logfile.csv");
// errorMessage();
echo $e->getMessage();
}
?>
error_reporting(E_ALL);
ini_set('display_errors',1);
//ini_set('SMTP','uit.telenet.be');
ini_set('SMTP','mail.sna-webo.be');
ini_set ('sendmail_from',"[email protected]");
/******************
*Initialisatie
*******************/
$_srv = $_SERVER['PHP_SELF'];
session_start();
$_srid = $_SESSION['user_srid'];
$_output = "";
// authorisation
include("../php_lib/user_ok.inc.php");
User_OK(4);
/******************
* autoload
******************/
function __autoload($className) {
require_once "../klassen/$className.class.php";
}
include("../connections/pdo.inc.php");
include("../php_lib/menu.inc.php");
try
{
$_result = $_PDO -> query("SELECT * FROM v_aanduiding WHERE Srid =". $_srid." AND Status = 'Is aangeduid door verantwoordelijke';");
if ($_result -> rowCount() > 0)
// toon formulier
if (! isset($_POST["submit"])) // geen formulier
{
$_output.= "<form id='club' method='post' action='$_srv'><fieldset><legend>Aanduiding</legend><ol>";
while ($_row = $_result -> fetch(PDO:: FETCH_ASSOC))
{
$_output.= $_row['Data']." - ".$_row['Reeks']." - ".$_row['Thuis']." - ".$_row['Uit']." - ".$_row['Sporthal']."<br>".$_row['Functie']." - ".$_row['Famnaam']." ".$_row['Voornaam']."";
$_output.="<input name='id' type='hidden' value='".$_row['Aanid']."'>";
$_output.= "<br><br><button type='submit' name='submit'>Bevestigen</button>";
$_SESSION['aan_id'] = $_row['Aanid'];
$_SESSION['famnaam'] = $_row['Famnaam'];
$_SESSION['voornaam'] = $_row['Voornaam'];
$_SESSION['reeks'] = $_row['Reeks'];
$_SESSION['thuis'] = $_row['Thuis'];
$_SESSION['uit'] = $_row['Uit'];
$_SESSION['functie'] = $_row['Functie'];
$_SESSION['data'] = $_row['Data'];
$_SESSION['sporthal'] = $_row['Sporthal'];
;
;
}
$_output.= "</fieldset></form>";
}
if (!isset($_POST["$_srv"])){
// echo $_output;
// verwerk inhoud van het formulier
$_aanid = $_SESSION['aan_id'];
$_id = $_aanid;
$_naam = $_SESSION['famnaam'];
$_voornaam = $_SESSION['voornaam'];
$_reeks = $_SESSION['reeks'];
$_thuis = $_SESSION['thuis'];
$_uit = $_SESSION['uit'];
$_functie = $_SESSION['functie'];
$_data = $_SESSION['data'];
$_sporthal = $_SESSION['sporthal'];
$_scheidsrechter = $_srid;
$_to = '[email protected]';
$_onderwerp = "$_reeks - $_thuis - $_uit - $_data ".$_naam." ".$_voornaam."";
$_result = $_PDO -> query("UPDATE t_aanduiding
SET t_scheidsrechter_d_scheidsrechter_id = '$_scheidsrechter', t_status_naam_d_status_id = '3' WHERE d_aanduiding_id = '$_id';");
// $_output = "Scheidsrechter heeft bevestigd.";
// GEGEVENS VOOR E-MAIL VERZENDING
$_output = htmlentities("$_voornaam $_naam heeft de wedstrijd bevestigd.");
$_bericht = "$_voornaam $_naam heeft de wedstrijd in $_reeks tussen $_thuis en $_uit bevestigd.\n
Deze wedstrijd gaat door op $_data in $_sporthal.
";
$_headers = "From: [email protected]" . "\r\n" .
"CC: [email protected]" . "\r\n" .
"BCC: [email protected]" . "\r\n" .
"X-Priority: 1"."\r\n"
;
if (mail($_to, $_onderwerp, $_bericht, $_headers))
// if(mail(($row['Email']), $_onderwerp, $_bericht, $_headers))
// $_email = addslashes($_POST["Email"]);
{echo"Mail is verzonden aan $_to.
";}
else
{echo"ERROR: mail is niet verzonden!!!";}
}
// Object instantieren
$_smarty = new My_smarty();
// We kennen de variabelen toe
$_smarty->assign('menuh',menu(1,'H'));
$_smarty->assign('menuv',menu(4,'VA'));
$_smarty->assign('inhoud', $_output);
// display it
$_smarty->display('test.tpl');
}
catch( PDOexception $e ){
//doe iets met de foutmelding
// log("../log/logfile.csv");
// errorMessage();
echo $e->getMessage();
}
?>
- start_session(); altijd bovenaan het script voordat er andere code wordt uitgevoerd.
- gebruik $_PDO -> prepare ipv $_PDO -> query, nu ben je vatbaar voor sql injection.
- waarom eerst allw db waardes in een sessie gooien, en daarna nogmaals in variabelen? onnodig resources verspillen is zonde.
- gebruik geen isset($_POST["submit"]) maar controleer met if($_SERVER["REQUEST_METHOD"] == "POST")
- gebruik geen * in een query, maar schrijf je velden voluit. maakt troubleshooten makkelijker.
Gewijzigd op 19/06/2013 23:56:52 door Chris PHP