Hopelijk biedt dit een beetje inzicht en een oplossing voor je.
Je zou in de tabel met de usernaam en passwoord een extra kolom kunnen aanmaken met een URL naar ieder zijn persoonlijke pagina.
Inlog scripts die de database gebruiken om te controleren of de gebruikersnaam en password goed zijn hebben een stuk php code wat hierop lijkt:
PHP:
$query = "SELECT username, password FROM users
WHERE username = '" . $_POST["username"] ."'
AND password = '". $_POST["password"] ."'";
$result = mysql_query($query) or die("FOUT: " . mysql_error());
Als je in die table users nu ook een kolom “url” hebt, kan je die ook meenemen in resultaat door achter password “, url” te zetten (zonder quotes)
Vervolgens gaat je inlog script ongeveer zo verder:
PHP:
if (mysql_num_rows($result) > 0)
{ while (list($username, $password, $url ) =
mysql_fetch_array($result))
{ $_SESSION["username"] = $username;
$_SESSION["url"] = $url;
header("Location: $url");
exit();
}
}
else
{
$tekst = "U heeft geen geldige combinatie van username en wachtwoord opgegeven.
<br><a href=\"login.php\">Opnieuw inloggen</a><br>
<br></font>";
die($tekst);
}
Hiermee wordt eerst gekeken of het resultaat überhaupt iets terug geeft. Als er namelijk 0 (records/rijen) resultaten zijn, betekent dat, dat de username niet geregistreerd is. Daarbij gaat hij naar de "else tak" waarbij een foutmelding wordt gegeven en een link om opnieuw in te loggen.
Is het resultaat wel meer dan 0 (records), dan splits hij het resultaat op in 3 variabelen namelijk $username, $password, $url
In de session variabelen worden vervolgens de username en url opgeslagen zodat de bezoeker deze over alle volgende pagina’s bij zich heeft.
Met header(“Location: $url”) wordt de bezoeker vervolgens door gestuurd naar zijn pagina (de pagina zoals die in de database staat).
Het bovenstaande kanje waarschijnlijk niet zo 1 op 1 in jouw scripts plakken, maar je kan het gebruiken als referentie om jouw scripts aan te passen.
Groeten,
Olav