XHTMLforum

XHTMLforum (http://xhtmlforum.de/index.php)
-   Serveradministration und serverseitige Scripte (http://xhtmlforum.de/forumdisplay.php?f=80)
-   -   Problem mit login. (http://xhtmlforum.de/showthread.php?t=57803)

uspri 24.07.2009 21:02

Steht denn auch was in Deiner Datenbank?

rs-web 24.07.2009 21:19

Ja alles Daten vorhanden man kann sich auch einloggen, und die Anzahl der logins die user id wird angezeigt nur der username nicht..;)
LG rs-web

uspri 24.07.2009 22:11

Und wie schaut Deine Datenbank aus und die entsprechende Query dazu?

rs-web 24.07.2009 22:25

so:

Code:

  _id int(4)  Nein  auto_increment             
  _username varchar(50) latin1_swedish_ci  Nein               
  _passwort varchar(35) latin1_swedish_ci  Nein               
  _anzahlLogins int(7)  Nein 1

LG rs-web

uspri 25.07.2009 08:15

Und Deine Query dazu? Mach mal nach dem
PHP-Code:

$user mysql_fetch_object($res); 

ein
PHP-Code:

var_dump($user); 

mal schauen, was da alles kommt.

rs-web 25.07.2009 10:19

ja also der phpp code sieht dann so aus:
PHP-Code:

// Die userspezifischen Daten werden ausgelesen und der Session hinzugefügt
             
$user mysql_fetch_object($res);
             
var_dump($user);  
             
$_SESSION['anzahlLogins'] = $user->_anzahlLogins;
             
$_SESSION['id'] = $user->_id;
             
$_SESSION['user'] = $user->_username



und die Fehlermeldung:
Code:

object(stdClass)#1 (2) { ["_id"]=>  string(1) "1" ["_anzahlLogins"]=>  string(2) "20" }
Warning: Cannot modify header information - headers already sent by (output started at /var/www/web38/html/login/validateLogin.inc.php:58) in /var/www/web38/html/login/validateLogin.inc.php on line 79


rs-web 25.07.2009 10:20

vll hilf ja die ganze php weiter?!
PHP-Code:

<?php

    session_start
();
    
    
// Überprüfen, ob das Formular abgeschickt wurde und ob beide Angaben gemacht wurden.
    
if( isset($_POST['username'], $_POST['passwort'])
        AND
        
strcmp(trim($_POST['username']),'') != 0
        
AND
        
strcmp(trim($_POST['username']),'') != ) {

          
          
// Einbinden der Konfigurationsdatei
          
include_once 'config.inc.php';
          
          
// Erstellen der Verbindung zur MySQL-Datenbank 
          
if( !$connection mysql_connect$_config['host'], $_config['user'], $_config['password'] ) ) {
               die( 
'Verbindung zum Datenbankserver konnte nicht hergestellt werden.' );
          }

          if( !
mysql_select_db$_config['database'], $connection ) ) {
              die ( 
'Die Datenbank ' $_config['database'] . ' kann nicht verwendet werden. <br />
                       MySQL-Error: <br />' 
mysql_error() );
          }
          
          
          
// SQL-Anweisung an die Datenbank senden, um erstens herauszufinden, ob 
          // diese Kombination von Usernamen und Passwort überhaupt existiert und 
          // zweitens bei Existenz Userinformationen auszulesen
          
$sql "SELECT 
                           _id,
                           _anzahlLogins
                      FROM         
                           archiv_login
                      WHERE
                           _username = '" 
trim($_POST['username']) . "'
                      AND
                           _passwort = '" 
md5(trim($_POST['passwort'])) . "'";
                           
          
$res mysql_query($sql) or die( 'Error[SELECT|User]: <br />
                                                           <pre>' 
$sql '</pre>
                                                           <br />
                                                           MySQL-Error: ' 
mysql_error() );
              
          
// Nur wenn genau ein Datensatz selektiert wurde wird der User eingeloggt.
          // In allen anderen Fällen wird er zurück zum Loginformular geleitet.
          
if( mysql_num_rows($res) != ) {
              
header'Location: ../login/loginfehler.html' );              
              exit();
          } 
          else {
             
// Der Schlüssel 'loggedIn' erhält den Wert 'true'. So kann überprüft später werden, 
             // ob der User eingeloggt ist oder nicht.
             
$_SESSION['loggedIn'] = true;
             
             
// Die userspezifischen Daten werden ausgelesen und der Session hinzugefügt
             
$user mysql_fetch_object($res);
             
var_dump($user);  
             
$_SESSION['anzahlLogins'] = $user->_anzahlLogins;
             
$_SESSION['id'] = $user->_id;
             
$_SESSION['user'] = $user->_username;
             
             
             
// Aktualisierung des Anzahl der Logins
             
$sql 'UPDATE 
                              archiv_login
                         SET
                              _anzahlLogins = _anzahlLogins + 1
                         WHERE
                              _id = ' 
$user->_id;
                              
             
mysql_query($sql) or die( 'Error[UPDATE|User]: <br />
                                                          <pre>' 
$sql '</pre>
                                                          <br />
                                                          MySQL-Error: ' 
mysql_error() );  
                                                          
             
// Der Login war erfolgreich und der User wird zur Startseite des 
             // passwortgeschützen Bereichs weitergeleitet
             
header'Location: ../index.php' );
             exit();                                            
          }
          
    }
    else {
          
header'Location: ../index.php' );
          exit();
    } 

?>

LG rs-web

uspri 25.07.2009 10:36

Genau deshalb fragte ich nach der Query:
PHP-Code:

          // SQL-Anweisung an die Datenbank senden, um erstens herauszufinden, ob 
          // diese Kombination von Usernamen und Passwort überhaupt existiert und 
          // zweitens bei Existenz Userinformationen auszulesen
          
$sql "SELECT 
                           _id,
                           _anzahlLogins
                      FROM         
                           archiv_login
                      WHERE
                           _username = '" 
trim($_POST['username']) . "'
                      AND
                           _passwort = '" 
md5(trim($_POST['passwort'])) . "'"

Da steht gar kein Username drinnen, also kann auch in der Variablen $user->_username nichts drinnen stehen und darum kommt auch in der Session nichts an.

rs-web 25.07.2009 10:41

ja und was soll ich jetzt machen?!
LG rs-web

uspri 25.07.2009 11:08

Den Usernamen mit aus der DB auslesen?


Alle Zeitangaben in WEZ +2. Es ist jetzt 08:10 Uhr.

Powered by vBulletin® Version 3.8.11 (Deutsch)
Copyright ©2000 - 2024, vBulletin Solutions, Inc.

© Dirk H. 2003 - 2023