php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005-2

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 18.08.2005, 14:58  
Erfahrener Benutzer
 
Registriert seit: 07.04.2005
Beiträge: 184
LA-Finest
Standard

so hier poste ich mal alles was ich hab:

einloggen.php -- > an dem wir die ganze zeit rummachen :
PHP-Code:
<?php
session_start
();

/*
error_reporting(E_ALL);
    echo "<pre>\n";
    var_dump($_POST);
    echo "</pre>\n";
*/


//if ($einloggen)
{

      if( isset(
$username) && isset($password))
       
// AND
        //strcmp(trim($_POST['username']),'') != 0
        //AND
        //strcmp(trim($_POST['username']),'') != 0 )
      
{


          
// Einbinden der Konfigurationsdatei
          
include_once 'config.inc.php';

          
// Erstellen der Verbindung zur MySQL-Datenbank
        
$db mysql_connect($config['host'], $config['user'], $config['password'])
       
// or die('<pre>'. mysql_error().'</pre>' )
       
;

        
mysql_select_db($config['database']);
        

          
// 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_login1
                  WHERE username = '" 
trim($username) . "'
                  AND   password = '" 
md5(trim($password)) . "'"
               
//   mysql_real_escape_string($_POST['username']),
               //   mysql_real_escape_string($_POST['password'])"
               
;

          
$res mysql_query($sql) or die( 'Error[SELECT|User]: 

                                                          <pre>' 
$sql '</pre>
                                                          

                                                         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: http://p31276:1080/~d043622/php/Page_aktuell/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);
             
$_SESSION['anzahlLogins'] = $user->anzahlLogins;
             
$_SESSION['ID'] = $user->ID;

             
// Aktualisierung des Anzahl der Logins
             
$sql 'UPDATE archiv_login1
                     SET anzahlLogins = anzahlLogins + 1
                     WHERE ID = ' 
$user->ID;

             
mysql_query($sql) or die( 'Error[UPDATE|User]: 

                                                          <pre>' 
$sql '</pre>
                                                          

                                                          MySQL-Error: ' 
mysql_error() )
                                     ;

             
// Der Login war erfolgreich und der User wird zur Startseite des
             // passwortgeschützen Bereichs weitergeleitet
             
header'Location: http://p31276:1080/~d043622/php/Page_aktuell/administration.php' );
             exit();
          }

    }
    else {
          
header'Location: http://p31276:1080/~d043622/php/Page_aktuell/login.php' );
          exit();
         }
    
mysql_close($db);
?>
config.inc.php:

PHP-Code:
<?php
$config 
= array();

$config['host'] = 'localhost';
$config['user'] = 'user';
$config['password'] = 'pass';
$config['database'] = 'db';
?>
checklogin.php:

PHP-Code:
<?php


    session_start
();

    if( !
$_SESSION['loggedIn'] ) {
        
header'Location: http://p31276:1080/~d043622/php/Page_aktuell/login.php' );
        exit();
    }

?>
administration.php :

PHP-Code:
<?php

    
include_once 'checkLogin.inc.php';


echo 
"hallo welt";

?>
so das sind jetzt alle dateien die dazu gehören.
__________________
Eine Programmiersprache kann man nicht perfekt beherrschen,
nur gut.
Ansonsten hätte man sie erfunden!

www.bazubi.com/forum --> allgem. IT-Forum
LA-Finest ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 18.08.2005, 15:11  
Erfahrener Benutzer
 
Registriert seit: 08.05.2005
Beiträge: 814
andy
andy eine Nachricht über ICQ schicken
Standard

1. Hast du einen meiner Posts ignoriert.
2. register_globals = off ist ein muss.
3. Herrscht bei dir das absolute Chaos, guck dir mal die erste IF-Abfrage an, die steht in einem Komentar warum?
__________________
Zitat:
Diese Erweiterung ist EXPERIMENTELL.
[...]
Seien Sie gewarnt und verwenden Sie diese Erweiterung auf eigenes Risiko..
andy ist offline  
Alt 18.08.2005, 15:28  
Erfahrener Benutzer
 
Registriert seit: 07.04.2005
Beiträge: 184
LA-Finest
Standard

ok nochmal von vorne!

also register globals of = $_POST['abc'] hab ich jetzt wieder!
ich dachte du meinst mit $config, dass ich alle dateien abwandeln soll :-/
naja ich hab momentan gard selber erst mal den code bereinigt, da ich au nicht mehr durchgestiegen bin. sry.

welchen deiner schritte hatte ich vergessen???

hier nochmal der bereinigte code:

PHP-Code:
<?php
session_start
();

/*
error_reporting(E_ALL);
    echo "<pre>\n";
    var_dump($_POST);
    echo "</pre>\n";
*/


