Userverwaltung. md5 Vergleich schlägt fehl

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Userverwaltung. md5 Vergleich schlägt fehl

    Hey Leute ich hab mal wieder ein kleines Problem und ich komm ienfach nicht auf die Lösung.
    Ich hab ne Userverwaltung mit Login, Logout, Adminbereich und verschieden Klassen.

    Ich Verschlüssele das Passwort mit MD5 und schicke es dan an meine Datenbank.
    beim Auslesen des Passwortes beim Login brngt mir mein Script aber laufend die Meldung dass es das Falsche Passwort wäre.


    cl_zugriff.php (Ist für die Anmeldung, Abmeldung, und die Rechtevergabe zuständig)

    Quellcode

    1. <?php
    2. class zugriff
    3. {
    4. PROTECTED $idle=10;//Leerlaufzeit
    5. PROTECTED $umleitenlogout="<a href=\"ziel.php\">Weiter</a>";
    6. //Umleitungsziel
    7. PROTECTED $umleitenlogin="<a href=\"ziel.php\">Weiter</a>";
    8. //Umleitungsziel
    9. PRIVATE $modus;
    10. PUBLIC function __construct($modus=1, $mindestrecht=1)
    11. {
    12. //modus 1 Zugriffsrecht testen
    13. //modus 2 Login anzeigen
    14. //modus 3 Logout anzeigen
    15. //$mindestrecht==1 //normale Seite mit Schutz
    16. //$mindestrecht==2 //Admin Seite
    17. $this->modus=$modus;
    18. if($_POST['sentzu']==2)
    19. {
    20. $ret = $this->logout();
    21. $ret[1].="<br>".$this->umleitenlogout;
    22. }
    23. if($_POST['sentzu']==1)
    24. {
    25. $ret = $this->testlogin();
    26. if($this->modus==2 AND $ret[0])
    27. {$ret[1].="<br>".$this->umleitenlogin;}
    28. }
    29. if($this->modus==1)
    30. {
    31. $ret=$this->testrecht($mindestrecht);
    32. }
    33. if($ret[0])
    34. {
    35. $this->schreibrecht();
    36. }
    37. if(!$ret[0] OR $this->modus==2 OR $this->modus==3)
    38. {
    39. echo "<html><head><title>LOGIN/LOGOUT</title></head><body>";
    40. echo "<div align=center>";
    41. if($ret[1]){echo "<h2><font color=red>".$ret[1]."</font></h2>";}
    42. }
    43. if(!$ret[0] AND $this->modus!=3)
    44. {
    45. echo $this->formlogin();
    46. }
    47. if(!$ret[0] AND $this->modus==3)
    48. {
    49. echo $this->formlogout();
    50. }
    51. if(!$ret[0] OR $this->modus==2 OR $this->modus==3)
    52. {
    53. echo "</div></body></html>";
    54. die();
    55. }
    56. }//ende Konstruktor
    57. PROTECTED function testlogin()
    58. {
    59. $db = new db();
    60. $result=$db->execute("SELECT kwort, ID, kennung, (UNIX_TIMESTAMP()-
    61. UNIX_TIMESTAMP(zeit)) as time, zeit FROM user WHERE username='".$db->
    62. prepare($_POST['username'])."' ");
    63. if($db->num_rows() != 1 )
    64. {
    65. $meldung="Bitte kontrollieren Sie Ihren Benutzernamen";
    66. return array(FALSE, $meldung);
    67. }
    68. if (md5($_POST['kwort']) != $result[1]['kwort'])
    69. {
    70. $meldung="Bitte kontrollieren Sie Ihr Kennwort";
    71. return array(FALSE, $meldung);
    72. }
    73. if($result[1]['kennung']== session_id() AND $result[1]['time']/60<$this->idle)
    74. {
    75. $meldung.="Sie sind bereits eingeloggt als ".$this->username();
    76. $_SESSION['sit']=session_id();
    77. $_SESSION['IDuser']=$result[1]['ID'];
    78. return array(FALSE, $meldung);
    79. }
    80. if($result[1]['kennung'] !='' AND $result[1]['time']/60<$this->idle)
    81. {
    82. $meldung.="Es ist bereits jemand mit Ihrem Benutzernamen eingeloggt";
    83. return array(FALSE, $meldung);
    84. }
    85. $db1= new db();
    86. $sql="UPDATE user SET ";
    87. $sql.=" zeit= now(), ";
    88. $sql.=" kennung='".session_id()."' ";
    89. $sql.=" WHERE ID='".$result[1]['ID']."' ";
    90. $db1->execute($sql);
    91. $_SESSION['IDuser']=$result[1]['ID'];
    92. $_SESSION['sit']=session_id();
    93. $meldung="Sie wurden eingeloggt als ".$_POST['username'];
    94. return array(TRUE, $meldung);
    95. }
    96. PROTECTED function formlogin()
    97. {
    98. $aus.="<h2>Bitte die Benutzerinformationen eingeben</h2>";
    99. $aus.="<form action=\"".$_SERVER['PHP_SELF']."\" method=\"post\">";
    100. $aus.="<input type=\"hidden\" name=\"sentzu\" value=\"1\">";
    101. $aus.="<p>Benutzername</p>";
    102. $aus.="<input type=\"text\" name=\"username\"
    103. value=\"".$_POST['username']."\">";
    104. $aus.="<p>Kennwort</p>";
    105. $aus.="<input type=\"password\" name=\"kwort\">";
    106. $aus.="<br><br><input type=\"submit\" value=\"LOGIN\" >";
    107. $aus.="</form>";
    108. return $aus;
    109. }
    110. PROTECTED function testrecht($mindestrecht)
    111. {
    112. if(!$_SESSION['IDuser'])
    113. {
    114. $meldung="<br>Bitte loggen Sie sich ein.";
    115. return array(FALSE,$meldung);
    116. }
    117. if(!$_SESSION['sit'])
    118. {
    119. $meldung="<br>Bitte loggen Sie sich ein.";
    120. return array(FALSE,$meldung);
    121. }
    122. $sql="SELECT admin, zeit, kennung, (UNIX_TIMESTAMP()-
    123. UNIX_TIMESTAMP(zeit)) as time FROM user WHERE
    124. ID=".$_SESSION['IDuser']." AND kennung='".$_SESSION['sit']."'";
    125. $db = new db();
    126. $result=$db->execute($sql);
    127. if($db->num_rows() != 1)
    128. {
    129. $meldung="<br>Sie sind nicht angemeldet, bitte loggen Sie sich ein.";
    130. return array(FALSE,$meldung);
    131. }
    132. if($result[1]['time']/60>$this->idle)
    133. {
    134. $meldung="<br>Ihre SitzungsID ist aufgrund zu langer Inaktivität
    135. nicht mehr gültig, bitte melden Sie sich erneut an.";
    136. return array(FALSE,$meldung);
    137. }
    138. if($result[1]['admin']==-1 AND $mindestrecht==2)
    139. {
    140. $meldung="<br>Sie sind nicht als Administrator angemeldet, Sie haben
    141. keine Zugriffsrechte auf diese Seite.";
    142. return array(FALSE,$meldung);
    143. }
    144. return array(TRUE,"");
    145. }
    146. PROTECTED function schreibrecht()
    147. {
    148. if($_SESSION['IDuser'] AND $_SESSION['sit'])
    149. {
    150. $sql="UPDATE user SET ";
    151. $sql.=" zeit= now() ";
    152. $sql.=" WHERE ID='".$_SESSION['IDuser']."' AND kennung =
    153. '".$_SESSION['sit']."'";
    154. $db = new db();
    155. $result=$db->execute($sql);
    156. }
    157. }
    158. PROTECTED function formlogout()
    159. {
    160. $aus.="<h2>Sie sind angemeldet als ".$this->username()."<br>";
    161. $aus.="Abmelden?</h2>";
    162. $aus.="<form action=\"".$_SERVER['PHP_SELF']."\" method=\"post\">";
    163. $aus.="<input type=\"hidden\" name=\"sentzu\" value=\"2\">";
    164. $aus.="<br><br><input type=\"submit\" value=\"Abmelden\">";
    165. $aus.="</form>";
    166. return $aus;
    167. }//Ende logoutform
    168. PROTECTED function logout()
    169. {
    170. $sql="UPDATE user SET ";
    171. $sql.=" zeit= 0, ";
    172. $sql.=" kennung='' ";
    173. $sql.=" WHERE ID='".$_SESSION['IDuser']."' ";
    174. $db = new db();
    175. $result=$db->execute($sql);
    176. if($db->affected_rows() == 1)
    177. {
    178. $_SESSION['sit']="";
    179. $_SESSION['IDuser']="";
    180. $meldung="<br>Sie haben sich erfolgreich abgemeldet.";
    181. }
    182. else
    183. {
    184. $meldung="<br>Sie waren nicht angemeldet.";
    185. }
    186. return array(TRUE, $meldung);
    187. }
    188. PUBLIC function username()
    189. {
    190. $sql="SELECT username FROM user ";
    191. $sql.=" WHERE ID='".$_SESSION['IDuser']."' ";
    192. $db = new db();
    193. $result=$db->execute($sql);
    194. if($db->num_rows() == 1)
    195. {
    196. return $result[1]['username'];
    197. }else {return False;}
    198. }
    199. }//ende class
    200. ?>
    Alles anzeigen


    Das ist meine Login Datei login.php

    Quellcode

    1. <?php
    2. session_start();
    3. require_once('cl_db_mysql.php');
    4. require_once('cl_db.php');
    5. require_once('cl_zugriff.php');
    6. $zugriff1 = new zugriff(2);
    7. ?>



    Danke für eure Hilfe
  • Deinen Code kann man nun wirklich nicht lesen. Schreibst du im original auch so, oder ist da was beim koperen schief gegangen?

    Nun habe ich mal nach md5 gesucht. Erweiter deine Fehlermeldung doch einfach mal, damit du weißt was verglichen wird.

    Quellcode

    1. if (md5($_POST['kwort']) != $result[1]['kwort'])
    2. {
    3. $meldung="Bitte kontrollieren Sie Ihr Kennwort";
    4. $meldung.=md5($_POST['kwort'])." != ".$result[1]['kwort'];
    5. return array(FALSE, $meldung);
    6. }


    Falls $result[1]['kwort'] leer ist, dann lass dir mit print_r($result) den kompletten Inhalt ausgeben.
  • funktioniert

    also mein Skript funktioniert etz und das anmelden funktioniert auch.

    Ich Überprüfe immer wenn eine geschützte Seie aufgemacht wird ob der user angemeldet ist oder nicht.

    Jetzt habe ich in meiner Seite aber verschiedene Includes per PHP diese Übergeht er einfach.

    Quellcode

    1. <?php
    2. // Überprüfung ob der User angemelet ist.
    3. session_start();
    4. include '../php/session/sessionhelpers.inc.php';
    5. if (!logged_in())
    6. // Wenn er nicht angemeldet ist wird die Folgende Fehlermeldung aussgegeben und nach 2s wieder auf die Hauptseite zurückgelinkt
    7. echo 'Du bist nicht berechtigt diese Seite zu öffnen
    8. <meta http-equiv="refresh" content="2; URL=http://obm-partypics.de.vu">';
    9. //Wenn der user angemeldet ist wird die Seite angezeigt.
    10. else echo'
    11. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    12. <html xmlns="http://www.w3.org/1999/xhtml">
    13. <head>
    14. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    15. <title>
    16. <?php
    17. include("includes/title.txt");
    18. ?>
    19. </title>
    20. <link media="screen, projection"
    21. href="../style.css" type="text/css"
    22. rel="stylesheet"/>
    23. </style>
    24. </head>
    25. <body>
    26. <div id="kopf">
    27. <?php
    28. include("includes/kopf.txt");
    29. ?>
    30. </div>
    31. </div>
    32. <div id="news">
    33. <?php
    34. include("includes/news.txt");
    35. ?>
    36. </div>
    37. <p>
    38. <?php
    39. include("includes/navigation.txt");
    40. ?>
    41. <P></p>
    42. <div id="inhalt">
    43. <p>Inhalt</p>
    44. </div>
    45. <div id="fuss">
    46. <?php
    47. include("includes/fuss.txt");
    48. ?>
    49. </div>
    50. </li>
    51. </body>
    52. </html>
    53. ';?>
    Alles anzeigen


    Danke für eure Hilfe
  • Und entscheide dich zwischen PHP-HTML-Mischmaschoder reinem PHP-Code in dem du die HTML-Grütze mit echo ausgibst ;) Das wirkt konsequenter und du hast weniger Probleme zu erkennen was du grade machst, Code oder Design.
    ~ mfg SeBa

    Ich beantworte keine PMs zu Computer-/Programmierproblemen. Bitte wendet euch an das entsprechende Forum.

    [Blockierte Grafik: http://i.creativecommons.org/l/by-sa/3.0/80x15.png]