optimierung-frage
schrub
- php
hi, ich hab zu folgendem code ne frage, kann man den noch besser optimieren verkleinern?
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);
$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";
}
mfg schrub
Hi,
vielleicht entgeht mir die Tiefe deiner Sicherheitsgedanken, aber gern genommen ist schlicht und einfach die Frage nach der Userid, bei der Benutzername und Passwort übereinstimmen:
$userid = $_COOKIE['forum_userid'];
$userpw = $_COOKIE['forum_userpassword'];
$retid = mysql_query("SELECT * FROM users WHERE userid = '{$userid}' AND password = '{$userpw}'");
Wenn dann eine Zeile zurückkommt ist das die des Benutzers (oder zumindest desjenigen bei dem ID und Passwort zusammenpassten...)
MfG
Rouven
Hi,
vielleicht entgeht mir die Tiefe deiner Sicherheitsgedanken, aber gern genommen ist schlicht und einfach die Frage nach der Userid, bei der Benutzername und Passwort übereinstimmen:
$userid = $_COOKIE['forum_userid'];
$userpw = $_COOKIE['forum_userpassword'];$retid = mysql_query("SELECT * FROM users WHERE userid = '{$userid}' AND password = '{$userpw}'");
Wenn dann eine Zeile zurückkommt ist das die des Benutzers (oder zumindest desjenigen bei dem ID und Passwort zusammenpassten...)
MfG
Rouven
verstehe nicht ganz wie du das meinst?
Hi,
verstehe nicht ganz wie du das meinst?
Na ja, wenn du mein vorheriges Posting nimmst und darunter folgendes machst, solltest du die selbe Prüfung ausgeführt haben:
if (mysql_num_rows($retid) == 1) {
$row = mysql_fetch_assoc($retid);
echo "Benutzer".$row['username']."hat sich erfolgreich angemeldet";
} else {
echo "Benutzerdaten sind falsch!";
}
MfG
Rouven
hi,
hi, ich hab zu folgendem code ne frage, kann man den noch besser optimieren verkleinern?
if (isset($_COOKIE['forum_userid'])) {
$userid = $_COOKIE['forum_userid'];
hier prüfst du vor dem zugriff, ob es im $_COOKIE-array ein element mit dem index 'forum_userid' gibt - brav.
$userpw = $_COOKIE['forum_userpassword'];
warum machst du das hier nicht analog ...?
} 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";
}
zwei mal exakt die selbe ausgabe - natürlich _muss_ man das "optimieren".
(z.b., in dem man sich in den else-zweigen nur jeweils ein flag setzt, und anschliessend von diesem abhängig die ausgabe macht.)
gruß,
wahsaga