Finde fehler nicht in login.php

  • Themenstarter Themenstarter ByeBye 177919
  • Beginndatum Beginndatum
Hab 1:1 übernommen.

Jetzt kommt keine fehlermeldung mehr. Aber das kommt immer noch >
PHP:
user:test1
pass:5a105e8b9d40e1329780d62ea2265d8a
Test Ausgabe count:0Account ist gebannt.
 
Ja weil kein Datensatz mit den Werten gefunde wurde.
Siehe da keine Echo ausgabe aus der Db folgt.

Nun gehen wir einen Schritt Weiter und geben mal alles aus der Tabelle aus und vergleichen es mit der Eingabe. Dazu geben wir mal die Tabelle aus und vergleichen dann.

PHP:
<form id="form1" name="form1" method="post" action="index.php?p=login">  
  <p align="center" class="tdglobal"><span class="b01">Login</span></p>  
  <table width="200" border="0" align="center" class="liteoption">  
    <tr>  
      <td width="97" class="right"><div align="left">Username:</div></td>  
      <td width="93" class="right"><input name="user" type="text" class="liteoption" id="user" size="15" maxlength="15" /></td>  
    </tr>  
    <tr>  
      <td class="right"><div align="left">Password:</div></td>  
      <td class="right"><input name="pass" type="text" class="liteoption" id="pass" size="15" maxlength="15" /></td>  
    </tr>  
  </table>  
  <p align="center" class="tdglobal"><span class="right">  
    <input name="submit" type="submit" class="liteoption" id="submit" value="Log In" size="15" maxlength="15" />  
  </span></p>  
</form>  
<p align="center" class="tdglobal">  

<?php  
include ("cfg/config.php");  
if(isset($_POST['submit'])) {  
$U=mysql_escape_string ($_POST['user']);  
$P=mysql_escape_string (md5($_POST['pass']));  
echo "user:".$U."<br>";
echo"pass:".$P."<br>";
$conn = mysql_connect($dbh, $dbu, $dbp); //Verbindung zur Db 
$db = mysql_select_db($db); // Dbname auswählen 

$sql = "SELECT * FROM `accounts`";  
$query = mysql_query($sql, $conn);  
$count = mysql_num_rows($query);  
while($row = mysql_fetch_assoc($query)) {
	echo "Dbname:".$row['name']."<br>";
	echo "Dbpass:".$row['password']."<br>";
	echo"-------------------------------";
	
}
echo "Test Ausgabe count:".$count;  // Ergebniss am Browser ausgeben 
    if($count == 1){  
        $_SESSION["User"]=$U; // Session Variable erstellen 
        $_SESSION["Pass"]=$P;  
        echo('Logged in.... Klick <a href=?op=user><strong>hier</strong></a>');  
        }  
        else {echo "<strong>Account ist gebannt.</strong>";}  
}  
?>

Mfg Splasch
 
Zuletzt bearbeitet:
Ich glaube ich hab deinen Fehler gefunden!

In deiner Tabellen steht in etwas so was er da Auspuckt:

Dbname:Bla
Dbpass:9cc9c27e4a
-------------------------------Dbname:123
Dbpass:202cb962ac
-------------------------------Dbname:44
Dbpass:3416a75f4c
-------------------------------Dbname:BloodyMary
Dbpass:c6f057b865
-------------------------------Dbname:444
Dbpass:550a141f12


Das deutet draufhin das zuwenig Zeichen in deine Spalte "password" bassen. Stell den Varchar wert größer und lösch dann den Inhalt der Tabelle auf 50 sollte jedenfalls ausreichen.


Warum du jetzt nix sieht liegt daran das die Db nicht mehr geschlossen wird
Befehl mysql_close($conn);
PHP:
<form id="form1" name="form1" method="post" action="index.php?p=login">  
  <p align="center" class="tdglobal"><span class="b01">Login</span></p>  
  <table width="200" border="0" align="center" class="liteoption">  
    <tr>  
      <td width="97" class="right"><div align="left">Username:</div></td>  
      <td width="93" class="right"><input name="user" type="text" class="liteoption" id="user" size="15" maxlength="15" /></td>  
    </tr>  
    <tr>  
      <td class="right"><div align="left">Password:</div></td>  
      <td class="right"><input name="pass" type="text" class="liteoption" id="pass" size="15" maxlength="15" /></td>  
    </tr>  
  </table>  
  <p align="center" class="tdglobal"><span class="right">  
    <input name="submit" type="submit" class="liteoption" id="submit" value="Log In" size="15" maxlength="15" />  
  </span></p>  
</form>  
<p align="center" class="tdglobal">  

<?php  
include ("cfg/config.php");  
if(isset($_POST['submit'])) {  
$U=mysql_escape_string ($_POST['user']);  
$P=mysql_escape_string (md5($_POST['pass']));  
echo "user:".$U."<br>";
echo"pass:".$P."<br>";
$conn = mysql_connect($dbh, $dbu, $dbp); //Verbindung zur Db 
$db = mysql_select_db($db); // Dbname auswählen 

$sql = "SELECT * FROM `accounts`";  
$query = mysql_query($sql, $conn);  
$count = mysql_num_rows($query);  
while($row = mysql_fetch_assoc($query)) {
	echo "Dbname:".$row['name']."<br>";
	echo "Dbpass:".$row['password']."<br>";
	echo"-------------------------------<br>";
	
}
mysql_close($conn); //Db Verbindung wieder Schließen
echo "Test Ausgabe count:".$count;  // Ergebniss am Browser ausgeben 
    if($count == 1){  
        $_SESSION["User"]=$U; // Session Variable erstellen 
        $_SESSION["Pass"]=$P;  
        echo('Logged in.... Klick <a href=?op=user><strong>hier</strong></a>');  
        }  
        else {echo "<strong>Account ist gebannt.</strong>";}  
}

