gegevens ophalen per gebruiker
user:
user_id
username
password
level
user_websites:
website_id
user_id
website_url
Het is zo als ik inlog dan krijgt de gebruiker alle records te zien:
graag zou ik dat elke gebruiker de links krijgt te zien die aan zijn id is gekoppeld wanneer hij inlogd.
de script ziet er zo uit:
Quote:
<table border="1">
<tr><th>Gebruikersnaam</th><th>Link</th></tr>
</table>
<form name="logout" method="post" action="logout.php">
<input type="submit" name="logout" id="logout" value="Logout">
<form name="logout" method="post" action="logout.php">
<input type="submit" name="logout" id="logout" value="Logout">
<form name="login_form" method="post" action="login2.php">
<label>
<input name="user" type="text" id="user">Gebruikersnaam<br />
<input name="pass" type="password" id="pass">Wachtwoord<br />
</label>
<input type="submit" name="login" id="login" value="Login">
</label>
</p>
</form>
<form name="Register" method="post" action="reg.php">
<input type="submit" name="register" id="register" value="Register">
</form>
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
session_start();
require_once 'database.php';
if (isset($_SESSION['user'])){
echo "Welkom ".$_SESSION['user'];
?>
session_start();
require_once 'database.php';
if (isset($_SESSION['user'])){
echo "Welkom ".$_SESSION['user'];
?>
<table border="1">
<tr><th>Gebruikersnaam</th><th>Link</th></tr>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
$select = ' SELECT user.user_id, user.username, user_websites.user_id, user_websites.website_url';
$from = ' FROM user, user_websites ';
$where = ' WHERE user.user_id = user_websites.user_id';
$users = @mysql_query($select . $from . $where);
if (!$users) {
echo('</table>');
die('<p>Kan gebruikersgegevens niet opahalen!<br />'.
'Error: ' . mysql_error() . '</p>');
}
while ($user = mysql_fetch_array($users)) {
$user_username = htmlspecialchars($user['username']);
$user_website = htmlspecialchars($user['website_url']);
echo("<tr>\n");
echo("<td>$user_username</td>\n");
echo("<td><a href=\"$user_website\">$user_website</a></td>\n");
echo("</tr>\n");
}
?>
$select = ' SELECT user.user_id, user.username, user_websites.user_id, user_websites.website_url';
$from = ' FROM user, user_websites ';
$where = ' WHERE user.user_id = user_websites.user_id';
$users = @mysql_query($select . $from . $where);
if (!$users) {
echo('</table>');
die('<p>Kan gebruikersgegevens niet opahalen!<br />'.
'Error: ' . mysql_error() . '</p>');
}
while ($user = mysql_fetch_array($users)) {
$user_username = htmlspecialchars($user['username']);
$user_website = htmlspecialchars($user['website_url']);
echo("<tr>\n");
echo("<td>$user_username</td>\n");
echo("<td><a href=\"$user_website\">$user_website</a></td>\n");
echo("</tr>\n");
}
?>
</table>
<form name="logout" method="post" action="logout.php">
<input type="submit" name="logout" id="logout" value="Logout">
Code (php)
<form name="logout" method="post" action="logout.php">
<input type="submit" name="logout" id="logout" value="Logout">
<form name="login_form" method="post" action="login2.php">
<label>
<input name="user" type="text" id="user">Gebruikersnaam<br />
<input name="pass" type="password" id="pass">Wachtwoord<br />
</label>
<input type="submit" name="login" id="login" value="Login">
</label>
</p>
</form>
<form name="Register" method="post" action="reg.php">
<input type="submit" name="register" id="register" value="Register">
</form>
Code (php)
1
$where = "WHERE user.user_id = user_websites.user_id AND user.username='".mysql_real_escape_string($_SESSION['user'])."'";
Haal die @ voor je query weg, en bouw een goede foutafhandeling.
Zal ik doen, bedankt voor je hulp!
Code (php)
1
2
3
4
2
3
4
SELECT user.user_id, user.username, user_websites.user_id, user_websites.website_url
FROM user, user_websites
WHERE user.user_id = user_websites.user_id
AND user.user_id = ....
FROM user, user_websites
WHERE user.user_id = user_websites.user_id
AND user.user_id = ....
Dat user_id zou je normaal gesproken uit de sessie gegevens moeten halen.
Dat ieder gebruiker alleen zijn eigen gegevens kan bewerken?
Tweede stap in je update statement zet je ook weer dezelfde where clause, dus dat de gebruiker alleen zijn eigen gegevens kan aanpassen:
En dan haal je de user_id dus weer uit de SESSION array.
NOOIT de user_id uit een GET array, POST array of COOKIE halen. Dan komt de info namelijk vanaf de browser en die info kan altijd aangepast worden door de gebruiker. Doe je dat dan kan iedereen de gegevens van iedereen aanpassen!!!