Da muss man noch ein bisschen dahinter...
PHP-Code:
if (isset($_COOKIE['forum_userid'])) {
$userid = $_COOKIE['forum_userid'];
$retid = mysql_query("SELECT * FROM users WHERE userid = '{$userid}'");
$row = mysql_fetch_assoc($retid);
$userpw = $_COOKIE['forum_userpassword'];
$retid_pw = mysql_query("SELECT * FROM users WHERE password = '{$userpw}'");
$row_pw = mysql_fetch_assoc($retid_pw);
hmmm. was ist, wenn 2 user das gleiche passwort haben? Das ganze ist überhaupt nicht optimal...
erst alles auslesen, dann vergleichen. du liest die tabelle unnötigerweise 3 mal aus, und nicht immer von der ID her (was langsamer geht, da die ID sortiert ist und somit in logarithmischer zeit gefunden wird, statt linear, wie beim PW)
so in etwa:
if (isset($_COOKIE['forum_userid'])) {
$userid = $_COOKIE['forum_userid'];
$result = mysql_query("SELECT username, password FROM users WHERE userid = '".$userid."'");
$row = mysql_fetch_row($result);
if ($_COOKIE['forum_userpassword'] != $row[1])
{//tuwas - pw falsch
}
else
{
$logged_in = 1;
$username = $row[0];
// erfolgreich eingeloggt.
}
PHP-Code:
$sql = "SELECT
userid, password
FROM
users
WHERE
userid=$userid";
$result = mysql_query($sql);
$row_pw = mysql_fetch_array($result, MYSQL_ASSOC);
if($row_pw['password'] == $userpw) {
print_r ($row['username']);
echo "<br />n<a href="login.php">User Panel</a><br />n";
} else {
echo "Gast (<a href="login.php">Login</a>)<br />n";
echo "<a href="login.php">Registrieren</a><br />n";
echo "<a href="login.php">Info</a><br />n";
}
}else {
echo "Gast (<a href="login.php">Login</a>)<br />n";
echo "<a href="login.php">Registrieren</a><br />n";
echo "<a href="login.php">Info</a><br />n";
}
ich würde immer so eine $logged variable machen, die man im header include immer machen kann, somit weiss man immer ob jemand eingeloggt ist, sonst musst du immer wieder von neuem mühsam die datenbank auslesen etc. hoffentlich hab ich's verständlich ausgedrückt ;)