Mfg Splasch
 
Zuletzt bearbeitet:
PHP:
user:aaa
pass:47bce5c74f589f4867dbd57e9ca9f808
Dbname:Bla
Dbpass:9cc9c27e4a
-------------------------------Dbname:123
Dbpass:202cb962ac
-------------------------------Dbname:44
Dbpass:3416a75f4c
-------------------------------Dbname:BloodyMary
Dbpass:c6f057b865
-------------------------------Dbname:444
Dbpass:550a141f12
-------------------------------Dbname:41
Dbpass:3416a75f4c
-------------------------------Dbname:tomekk
Dbpass:27b14dd934
-------------------------------Dbname:66
Dbpass:3295c76acb
-------------------------------Dbname:111
Dbpass:698d51a19d
-------------------------------Dbname:55
Dbpass:b53b3a3d6a
-------------------------------Dbname:guest
Dbpass:084e0343a0
-------------------------------Dbname:test
Dbpass:098f6bcd46
-------------------------------Dbname:1
Dbpass:c4ca4238a0
-------------------------------Dbname:test1
Dbpass:5a105e8b9d
-------------------------------Dbname:aaa
Dbpass:47bce5c74f589f4867dbd57e9ca9f808
-------------------------------Test Ausgabe count:15Account ist gebannt
Hehe, sieht gut aus :)

Habs mit "aaa" versucht. Was ist jetzt zutun?
 
Du mußt bei deiner Datenbank in der Tabelle accounts die Spaltte password ändern auf einen type varchar mit 50 zeichen.

Danach löscht du den Tabelleninhalt also nur die Werte.(Also alle Datensätze)
Danach sollte das Regestrieren mit anschließenden Login funktionieren

PHP:
<form id="form1" name="form1" method="post" action="index.php?p=login">  
  <p align="center" class="tdglobal"><span class="b01">Login</span></p>  
  <table width="200" border="0" align="center" class="liteoption">  
    <tr>  
      <td width="97" class="right"><div align="left">Username:</div></td>  
      <td width="93" class="right"><input name="user" type="text" class="liteoption" id="user" size="15" maxlength="15" /></td>  
    </tr>  
    <tr>  
      <td class="right"><div align="left">Password:</div></td>  
      <td class="right"><input name="pass" type="text" class="liteoption" id="pass" size="15" maxlength="15" /></td>  
    </tr>  
  </table>  
  <p align="center" class="tdglobal"><span class="right">  
    <input name="submit" type="submit" class="liteoption" id="submit" value="Log In" size="15" maxlength="15" />  
  </span></p>  
</form>  
<p align="center" class="tdglobal">  

<?php  
include ("cfg/config.php");  
if(isset($_POST['submit'])) {  
$U=mysql_escape_string ($_POST['user']);  
$P=mysql_escape_string (md5($_POST['pass']));  
$conn = mysql_connect($dbh, $dbu, $dbp); //Verbindung zur Db 
$db = mysql_select_db($db); // Dbname auswählen 

$sql = sprintf("SELECT * FROM `accounts` WHERE name='%s' and password='%s'",($U),($P)); 
$query = mysql_query($sql, $conn);  
$count = mysql_num_rows($query);  

mysql_close($conn);
echo "Test Ausgabe count:".$count;  // Ergebniss am Browser ausgeben 
    if($count == 1){  
        $_SESSION["User"]=$U; // Session Variable erstellen 
        $_SESSION["Pass"]=$P;  
        echo('Logged in.... Klick <a href=?op=user><strong>hier</strong></a>');  
        }  
        else {echo "<strong>Account ist gebannt.</strong>";}  
}  
?>

So hab nun die Test ausgaben wieder rausgenohmen.

Mfg Splasch
 
Zuletzt bearbeitet:
Hab shcon auf varchar 100 gestellt :)

Werde jetzt alles löschen, also die einträge :)

Hehe, das geht. Aber nur mit dem 1 User. Bei mir in dem jetzigen fall also tomekk.

Mit acc "test" kann ich mich schon nicht mehr einloggen.>
PHP:
user:test
pass:202cb962ac59075b964b07152d234b70
Dbname:tomekk
Dbpass:27b14dd9340c5ea9067880cc25101f65
-------------------------------Dbname:test
Dbpass:202cb962ac59075b964b07152d234b70
-------------------------------Test Ausgabe count:2Account ist gebannt.
 
Zuletzt bearbeitet von einem Moderator:
Wunderbar :)

Es funktioniert :)

Danke an euch.

Darf ich noch eine, zwei fragen stellen?

Und zwar wie sag ich jetzt page xy das er überprüfen soll ob man eingelogt ist?

Will in die login.php dann es rein setzen und sagen: "wenn schon eingelogt: dann zeige "auslog" link".

Danke.
 
Das geht über die Session variable

PHP:
if (!isset($_SESSION["User"])){
die("Du bist nicht Eingelogt");
}

Mfg Splasch
 
Zurück