ERLEDIGT
NEIN
NEIN
ANTWORTEN
16
16
ZUGRIFFE
367
367
EMPFEHLEN
-
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):
Würde mich über eine Antwort freuen!!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";
}
}
?>
Danke!
-
13.01.12 10:11 #2
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!
-
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' ?
-
13.01.12 10:24 #4
- Registriert seit
- May 2006
- Ort
- There is no place like 127.0.0.1
- Beiträge
- 3.521
Richtig, im Falle von
solltest du statt dessen mitCode :1
echo "Login erfolgreich";
arbeiten. Bei den Punkten kannst du die URL eintragen, zu der umgeleitet werden soll.Code :1
header('Location: ....');Grüße
--
Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)
-
13.01.12 10:25 #5
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!
-
Wie gehts das, wenn ich fragen darf?
Hab so angefangen:
Muss ich eine neue Seite erstellen oder einfach mit einem Befehl das Formular "verschwinden lassen"?PHP-Code:if ($_SESSION['user'] = $user[0]['user_login']) {
header('Location: index1.php');
}
Danke
Geändert von 123123123 (13.01.12 um 10:47 Uhr) Grund: php code geändert
-
13.01.12 10:47 #7
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:
$_SESSION ist auch nur ein Array und du kannst Schlüssel und Werte setzen in mehreren Dimensionen wie du möchtest.PHP-Code:if(isset($_SESSION['user']) && $_SESSION['user'] != ''){
// Session existiert
}else{
// Session existiert nicht
// Formular anzeigen
}
Die Schweine von heute sind unsere Schnitzel von morgen!
-
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"
-
13.01.12 10:57 #9
Zeig doch mal deinen jetzigen Stand des Scriptes.
Welche PHP-Version verwendest du?Die Schweine von heute sind unsere Schnitzel von morgen!
-
also mein code:
Ich habe die Version: PHP Version 5.3.5PHP-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');
}
-
13.01.12 11:05 #11
- 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 ;-)
-
13.01.12 11:05 #12weist der Sessionvariablen einen wert zu.PHP-Code:
if ($_SESSION['user'] = $user[0]['user_login']) {
Ein Vergleich wird mit doppelten Gleichheitszeichen gemacht.Die Schweine von heute sind unsere Schnitzel von morgen!
-
Cool, alle beide auf die gleiche Minute geantwortet!

Da kommt aber trotzdem diese Notiz:
In der Zeile 16 befindet sich dieser Code:Code :1
Notice: Undefined offset: 0 in C:\xampp\htdocs\cms-systeme\index.php on line 16
PHP-Code:if ($_SESSION['user'] == $user[0]['user_login']) {
-
13.01.12 11:21 #14
- 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 ;-)
-
habe ich, da kommt sowas raus:
und die selbe Notiz wie oben!Code :1
array(0) { }
Ähnliche Themen
-
apache->VHOST - php session problem - immer neue session id
Von bjt im Forum Hosting & WebserverAntworten: 2Letzter Beitrag: 20.10.09, 12:35 -
Session Problem? Session startet nicht!?
Von Kumaro im Forum PHPAntworten: 8Letzter Beitrag: 29.01.09, 01:38 -
Problem mit session
Von tz_08 im Forum PHPAntworten: 4Letzter Beitrag: 02.12.07, 20:52 -
Session Problem
Von BigDundee im Forum PHPAntworten: 6Letzter Beitrag: 11.01.05, 14:01 -
session problem
Von Guido im Forum PHPAntworten: 3Letzter Beitrag: 23.09.02, 20:43





Zitieren


Login






[PHP][Snippet] Array zu XML konvertieren