gegevens ophalen per gebruiker

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

George mendel

george mendel

05/04/2012 11:31:07
Quote Anchor link
ik heb twee tabellen:

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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
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)
PHP script in nieuw venster Selecteer het PHP script
1
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");
  
  }

?>

</table>
<form name="logout" method="post" action="logout.php">
<input type="submit" name="logout" id="logout" value="Logout">
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
}

elseif(isset($_SESSION['admin'])){
echo"Welcome ".$_SESSION['admin'];
echo"<br><br>Je bent ingelogd als Admin";
?>

<form name="logout" method="post" action="logout.php">
<input type="submit" name="logout" id="logout" value="Logout">
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php

}else{
?>

<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)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
}
?>
 
PHP hulp

PHP hulp

15/11/2024 02:25:06
 
Gerhard l

gerhard l

05/04/2012 11:39:49
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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.
 
George mendel

george mendel

05/04/2012 11:48:48
Quote Anchor link
Zal ik doen, bedankt voor je hulp!
 
Erwin H

Erwin H

05/04/2012 12:03:22
Quote Anchor link
Als je alleen de gebruikers websites wil ophalen zal je in je query nog een extra voorwaarde moeten opnemen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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 = ....

Dat user_id zou je normaal gesproken uit de sessie gegevens moeten halen.
 
George mendel

george mendel

06/04/2012 11:11:40
Quote Anchor link
Hoe kan ik hiervan de edit functie maken?
Dat ieder gebruiker alleen zijn eigen gegevens kan bewerken?
 
Erwin H

Erwin H

06/04/2012 11:41:05
Quote Anchor link
Eerste stap als hierboven, dus je haalt alleen de gegevens op van de ingelogde gebruiker.
Tweede stap in je update statement zet je ook weer dezelfde where clause, dus dat de gebruiker alleen zijn eigen gegevens kan aanpassen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
UPDATE user_websites
SET website_url = 'www.mijnsite.nl'
WHERE user_id = ...

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!!!
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.