Logo - MyWebsolution.de
User gesamt  :  2315931
User online  :  3
KubaSeoTräume, PHP Forum, PHP Community and more ... MyWebsolution.de!
   
   
 
Registrieren Login User F.A.Q Suche Home

eingeloggt bleiben

MyWebsolution.de Foren » Workshops » Login geht nicht

Seite: 1 2  > Posts pro Seite: 5 10 20
Autor Thread
17.08.2008 21:00 Uhr Login geht nicht
wmmk
Forenuser
 
registriert 17.08.2008
wohnt in
Beiträge 10
erst mal thx für dsa gute script. wwenn ich mich einloggen will steht da immer dann falses passowrt oder falscher nickname. aber beide sind richtig geschreiben. hab den code nicht veraendert. bhitte um schnelle antwort.

mfg wmmk
Profil ansehen
17.08.2008 22:59 Uhr
Flitze
Administrator
registriert 17.10.2006
wohnt in Eschwege
Beiträge 332
Nen paar mehr daten brauch ich schon ;)
haste die datenbank kontrolliert, also steht auch wirklich was drin? ist das passwort mit md5() codiert?

Lass dir mal den Query zum auslesen aus der Datenbank ausgeben (der, der ausgeführt wird, wenn du den Loginbutton drückst).

Un poste mal den entsprechenden Quellcode


Profil ansehen Mail senden
18.08.2008 07:54 Uhr
wmmk
Forenuser
 
registriert 17.08.2008
wohnt in
Beiträge 10
so in der db steht was drin! der quellcode:
Code:
<?php session_start(); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!-- TemplateBeginEditable name="doctitle" -->
<title>TsG Clan - Login</title>
<!-- TemplateEndEditable -->
<!-- TemplateBeginEditable name="head" -->
<!-- TemplateEndEditable -->
<link href="style.css" rel="stylesheet" type="text/css" />
</head>

<body>
<?php
    error_reporting(E_ALL);

    $MYSQL_HOST = 'localhost';
    $MYSQL_USER = 'tsg-clan_wmmk';
    $MYSQL_PASS = '*************';
    $MYSQL_DATA = 'tsg-clan_wmmk';

    $connid = @mysql_connect($MYSQL_HOST, $MYSQL_USER, $MYSQL_PASS) OR die("Error: ".mysql_error());
    mysql_select_db($MYSQL_DATA) OR die("Error: ".mysql_error());

    // liefert die Rechte eines Users ..
    function getRights()
    {
        $rights = array();
        // .. indem die Rechte eines User aus der Datenbank ausgewählt werden..
        if(isset($_SESSION['UserID'])){
            $sql = "SELECT
                            Recht
                    FROM
                            Rechte
                    WHERE
                            UserID = '".$_SESSION['UserID']."'
                   ";
            $result = mysql_query($sql) OR die ("<pre>\n".$sql."</pre>\n".mysql_error());
            $rights = array();
            // .. und als array zurückgegeben werden
            while($row = mysql_fetch_assoc($result))
                    $rights[] = $row['Recht'];
        }
        return $rights;
    }

    // Loggt einen User ein, ..
    function doLogin($ID, $Autologin=false)
    {
        // .. indem die aktuelle Session ID in der Datenbank gespeichert wird
        $sql = "UPDATE
                        User
                SET
                        SessionID = '".mysql_real_escape_string(session_id())."',
                        Autologin = NULL,
                        IP = '".$_SERVER['REMOTE_ADDR']."',
                        Letzte_Aktion = '".mysql_real_escape_string(time())."',
                        Letzter_Login = '".mysql_real_escape_string(time())."'
                WHERE
                        ID = '".$ID."'
                ";
        mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
        // Wenn 'eingeloggt bleiben' aktiviert wurde
        if($Autologin){
            // Zufallscode erzeugen
            $part_one = substr(time()-rand(100, 100000),5,10);
            $part_two = substr(time()-rand(100, 100000),-5);
            $Login_ID = md5($part_one.$part_two);
            // Code im Cookie speichern, 10 Jahre dürfte genügen
            setcookie("Autologin", $Login_ID, time()+60*60*24*365*10);
            $sql = "UPDATE
                            User
                    SET
                            Autologin = '".$Login_ID."'
                    WHERE
                            ID = '".$ID."'
                   ";
            mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
        }

        // Daten des Users in der Session speichern
        $sql = "SELECT
                        Nickname
                FROM
                        User
                WHERE
                        ID = '".$ID."'
               ";
        $result = mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());

        $row = mysql_fetch_assoc($result);
        $_SESSION['UserID'] = $ID;
        $_SESSION['Nickname'] = $row['Nickname'];
        // Rechte in der Session speichern
        $_SESSION['Rechte'] = getRights();
    }



    if(isset($_POST['submit']) AND $_POST['submit']=='Einloggen'){
        // Falls der Nickname und das Passwort übereinstimmen..
        $sql = "SELECT
                        ID
                FROM
                        User
                WHERE
                        Nickname = '".mysql_real_escape_string(trim($_POST['Nickname']))."' AND
                        Passwort = '".md5(trim($_POST['Passwort']))."'
               ";
        $result = mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
        // wird die ID des Users geholt und der User damit eingeloggt
        $row = mysql_fetch_assoc($result);
        // Prüft, ob wirklich genau ein Datensatz gefunden wurde
        if (mysql_num_rows($result)==1){
             doLogin($row['ID'], isset($_POST['Autologin']));
             echo "<h4>Willkommen ".$_SESSION['Nickname']."</h4>\n";
             echo "Sie wurden erfolgreich eingeloggt.<br>\n".
                  "Zur <a href=\"index.php\">Startseite</a>\n";
        }
        else{
             echo "Sie konnten nicht eingeloggt werden.<br>\n".
                  "Nickname oder Passwort fehlerhaft.<br>\n".
                  "Zurück zum <a href=\"".$_SERVER['PHP_SELF']."\">Login-Formular</a>\n";
        }
    }
    else{
        echo "<form ".
             " name=\"Login\" ".
             " action=\"".$_SERVER['PHP_SELF']."\" ".
             " method=\"post\" ".
             " accept-charset=\"ISO-8859-1\">\n";
        echo "Nickname :\n";
        echo "<input type=\"text\" name=\"Nickname\" maxlength=\"32\">\n";
        echo "<br>\n";
        echo "Passwort :\n";
        echo "<input type=\"password\" name=\"Passwort\">\n";
        echo "<br>\n";
        echo "eingeloggt bleiben :\n";
        echo "<input type=\"checkbox\" name=\"Autologin\" value=\"1\">\n";
        echo "<br>\n";
        echo "<input type=\"submit\" name=\"submit\" value=\"Einloggen\">\n";
        echo "<br>\n";
        echo "<a href=\"passwort.php\">Passwort vergessen</a> oder noch nicht <a href=\"registrierung.php\">registriert</a>?\n";
        echo "</form>\n";
    }
