Foutief id wordt verwijderd
Als er een geblokeerde gebruiker is is er geen enkel probleem.
Vanaf er 2 zijn en ik klik achter de eerste gebruiker op verwijderen dan verwijdert hij de blokkering van de 2de gebruiker.
Wat is er mis met m'n code?
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
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
<?php
session_start();
error_reporting(E_ALL);
ini_set('display_errors',1);
/******************
*Initialisatie
*******************/
$_srv = $_SERVER['PHP_SELF'];
$_srid = $_SESSION['user_srid'];
$_output = "";
// authorisation
include("../php_lib/user_ok.inc.php");
User_OK(1);
/******************
* autoload
******************/
function __autoload($className) {
require_once "../klassen/$className.class.php";
}
include("../connections/pdo.inc.php");
include("../php_lib/menu.inc.php");
try
{
if (! isset($_POST["verwijder"]))
{
$_result = $_PDO -> query("SELECT * FROM v_users WHERE Counter=3");
if ($_result -> rowCount() > 0)
{
$_output.= "<form id='club' method='post' action='$_srv'><fieldset><legend>Geblokkeerde gebruikers</legend><ol>";
while ($_row = $_result -> fetch(PDO:: FETCH_ASSOC))
{
$_output.= "<li>
".$_row['Voornaam']." ".$_row['Familienaam']."";
$_output.= "<input name='id' type='hidden' value='".$_row['Userid']."'>
<input name='voornaam' type='hidden' value='".$_row['Voornaam']."'>
<input name='familienaam' type='hidden' value='".$_row['Familienaam']."'>
<input name='verwijder' type='submit' value='verwijder'></li>";
}
$_output.= "<br></fieldset></form>";
}
else
{
$_output = "<form id='club' method='post' action='$_srv'><fieldset><legend>Geblokkeerde gebruikers</legend><ol><li>Geen geblokkeerde gebruikers gevonden</li></fieldset></form>";
}
}
else
{
$_id = $_POST['id'];
$_voornaam = $_POST['voornaam'];
$_familienaam = $_POST['familienaam'];
$_result = $_PDO -> query("select d_user_id, d_logon FROM t_user where d_user_id = '$_id';");
if ($_result -> rowCount() > 0)
{
$_result = $_PDO -> query("UPDATE t_user SET d_counter=0, d_timeout=0 WHERE d_user_id = $_id");
/* $_logon = $_row['d_logon'];*/
$_output = "<form id='club' method='post' action='$_srv'><fieldset><legend>Geblokkeerde gebruikers</legend><ol><li>Blokkering voor $_voornaam $_familienaam is opgeheven.</li></fieldset></form>";
}
else
{
throw new myException("database inconsistency");
}
}
// Object instantieren
$_smarty = new My_smarty();
// We kennen de variabelen toe
$_smarty->assign('menuh',menu(16,'H'));
$_smarty->assign('menuv',menu($_SESSION['user_rol'],'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();
}
?>
session_start();
error_reporting(E_ALL);
ini_set('display_errors',1);
/******************
*Initialisatie
*******************/
$_srv = $_SERVER['PHP_SELF'];
$_srid = $_SESSION['user_srid'];
$_output = "";
// authorisation
include("../php_lib/user_ok.inc.php");
User_OK(1);
/******************
* autoload
******************/
function __autoload($className) {
require_once "../klassen/$className.class.php";
}
include("../connections/pdo.inc.php");
include("../php_lib/menu.inc.php");
try
{
if (! isset($_POST["verwijder"]))
{
$_result = $_PDO -> query("SELECT * FROM v_users WHERE Counter=3");
if ($_result -> rowCount() > 0)
{
$_output.= "<form id='club' method='post' action='$_srv'><fieldset><legend>Geblokkeerde gebruikers</legend><ol>";
while ($_row = $_result -> fetch(PDO:: FETCH_ASSOC))
{
$_output.= "<li>
".$_row['Voornaam']." ".$_row['Familienaam']."";
$_output.= "<input name='id' type='hidden' value='".$_row['Userid']."'>
<input name='voornaam' type='hidden' value='".$_row['Voornaam']."'>
<input name='familienaam' type='hidden' value='".$_row['Familienaam']."'>
<input name='verwijder' type='submit' value='verwijder'></li>";
}
$_output.= "<br></fieldset></form>";
}
else
{
$_output = "<form id='club' method='post' action='$_srv'><fieldset><legend>Geblokkeerde gebruikers</legend><ol><li>Geen geblokkeerde gebruikers gevonden</li></fieldset></form>";
}
}
else
{
$_id = $_POST['id'];
$_voornaam = $_POST['voornaam'];
$_familienaam = $_POST['familienaam'];
$_result = $_PDO -> query("select d_user_id, d_logon FROM t_user where d_user_id = '$_id';");
if ($_result -> rowCount() > 0)
{
$_result = $_PDO -> query("UPDATE t_user SET d_counter=0, d_timeout=0 WHERE d_user_id = $_id");
/* $_logon = $_row['d_logon'];*/
$_output = "<form id='club' method='post' action='$_srv'><fieldset><legend>Geblokkeerde gebruikers</legend><ol><li>Blokkering voor $_voornaam $_familienaam is opgeheven.</li></fieldset></form>";
}
else
{
throw new myException("database inconsistency");
}
}
// Object instantieren
$_smarty = new My_smarty();
// We kennen de variabelen toe
$_smarty->assign('menuh',menu(16,'H'));
$_smarty->assign('menuv',menu($_SESSION['user_rol'],'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();
}
?>
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
while ($_row = $_result->fetch(PDO::FETCH_ASSOC)) {
$_output .= "<input name='id' type='hidden' value='" . $_row['Userid'] . "'>
<input name='verwijder' type='submit' value='verwijder'>";
}
?>
while ($_row = $_result->fetch(PDO::FETCH_ASSOC)) {
$_output .= "<input name='id' type='hidden' value='" . $_row['Userid'] . "'>
<input name='verwijder' type='submit' value='verwijder'>";
}
?>
Zodra je namelijk méér dan één gebruiker hebt, komt name='id' meerdere keren voor in het formulier, steeds met de id van een andere gebruiker. En je knop 'verwijder' verwijdert daarbij niet slechts die ene gebruiker, maar verzendt gewoon het gehele formulier, inclusief alle id's.