Statistik |
Beiträge: 144.530 (Täglich: 19,19 )
Themen: 16.700
Mitglieder: 13.209
Neuestes Mitglied: zitronentee.
Ausl. d. letzten Minute: 161%
Ausl. d. letzten 5 Minuten: 142%
Ausl. d. letzten 15 Minuten: 146%
Aktulle Uhrzeit: 09:54
Freier Webspace: 4.02 TB
PHP-Version: 7.4.33
|
|
|
|
|
in einer wihle schleife if packen |
|
in einer wihle schleife if packen |
|
Mahlzeit,
ich habe eine login funktion mit session nun jedoch wollte ich es umbauen zu cookies dabei speichere ich username und md5 passwort im cookie.
dann im login.php vergleiche ich es mit der datenbank.
alte login.php mit session
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
|
if($_SESSION['auth'] && $_SESSION['timeout']>time()){
echo'
<a href="index.php?menu">Account</a><br>
<a href="index.php?logout">Logout ('. $_SESSION['username'] . ')</a>
';
}else{
echo '<a href="index.php?login">Login</a>';
} |
|
neue login.php mit cookies aus der db auslesen
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
|
$benutzername = $_COOKIE['username'];
$passmd5 = $_COOKIE['passwort'];
$abfrage = "SELECT * FROM account_daten WHERE username = '$benutzername'";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis)){
if ($passmd5 == $row->kennwort){
echo'
<a href="index.php?menu">Account</a><br>
<a href="index.php?logout">Logout ('. $benutzername . ')</a>
';
}else{
echo '<a href="index.php?login">Login</a>';
}
} |
|
jedoch geht es nicht wegen den zwei } er gibt mir das else sprich den login nicht aus.
Hat wer ne ahnung wie man es anders loesen koennte bzw kann?
Lieben Gruss
|
|
17.09.2010 12:17 |
|
|
|
RE: in einer wihle schleife if packen |
|
Ohne Anspruch auf Richtigkeit:
Solltest du nicht mysql_ fetch_ row anstatt mysql_fetch_object verwenden?
Und dann heißt es wohl auch $row[kennwort] anstatt $row->kennwort.
Bei den echo-Anweisungen sollte du Anführungszeichen mit \" notieren, denke ich ...
Gruß,
Markus
__________________
Schwieriges dauert ein paar Sekunden, Unmögliches ein paar Minuten.
|
|
17.09.2010 14:00 |
|
|
|
Versuch das mal so... nur warum bei dir da eine while mit drin ist verstehe ich nicht...
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
|
require('./global.php');
$userid = $_COOKIE["wbb236_userid"];
$userpassword = $_COOKIE["wbb236_userpassword"];
if(isset($_COOKIE["wbb236_userid"])) $userid = $userid;
else $userid = 0;
if($userid == 0) {
echo "Hallo Gast, du kannst dich registrieren, oder dich anmelden um das Forum zu nutzen.<br />";
echo "<a href=\"index.php?login\">Login</a><br />";
die();
}
else
{
$abfrage = $db->query_first ("SELECT password,username FROM `bb" . $n . "_users` WHERE `userid`='" . $userid . "'");
if ($userpassword == $abfrage['password']){
echo "Hallo $abfrage[username], schön das du wieder da bist.<br />";
die();
}else{
echo "Hallo $abfrage[username], dein Passwort passt nicht.<br />";
die();
}
}
|
|
|
|
17.09.2010 14:12 |
|
|
|
oehm also es geht nicht um ein wbb login sondern um eine normalen hp login von dahher wuerde ich sagen das deins leider nicht gehn wird.
|
|
17.09.2010 15:14 |
|
|
|
eine while-Schleife brauchst du nicht - wofür auch - Benutzername sollte einmalig in der DB sein.
php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
|
$benutzername = $_COOKIE['username'];
$passmd5 = $_COOKIE['passwort'];
$abfrage = "SELECT username, kennwort FROM account_daten WHERE username = '".$benutzername."'";
$ergebnis = mysql_fetch_row($abfrage);
if ($passmd5 == $ergebnis['kennwort']){
echo "<a href=\"index.php?menu\">Account</a><br>
<a href=\"index.php?logout\">Logout '".$benutzername."'</a>";
}
else{
echo "<a href=\"index.php?login\">Login</a>";
} |
|
__________________ Design und Programmierung
|
|
17.09.2010 17:50 |
|
|
|
Leider geht das aber nicht.
er zeigt mit dann an
code: |
1:
2:
3:
|
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /var/www/web110140/html/cms/include/boxes/slogin.php on line 6
Account
Logout ('') |
|
obwohl kein cookie besteht
|
|
17.09.2010 18:16 |
|
|
|
Versuchs mal so:
php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
|
$benutzername = $_COOKIE['username'];
$passmd5 = $_COOKIE['passwort'];
$abfrage = mysql_query("SELECT username, kennwort FROM account_daten WHERE username = '".$benutzername."'");
$ergebnis = mysql_fetch_row($abfrage);
if ($passmd5 == $ergebnis['kennwort']) {
echo "<a href=\"index.php?menu\">Account</a><br>
<a href=\"index.php?logout\">Logout '".$benutzername."'</a>";
}
else {
echo "<a href=\"index.php?login\">Login</a>";
} |
|
Gruß Mike
|
|
17.09.2010 18:37 |
|
|
|
ui das haette ich auch gewusst wenn ich richtig drauf geachtete haette
aber es geht trozdem nicht er zeigt an
Account
Logout ''
obwohl kein cookie gesetzt also muesste dort nur Login erscheinen so aber nen cokkie da ist muesste
Account
Logout 'Siggi'
kommen
|
|
17.09.2010 19:00 |
|
|
|
das passwort wird md5 im cookie gespeichert klartext ist zu unsicher als es schon unsicher ist.
andere speichern das pw doch auch md5 in cookies und koennen es irgendwie auslesen wie kann man bzw soll man es den anders loesen?
Gruss
|
|
17.09.2010 21:07 |
|
|
|
ja wenn ich echo $passmd5; mache zeigt er mir das verschluesselte pw aus den cookie an und das gleiche steht auch in der datenbank so
|
|
17.09.2010 21:20 |
|
|
|
Das funktioniert
Besten dank bei der schwerden geburt
|
|
17.09.2010 21:31 |
|
|
|
|
|
|