?> 
</body>
</html>
! so habe nru die db User_Rechte in Rechte umbenannt weil es so net ging! so in md5() ist es auch codiert. sry wegen der schreibweise gestern... war schon müde..^^ joa dat wars ja erst ma wieder

Dieser Beitrag wurde am 18.08.2008 um 07:55:51 Uhr von wmmk zum 1. Mal editiert.
Profil ansehen
18.08.2008 13:15 Uhr
Flitze
Administrator
registriert 17.10.2006
wohnt in Eschwege
Beiträge 332
Mach mal bitte die Testausgaben.

Ich möchte gern wissen, was in den Variblen $sql und $row drin steht.

PHP:
<?php
        
// Das unten stehende $sql bitte mir var_dump() ausgeben lassen   
        
$sql "SELECT
                        ID
                FROM
                        User
                WHERE
                        Nickname = '"
.mysql_real_escape_string(trim($_POST['Nickname']))."' AND
                        Passwort = '"
.md5(trim($_POST['Passwort']))."'
               "
;
        
$result mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
        
// Das unten stehende $row bitte mir var_dump() ausgeben lassen
        
$row mysql_fetch_assoc($result);
?>


Und nimm zum formatieren bitte die PHP tags ;)

Ich hoffe du hast auf Groß- und Kleinschreibung geachtet :P


Profil ansehen Mail senden
18.08.2008 13:32 Uhr
wmmk
Forenuser
 
registriert 17.08.2008
wohnt in
Beiträge 10
wo soll i den code einfügen? in ne datei? einfach so
Profil ansehen
18.08.2008 16:47 Uhr
gizzy2k7
User
 
registriert 18.08.2008
wohnt in
Beiträge 4
schreib einfach unter die stelle die flitze gepostet hat

var_dump($row);
var_dump($sql);

Rufe die Seite nochmal auf und poste hier, was dort steht :)

Dieser Beitrag wurde am 18.08.2008 um 16:47:50 Uhr von gizzy2k7 zum 1. Mal editiert.
Profil ansehen
18.08.2008 17:43 Uhr
wmmk
Forenuser
 
registriert 17.08.2008
wohnt in
Beiträge 10
Code:
bool(false) string(237) "SELECT ID FROM User WHERE Nickname = 'wmmk' AND Passwort = 'e2a01d1603e3403d4c76ef14618b79ce' " Sie konnten nicht eingeloggt werden.
Nickname oder Passwort fehlerhaft.
Zurück zum Login-Formular
so .^^ anscheinend steh ja was drin
..

Dieser Beitrag wurde am 18.08.2008 um 17:43:31 Uhr von wmmk zum 1. Mal editiert.
Profil ansehen
19.08.2008 13:07 Uhr
Flitze
Administrator
registriert 17.10.2006
wohnt in Eschwege
Beiträge 332
nimm mal die Passwortbedingung raus,
also so, dass die WHERE-Bedingung nur den Usernamen enthält

wenns klappt stimmt was mit dem Passwort nicht, dann musste vllt noma den user neu anlegen.

ich hoffe, dass das Passwort in der MySQL-Datenbank auch verschlüsselt steht, ja :P?


Profil ansehen Mail senden
20.08.2008 09:43 Uhr
wmmk
Forenuser
 
registriert 17.08.2008
wohnt in
Beiträge 10
also veschlüsselt is es in der db auch mit der Where Bedingung probier ichs aus und guck dann schreib ichs hier
Profil ansehen
20.08.2008 09:44 Uhr
wmmk
Forenuser
 
registriert 17.08.2008
wohnt in
Beiträge 10
ok login geht. aber man kann auch nur nen existierenden nickname eingeben und kein password und er logt trotzdem ein. scheint wohl dran zuliegen das i die pw bediungng ruasgenommen habe...

Dieser Beitrag wurde am 20.08.2008 um 09:50:11 Uhr von wmmk zum 1. Mal editiert.
Profil ansehen
Seite: 1 2  > no reply
Powered by Pascal Landau © 2006 MyWebsolution.de
Designed by Pascal Landau © 2006 MyWebsolution.de
 
 
 
 
Home Email Impressum Disclaimer Statistik