tutorials.de Buch-Aktion 05/2012
Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
NEIN
ANTWORTEN
16
ZUGRIFFE
367
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von 123123123
    123123123 123123123 ist offline Mitglied Gold
    Registriert seit
    Aug 2011
    Beiträge
    177
    Hallo Leute,

    ich möchte ein Login- Verfahren erstellen. Ich habe schon eine Datenbank angelegt und auch ein Formular erstellt. So meine Frage ist, wie ich das mit SESSION verbinden kann. Für mich ist SESSION einfach schwierig zu verstehen.
    Der Code(nur die Verbindung zu Datenbank):
    PHP-Code:
    <?php
    include("db.php");
    include 
    "header.php";

    if(
    $_POST && $_POST['user_login'] && $_POST['user_passwort']) {
        
    $user $db->getQueryData("    SELECT * 
                                    FROM benutzerliste 
                                    WHERE user_login = '
    {$_POST['user_login']}
                                    AND user_passwort = '"
    .md5($_POST['user_passwort'])."'");
        



        
        
        if(
    $user && $user[0]['user_login']) {
            echo 
    "Login erfolgreich";
        } else {
            echo 
    "Login fehlgeschlagen";
        }
    }
    ?>
    Würde mich über eine Antwort freuen!!
    Danke!
     

  2. #2
    Avatar von Maniac
    Maniac Maniac ist offline Mitglied Smaragd
    Registriert seit
    Apr 2007
    Ort
    Augsburg/Gersthofen (Bayern)
    Beiträge
    1.204
    Sessions sind einfach GLOBALE Speicher, wo du alles ablegen kannst und wieder auf anderen Seiten innerhalb des Geltungsbereiches wieder zugreifen kannst.

    Am !Anfang! der Datei muss session_start() gesetzt werden:
    PHP-Code:
    <?php
    session_start
    ();

    // restlicher code....

    if($user && $user[0]['user_login']) {
            
    $_SESSION['user'] = $user[0]['user_login'];
            echo 
    "Login erfolgreich";
        } else {
            echo 
    "Login fehlgeschlagen";
        } 

    // testausgabe
    echo $_SESSION['user'];
     
    Die Schweine von heute sind unsere Schnitzel von morgen!

  3. #3
    Avatar von 123123123
    123123123 123123123 ist offline Mitglied Gold
    Registriert seit
    Aug 2011
    Beiträge
    177
    Danke für die schnelle Antwort!
    Und wie mache ich, damit das Formular verschwindet, d.h eine andere Seite auf geht nach dem ich auf OK - Button klicke? Geht das mit 'header' ?
     

  4. #4
    Avatar von saftmeister
    saftmeister saftmeister ist offline Der Saft sei mit dir
    tutorials.de Premium-User
    Registriert seit
    May 2006
    Ort
    There is no place like 127.0.0.1
    Beiträge
    3.521
    Richtig, im Falle von
    Code :
    1
    
    echo "Login erfolgreich";
    solltest du statt dessen mit
    Code :
    1
    
    header('Location: ....');
    arbeiten. Bei den Punkten kannst du die URL eintragen, zu der umgeleitet werden soll.
     
    Grüße
    --
    Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)

  5. #5
    Avatar von Maniac
    Maniac Maniac ist offline Mitglied Smaragd
    Registriert seit
    Apr 2007
    Ort
    Augsburg/Gersthofen (Bayern)
    Beiträge
    1.204
    Zitat Zitat von 123123123 Beitrag anzeigen
    Danke für die schnelle Antwort!
    Und wie mache ich, damit das Formular verschwindet, d.h eine andere Seite auf geht nach dem ich auf OK - Button klicke? Geht das mit 'header' ?
    genau so, oder aber du leitest dein Formular zum verarbeiten an eine andere SEite weiter und leitest bei erfolgreicher Überprüfung wieder zurück. Auf deiner Eigentlichen Seite halt dann prüfen ob die Session-Variable gesetzt ist, wenn nein, dann Formular anzeigen - wenn ja, dann nicht anzeigen.
     
    Die Schweine von heute sind unsere Schnitzel von morgen!

  6. #6
    Avatar von 123123123
    123123123 123123123 ist offline Mitglied Gold
    Registriert seit
    Aug 2011
    Beiträge
    177
    Wie gehts das, wenn ich fragen darf?
    Hab so angefangen:
    PHP-Code:
    if ($_SESSION['user'] = $user[0]['user_login']) {
        
    header('Location: index1.php');
        } 
    Muss ich eine neue Seite erstellen oder einfach mit einem Befehl das Formular "verschwinden lassen"?
    Danke
    Geändert von 123123123 (13.01.12 um 10:47 Uhr) Grund: php code geändert
     

  7. #7
    Avatar von Maniac
    Maniac Maniac ist offline Mitglied Smaragd
    Registriert seit
    Apr 2007
    Ort
    Augsburg/Gersthofen (Bayern)
    Beiträge
    1.204
    Das kannst du machen wie du willst, musst dich halt für eine Möglichkeit entscheiden.

    Entweder:
    Formular zur Verarbeitung auf eine andere SEite leiten, bei ERfolgreichen Authentifizierung wieder zurück auf vorige seite mit header().

    Oder:
    Alles in einer Seite:
    Überprüfen ob die Session-Variable existiert und einen Wert enthält, wenn ja nichts machen, wenn nein dann das Formular anzeigen:
    PHP-Code:
    if(isset($_SESSION['user']) && $_SESSION['user'] != ''){
            
    // Session existiert
    }else{
          
    // Session existiert nicht
          // Formular anzeigen

    $_SESSION ist auch nur ein Array und du kannst Schlüssel und Werte setzen in mehreren Dimensionen wie du möchtest.
     
    Die Schweine von heute sind unsere Schnitzel von morgen!

  8. #8
    Avatar von 123123123
    123123123 123123123 ist offline Mitglied Gold
    Registriert seit
    Aug 2011
    Beiträge
    177
    Hier taucht immer ein Problem auf:
    immer wenn ich mich falsch einlogge dann kommt diese Meldung:
    Code :
    1
    
    Warning: Unknown: Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively in Unknown on line 0"
     

  9. #9
    Avatar von Maniac
    Maniac Maniac ist offline Mitglied Smaragd
    Registriert seit
    Apr 2007
    Ort
    Augsburg/Gersthofen (Bayern)
    Beiträge
    1.204
    Zeig doch mal deinen jetzigen Stand des Scriptes.
    Welche PHP-Version verwendest du?
     
    Die Schweine von heute sind unsere Schnitzel von morgen!

  10. #10
    Avatar von 123123123
    123123123 123123123 ist offline Mitglied Gold
    Registriert seit
    Aug 2011
    Beiträge
    177
    also mein code:
    PHP-Code:
    if($user && $user[0]['user_login']) {
        
    $_SESSION['user'] = $user[0]['user_login'];
            } else {
            echo 
    "Login fehlgeschlagen ";
        } 
    if (
    $_SESSION['user'] = $user[0]['user_login']) {
        
    header('Location: http://localhost/cms-systeme/index1.php');
        } 
    Ich habe die Version: PHP Version 5.3.5
     

  11. #11
    Avatar von saftmeister
    saftmeister saftmeister ist offline Der Saft sei mit dir
    tutorials.de Premium-User
    Registriert seit
    May 2006
    Ort
    There is no place like 127.0.0.1
    Beiträge
    3.521
    Achtung! Eine Prüfung wird mit Doppelgleichzeichen durchgeführt. Was du machst, ist eine Zuweisung! Siehe dieses Beispiel:

    Code php:
    1
    
    if ($_SESSION['user'] == $user[0]['user_login']) {
     
    Grüße
    --
    Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)

  12. #12
    Avatar von Maniac
    Maniac Maniac ist offline Mitglied Smaragd
    Registriert seit
    Apr 2007
    Ort
    Augsburg/Gersthofen (Bayern)
    Beiträge
    1.204
    PHP-Code:
    if ($_SESSION['user'] = $user[0]['user_login']) { 
    weist der Sessionvariablen einen wert zu.
    Ein Vergleich wird mit doppelten Gleichheitszeichen gemacht.
     
    Die Schweine von heute sind unsere Schnitzel von morgen!

  13. #13
    Avatar von 123123123
    123123123 123123123 ist offline Mitglied Gold
    Registriert seit
    Aug 2011
    Beiträge
    177
    Cool, alle beide auf die gleiche Minute geantwortet!
    Da kommt aber trotzdem diese Notiz:
    Code :
    1
    
    Notice: Undefined offset: 0 in C:\xampp\htdocs\cms-systeme\index.php on line 16
    In der Zeile 16 befindet sich dieser Code:
    PHP-Code:
    if ($_SESSION['user'] == $user[0]['user_login']) { 
     

  14. #14
    Avatar von saftmeister
    saftmeister saftmeister ist offline Der Saft sei mit dir
    tutorials.de Premium-User
    Registriert seit
    May 2006
    Ort
    There is no place like 127.0.0.1
    Beiträge
    3.521
    Mach mal vor dieser Zeile:

    Code php:
    1
    
    var_dump($user);
     
    Grüße
    --
    Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)

  15. #15
    Avatar von 123123123
    123123123 123123123 ist offline Mitglied Gold
    Registriert seit
    Aug 2011
    Beiträge
    177
    habe ich, da kommt sowas raus:
    Code :
    1
    
    array(0) { }
    und die selbe Notiz wie oben!
     

Ähnliche Themen

  1. Antworten: 2
    Letzter Beitrag: 20.10.09, 12:35
  2. Antworten: 8
    Letzter Beitrag: 29.01.09, 01:38
  3. Problem mit session
    Von tz_08 im Forum PHP
    Antworten: 4
    Letzter Beitrag: 02.12.07, 20:52
  4. Session Problem
    Von BigDundee im Forum PHP
    Antworten: 6
    Letzter Beitrag: 11.01.05, 14:01
  5. session problem
    Von Guido im Forum PHP
    Antworten: 3
    Letzter Beitrag: 23.09.02, 20:43