SESSION - Problem

123123123

Erfahrenes Mitglied
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:
<?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! :)
 
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:
<?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'];
 
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' ? :)
 
Richtig, im Falle von
Code:
echo "Login erfolgreich";
solltest du statt dessen mit
Code:
header('Location: ....');
arbeiten. Bei den Punkten kannst du die URL eintragen, zu der umgeleitet werden soll.
 
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.
 
Wie gehts das, wenn ich fragen darf?
Hab so angefangen:
PHP:
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 :)
 
Zuletzt bearbeitet:
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:
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.
 
Hier taucht immer ein Problem auf:
immer wenn ich mich falsch einlogge dann kommt diese Meldung:
Code:
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"
 
also mein code:
PHP:
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
 
Zurück