Login Problem mit MySQL

Gray

Erfahrenes Mitglied
Das hier ist mein Grundscript, was noch ohne DB auskommt, aber mir zu unflexibel:
PHP:
<?php
if(empty($user) || empty($pass)) {
 ?>
 <form action="<? echo $PHP_SELF; ?>" method="POST">
 <p>Username:<br><input type="text" name="user"></p>
 <p>Password:<br><input type="password" name="pass"></p>
 <p><input type="Submit" value="Submit"></p>
 </form>
 <?php
 exit;
} else {
 $users = array(
  "user1" => "passwort1",
  "user2" => "passwort2",
  "user3" => "passwort3",
  "user4" => "passwort4",
  "user5" => "passwort5",
  "user6" => "passwort5"
 );
 if($users[$user] != $pass)
 {
  ?>
   <center>Bitte mit Username und Passwort einloggen</center>
  <?php
  exit;
 }
SetCookie("user", $user);
SetCookie("pass", $pass);
}
?>

ich hatte es versucht dan so abzuändern:

PHP:
<?php
require('include/globals.inc.php');
$db = mysql_pconnect($server, $user, $passwort)	or die(mysql_error($db));
    mysql_select_db($datenbank, $db) or die(mysql_error($db));
    $sql_query = "SELECT * FROM admin";
    $result = mysql_query($sql_query) or die (mysql_error($db));
    $num = mysql_num_rows($result);
if(empty($user) || empty($pass)) {
 ?>
 <form action="<? echo $PHP_SELF; ?>" method="POST">
 <p>Username:<br><input type="text" name="user"></p>
 <p>Password:<br><input type="password" name="pass"></p>
 <p><input type="Submit" value="Submit"></p>
 </form>
 <?php
 exit;
} else {
 $users = array(
while ($row = mysql_fetch_array($result)) {
  "$row['adminname']" => "$row['passwort']"
}
 );
 if($users[$user] != $pass)
 {
  ?>
   <center>Bitte mit Username und Passwort einloggen</center>
  <?php
  exit;
 }
SetCookie("user", $user);
SetCookie("pass", $pass);
}
?>
geht leider nicht, PHP meint das in Zeile 37
PHP:
while ($row = mysql_fetch_array($result)) {
eine undefinierte ")" ist.

Ich hoffe Ihr könnt mir helfen.
 
SetCookie("pass", $pass); => Da bekomm ich ja Gänsehaut im Gesicht!Bitte verschlüssele oder hashe das PW mal, zumindest mit MD5 , danke :)

Wenn du dich beim nächsten mal an die Regeln zum Posten halten würdest, wäre ich dir dankbar, ich habe nicht immer die Laune, komplette scripts anderer Leute zu durchforsten.

Was mir auffällt, ist,dass deine while-Schleife innerhalb des array() steht, afaik dürfte dort drin keine Anweisung stehen, kannst es ja mit PHPs schönem Loose-Typing probieren, so nach dem Motto:

while(anweisung)
{
$array[$row['adminname']] = $row['passwort'];
}

[ich bin eben erst aufgestanden und wen das hier völiger Unfug ist, bitte ich, dieses zu entschuldigen]
 
ja ist ganz banal :)

guck mal eine zeile höher, du hast da ein Array definiert und die Zeile sieht so aus

PHP:
$users = array(

du hast da eine offene Klammer :)
 
@eLorFiN

Ich tue dir den gefallen und werde das Passwort noch veschlüsseln (momentan ist das doch noch nicht fertig)

Ich habe jetzt die Zeile mit dem Array so abgeändert:

PHP:
<?php
 exit;
} else {
while($row = mysql_fetch_array($result))
{
$users[$row['adminname']] = $row['passwort'];
}
 if($users[$user] != $pass)
 {
?>

Eine Fehlermeldung erhalte ich nicht mehr, aber wenn ich mich einloggen will, klappt es nicht (es kommt "Bitte mit Benutzernamen und Passwort einloggen.")

Die Daten stimmen 100%ig , ich hab sie über phpMyAdmin eingetragen.
 
Zuletzt bearbeitet:
Zurück