if ($_POST['einloggen'])
{

      if( isset(
$_POST['username']) && isset($_POST['password']))
       
      {


          
// Einbinden der Konfigurationsdatei
          
include_once 'config.inc.php';

          
// Erstellen der Verbindung zur MySQL-Datenbank
        
$db mysql_connect($config['host'], $config['user'], $config['password'])
        or die(
'<pre>'mysql_error().'</pre>' )
       ;

        
mysql_select_db($config['database']);
        

          
// 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_login1
                  WHERE username = '" 
trim($_POST['username']) . "'
                  AND   password = '" 
md5(trim($_POST['password'])) . "'";

          
$res mysql_query($sql) or die( 'Error[SELECT|User]: 

                                                          <pre>' 
$sql '</pre>
                                                          

                                                         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: http://p31276:1080/~d043622/php/Page_aktuell/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);
             
$_SESSION['anzahlLogins'] = $user->anzahlLogins;
             
$_SESSION['ID'] = $user->ID;

             
// Aktualisierung des Anzahl der Logins
             
$sql 'UPDATE archiv_login1
                     SET anzahlLogins = anzahlLogins + 1
                     WHERE ID = ' 
$user->ID;

             
mysql_query($sql) or die( 'Error[UPDATE|User]: 

                                                          <pre>' 
$sql '</pre>
                                                          

                                                          MySQL-Error: ' 
mysql_error() )
                                     ;

             
// Der Login war erfolgreich und der User wird zur Startseite des
             // passwortgeschützen Bereichs weitergeleitet
             
header'Location: http://p31276:1080/~d043622/php/Page_aktuell/administration.php' );
             exit();
          }

    }
    else {
          
header'Location: http://p31276:1080/~d043622/php/Page_aktuell/login.php' );
          exit();
         }
    
mysql_close($db);
}
?>
__________________
Eine Programmiersprache kann man nicht perfekt beherrschen,
nur gut.
Ansonsten hätte man sie erfunden!

www.bazubi.com/forum --> allgem. IT-Forum
LA-Finest ist offline  
Alt 18.08.2005, 15:54  
Erfahrener Benutzer
 
Registriert seit: 08.05.2005
Beiträge: 814
andy
andy eine Nachricht über ICQ schicken
Standard

Du hast den Schritt ignoriert der dafür sorgt, dass sich nicht Jemand mit beliebigen Zugangsdaten einloggt.
mysql_real_escape_string.

" SET anzahlLogins = anzahlLogins + 1 " ob das so geht?
-> SET anzahlLogins ='". $_SESSION['anzahlLogins']."'

Um zu Testen würde ich dir raten, erstmal die Weiterleitungen sein zu lassen und mit klaren Ausgaben zu Testen(echo('Eingeloggt!'); ) Sonst sorgt ein Ausgegebener Errordafür das der nächste entsteht (und ja error_reporting wieder einschalten)

Nein, $_... is ja für die Superglobals
__________________
Zitat:
Diese Erweiterung ist EXPERIMENTELL.
[...]
Seien Sie gewarnt und verwenden Sie diese Erweiterung auf eigenes Risiko..
andy ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Session Problem karina_02 PHP Tipps 2008 6 18.05.2008 22:37
Problem bei session Lifetime Cyberbob_at_tot PHP Tipps 2007 5 05.06.2007 17:47
Problem mit Session Charly Shop Sui PHP Tipps 2006 13 25.08.2006 17:08
Und noch ein Session Problem... Weyoun PHP Tipps 2006 9 27.02.2006 22:17
Problem mit Firefox und Session PHP Tipps 2005-2 5 25.08.2005 01:14
Session wieder aufnehmen; Problem mit GET Jacks Rache PHP-Fortgeschrittene 9 12.08.2005 14:32
[Erledigt] Problem mit Session PHP Tipps 2005-2 1 06.08.2005 19:07
Problem mit Session PHP Tipps 2005-2 13 10.07.2005 18:20
seltsames php und session problem netti PHP-Fortgeschrittene 16 01.06.2005 17:01
[Erledigt] Hilfe...PhpBB Session Problem!! PHP Tipps 2004-2 2 15.12.2004 18:28
Session Problem beim Login PHP Tipps 2004-2 6 15.12.2004 09:37
problem mit ner Session, es gehn Arrays verloren PHP-Fortgeschrittene 3 10.11.2004 18:01
[Erledigt] PHP Session Problem, dringend! PHP-Fortgeschrittene 17 21.10.2004 21:15
Session wird falsch wieder aufgenommen - Problem mit Session PHP Tipps 2004 2 16.10.2004 14:30
session problem PHP Tipps 2004 2 22.07.2004 08:39


Alle Zeitangaben in WEZ +2. Es ist jetzt 06:25 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.