onthoud de verkeerde user gegevens
Ik ben bezig geweest met een pagina om users te kunnen aanpassen. Alleen de administrator heeft toegang tot deze dienst nu is het geval dat als je een user aanpast en vervolgens op wijzigen drukt dat hij de gegevens van de user die je aanpast onthoud en je dus vervolgens ook ingelogt ben als die persoon me script is alsvolgt weet iemand hier een oplossing voor?
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
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
<?php
include("config.php");
if(isset($_SESSION['rank'])){
$rank = $_SESSION['rank'];
}
else {
$rank = 0;
}
if(($rank & 1) == 1 || ($rank & 4) == 4 )
{ $tijd = date("G"); //bepaal de tijd in uren
if($tijd < 6)
{
echo "<br /> <br />Goede nacht ".$user."<br /><br />";
}
elseif($tijd < 12)
{
echo "<br /> <br />Goedemorgen ".$user."<br /><br />";
}
elseif($tijd < 18)
{
echo "<br /> <br />Goedemiddag ".$user."<br /><br />";
}
else
{
echo "<br /> <br />Goede avond ".$user."<br /><br />";
}
echo "U kunt hier de pagina's beheren die gekoppeld zijn aan uw account. <br /><br />";
}
else{
echo "<br /> <br />U bent niet ingelogd. <br /> <br />";
echo "<a href=login.php class=wijzigen>Klik hier</a> om in te loggen<br /><br />";
}
if(($rank & 1) == 1)
{
// rank is akkoord
if(!isset($_GET['mode']))
{
echo "<br /> <br />Geen toegang!<br /> <br />";
}
}
elseif (($rank & 4) == 4)
{
// rank is akkoord
if(!isset($_GET['mode']))
{
$result = mysql_query("SELECT * FROM users order by id ASC");
}
}
if(isset($result))
{
while($r=mysql_fetch_assoc($result))
{
echo '
<table width="400" border="0" cellspacing="4" bgcolor="#FFFC00">
<tr>
<td width="52" valign="top" ><b>User</b></td>
<td width="332"><div class="edit_tekst">'.$r['user'].'</div></td>
</tr>
<tr>
<td valign="top"><b>E-Mail</b></td>
<td><div class="edit_tekst">'.$r['email'].'</div></td>
</tr>
<tr>
<td valign="top"><b>Rank</b></td>
<td><div class="edit_tekst">'.$r['rank'].'</div></td>
</tr>
<tr>
<td> </td>
<td><a href="gebruikers.php?mode=edit&id='.$r['id'].'" class="wijzigen">Wijzigen</a></td>
</tr>
</table><br/>';
}
}
else
{
echo '';
} ?>
include("config.php");
if(isset($_SESSION['rank'])){
$rank = $_SESSION['rank'];
}
else {
$rank = 0;
}
if(($rank & 1) == 1 || ($rank & 4) == 4 )
{ $tijd = date("G"); //bepaal de tijd in uren
if($tijd < 6)
{
echo "<br /> <br />Goede nacht ".$user."<br /><br />";
}
elseif($tijd < 12)
{
echo "<br /> <br />Goedemorgen ".$user."<br /><br />";
}
elseif($tijd < 18)
{
echo "<br /> <br />Goedemiddag ".$user."<br /><br />";
}
else
{
echo "<br /> <br />Goede avond ".$user."<br /><br />";
}
echo "U kunt hier de pagina's beheren die gekoppeld zijn aan uw account. <br /><br />";
}
else{
echo "<br /> <br />U bent niet ingelogd. <br /> <br />";
echo "<a href=login.php class=wijzigen>Klik hier</a> om in te loggen<br /><br />";
}
if(($rank & 1) == 1)
{
// rank is akkoord
if(!isset($_GET['mode']))
{
echo "<br /> <br />Geen toegang!<br /> <br />";
}
}
elseif (($rank & 4) == 4)
{
// rank is akkoord
if(!isset($_GET['mode']))
{
$result = mysql_query("SELECT * FROM users order by id ASC");
}
}
if(isset($result))
{
while($r=mysql_fetch_assoc($result))
{
echo '
<table width="400" border="0" cellspacing="4" bgcolor="#FFFC00">
<tr>
<td width="52" valign="top" ><b>User</b></td>
<td width="332"><div class="edit_tekst">'.$r['user'].'</div></td>
</tr>
<tr>
<td valign="top"><b>E-Mail</b></td>
<td><div class="edit_tekst">'.$r['email'].'</div></td>
</tr>
<tr>
<td valign="top"><b>Rank</b></td>
<td><div class="edit_tekst">'.$r['rank'].'</div></td>
</tr>
<tr>
<td> </td>
<td><a href="gebruikers.php?mode=edit&id='.$r['id'].'" class="wijzigen">Wijzigen</a></td>
</tr>
</table><br/>';
}
}
else
{
echo '';
} ?>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php
if( isset( $_GET['mode'] ) && $_GET['mode'] == 'edit' || isset( $_POST['mode'] ) && $_POST['mode'] == 'edit' )
{
if (!isset($_POST["submit"]))
{
$id = $_GET["id"];
$sql = "SELECT * FROM users WHERE id=".$_GET['id'];
$result = mysql_query($sql) or die(mysql_error());
$users = mysql_fetch_array($result);
?>
if( isset( $_GET['mode'] ) && $_GET['mode'] == 'edit' || isset( $_POST['mode'] ) && $_POST['mode'] == 'edit' )
{
if (!isset($_POST["submit"]))
{
$id = $_GET["id"];
$sql = "SELECT * FROM users WHERE id=".$_GET['id'];
$result = mysql_query($sql) or die(mysql_error());
$users = mysql_fetch_array($result);
?>
<form action="" method="post">
<span class="titel">Gebruikersbeheer </span><br>
<br>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="117" class="naam">User:<br />
<br /></td>
<td width="577"><input name="user" type="text" id="user" value="" size="30" /></td>
</tr>
</tr>
<td width="117" class="naam">Rank:</td>
<td width="577">
<INPUT NAME="rank" TYPE="TEXT" id="rank" VALUE="" SIZE=30> </td>
</tr>
<tr> </tr>
<td width="117" class="naam">E-mail:</td>
<td width="577">
<input name="email" type="text" id="email" value="" size="30" />
<input type="hidden" name="mode" value="edit"> </td>
</tr>
<tr> </tr>
<input type="hidden" name="mode" value="edit"> </td>
</tr> <tr>
<td width="117" class="naam"></td>
<td><input type="submit" name="submit" value="Wijzigen" />
<input type="reset" name="submit" value="Wissen" /></td>
</tr>
</table>
</form>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
if(isset($_POST['submit']))
{
$user = $_POST["user"];
$email = $_POST["email"];
$rank = $_POST["rank"];
$sql = "UPDATE users SET user='".$user."',email='".$email."',rank='".$rank."' WHERE id=".$_GET['id'];
echo 'Uw aanpassingen zijn doorgevoerd!<br /><br /><meta http-equiv="refresh"
content="2;URL=gebruikers.php">';
}
}
?>
if(isset($_POST['submit']))
{
$user = $_POST["user"];
$email = $_POST["email"];
$rank = $_POST["rank"];
$sql = "UPDATE users SET user='".$user."',email='".$email."',rank='".$rank."' WHERE id=".$_GET['id'];
echo 'Uw aanpassingen zijn doorgevoerd!<br /><br /><meta http-equiv="refresh"
content="2;URL=gebruikers.php">';
}
}
?>
iemand een antwoord?
Gewijzigd op 01/01/1970 01:00:00 door Rembem
Rembem:
wat is het probleem precies dan?? ik snap het niet precies voegt hij het niet toe aan database of dat hij ingelogd blijft als administrator?? leg het probleem eens wat beter uit
hij voegt de user toe ana de database alles werkt verder alleen hij denkt meteen ook dat je bent ingelogt als die user die ik heb aangemaakt/aangepast... dus de sessie waarin ik administrator ben wordt dan vervangen door een sessie als user die ik heb aangepast
Zorg er voor dat je eerst alle logica afhandelt en dan pas de output naar de browser stuurt. In de output kan best nog wel wat logica zitten, maar dat mag alleen betrekking hebben op de presentatie van de output. Queries e.d. zul je hier dus niet aantreffen.
Waar komt trouwens $_GET['id'] vandaan? Je vergeet tevens te controleren of deze bestaat en veilig is. Hiermee is je database dus vakkundig om zeep te helpen... Het id staat in de url (als die er al is) en kan dus zo worden aangepast.
En begin je scripts ALTIJD met de volgende regels: