Autor |
Nachricht |
Tobi
Threadersteller
Dabei seit: 13.10.2004
Ort: -
Alter: 37
Geschlecht:
|
Verfasst Di 30.08.2005 17:00
Titel [PHP] Login mit PHP und Weiterleitung in geschützten Bereich |
|
|
Ich habe einen Login geschrieben, bei dem man ganz normal, mit richtigem Username und dazugehörigen Passwort in einen Bereich kommt.
Nun möchte ich aber, dass man diesen Bereich nicht durch einfaches Aufrufen in der URL-Zeile erreichen kann, sondern nur, wenn man sich eingeloggt hat.
Das Prinzip ist mir klar, aber wie kann ich das realisieren?
|
|
|
|
|
beeviZ
Dabei seit: 30.09.2002
Ort: -
Alter: -
Geschlecht:
|
Verfasst Di 30.08.2005 17:27
Titel
|
|
|
nachm login Code: | $_SESSION['loggedin'] = true; |
im loginbereich
Code: | if($_SESSION['loggedin'] == true) {
} else {
echo "Keine Rechte";
} |
|
|
|
|
|
Anzeige
|
|
|
way2hot
Dabei seit: 14.03.2004
Ort: Jüchen-Gierath
Alter: 41
Geschlecht:
|
Verfasst Di 30.08.2005 20:03
Titel
|
|
|
beeviZ hat geschrieben: | nachm login Code: | $_SESSION['loggedin'] = true; |
im loginbereich
Code: | if($_SESSION['loggedin'] == true) {
} else {
echo "Keine Rechte";
} |
|
Sprich: Bei allen Seiten, welche im internen Bereich der Seite liegen und auch da liegen sollen, setzt du gleich am Anfang des Codes die Abfrage, ob ein Login erfolgreich vollzogen wurde. Stichwort ist hier "Session". Viel Erfolg!
|
|
|
|
|
Sarky
Dabei seit: 29.06.2002
Ort: Düsseldorf
Alter: 42
Geschlecht:
|
|
|
|
|
Tobi
Threadersteller
Dabei seit: 13.10.2004
Ort: -
Alter: 37
Geschlecht:
|
Verfasst Do 01.09.2005 13:58
Titel
|
|
|
way2hot.de hat geschrieben: | beeviZ hat geschrieben: | nachm login Code: | $_SESSION['loggedin'] = true; |
im loginbereich
Code: | if($_SESSION['loggedin'] == true) {
} else {
echo "Keine Rechte";
} |
|
Sprich: Bei allen Seiten, welche im internen Bereich der Seite liegen und auch da liegen sollen, setzt du gleich am Anfang des Codes die Abfrage, ob ein Login erfolgreich vollzogen wurde. Stichwort ist hier "Session". Viel Erfolg! |
Funktioniert leider nicht...
Wenn ich die Datei direkt aufrufe, kann ich trotzdem drauf zugreifen
Zuletzt bearbeitet von Tobi am Do 01.09.2005 14:09, insgesamt 1-mal bearbeitet
|
|
|
|
|
rob
Dabei seit: 11.12.2003
Ort: ~/
Alter: 46
Geschlecht:
|
Verfasst Do 01.09.2005 14:17
Titel
|
|
|
Cookies können bei dir aber gesetzt werden?
und die Sessiondatei wird auf dem Server geschrieben?
Zeig doch mal was von deinem Code. Sonst kann ja niemand wissen, wo das Problem liegen könnte.
EDIT: Die Session startest Du aber schon, ja..?
Und das auch als erstes in deinem Script, bevor Code an den Client gesendet wird..?
Zuletzt bearbeitet von rob am Do 01.09.2005 14:19, insgesamt 1-mal bearbeitet
|
|
|
|
|
Tobi
Threadersteller
Dabei seit: 13.10.2004
Ort: -
Alter: 37
Geschlecht:
|
Verfasst Do 01.09.2005 14:53
Titel
|
|
|
Also dies ist meine login.php, an die die Eingabe aus einem Formular geschickt wird:
Code: |
<?php
//Session wird gestartet
session_start();
//Session ID wird in Variable gespeichert
$xid = session_id();
//Eingabe aus der Form wird gespeichert
$username = $_REQUEST[username];
$passwort = $_REQUEST[passwort];
//Login Bestätigungen
$positiv = "Erfolgreich eingeloggt!<br><br><a href='temp.php?xid=".$xid."'>Weiter zum Login!</a>";
$negativ = "Login falsch!<br><br><a href='login.htm' target='_self'>Zurück</a>";
//user.php wird included
include ("user.php");
//if-Abfrage ob jeweiliger Username und Passwort mit user.php übereinstimmt
if ($username == "$username1" && $passwort == "$passwort1") {
session_register ("$username","$passwort");
echo "$positiv";
} else {
if ($username == "$username2" && $passwort == "$passwort2") {
session_register ("$username","$passwort");
echo "$positiv";
} else {
if ($username == "$username3" && $passwort == "$passwort3") {
session_register ("$username","$passwort");
echo "$positiv";
} else {
if ($username == "$username4" && $passwort == "$passwort4") {
session_register ("$username","$passwort");
echo "$positiv";
} else {
echo "$negativ";
}
}
}
}
?>
|
Dann, wenn der Login korrekt ist, wird zu dieser Seite weitergeleitet, temp.php (momentan nur zum testen):
Code: |
<?php
//Session wird gestartet
session_start();
if (session_is_registered('session_id') == false) {
echo "Session existiert!";
} else {
echo "Nicht eingeloggt!";
}
?>
|
Was ich jetzt nicht ganz verstehe ist, warum ich in der temp.php bei der if-Abfrage hinten "false" angeben muss.
Übersetzt bedeutet das doch, wenn Session registriert ist, dann gehts weiter. Wenn nicht, nicht eingeloggt.
Deswegen müsste doch eigentlich "true" richtig sein... Bei "true" kommt "Nicht eingeloggt!"...
Aber man kann trotzdem direkt auf die "temp.php" zugreifen...
Hilfe!
//EDIT:
Ich habs hinbekommen!!
So sieht nun meine temp.php aus:
Code: |
<?php
//Session wird gestartet
session_start();
if ($xid == true) {
echo "Session existiert!";
} else {
echo "Nicht eingeloggt!";
}
?>
|
Vielen Dank für eure Hilfe!!!
Zuletzt bearbeitet von Tobi am Do 01.09.2005 15:10, insgesamt 2-mal bearbeitet
|
|
|
|
|
rob
Dabei seit: 11.12.2003
Ort: ~/
Alter: 46
Geschlecht:
|
Verfasst Do 01.09.2005 15:23
Titel
|
|
|
Hab's mir gar nicht so genau angesehen... Mir springt aber gleich was ins Auge: session_register().
Schätzungsweise liegt es daran. Da fehlt vermutlich die Unterstützung auf deinem Server. Du verwendest veraltete Syntax bzw. veraltete Funktionen.
Arbeite mit dem Array $_SESSION.
$_SESSION['username'] = $_REQUEST['username'];
(sieht aber auch noch nicht wikrlich schön aus. Lieber mit $_POST oder $_GET arbeiten, wenn Du weißt, wo die Variablen herkommen.)
hmm, was sonst noch..?
Schreib $_REQUEST['username'] statt $_REQUEST[username]. In deinem Script geht es scheinbar zwar gut, aber wenn das error_reporting höher gestellt wird, dann gibt's ein warning, weil hier eigentlich eine nicht-definierte Konstante benutzt wird.
Ob sonst noch was falsch ist, kann ich nicht sagen. Muß jetzt weg. Wenn bis morgen keiner mehr geantwortet hat, schau ich mir das nochmal genauer an.
Gruß, rob
|
|
|
|
|
|
|
|
Ähnliche Themen |
Login - Weiterleitung Scriptfehler
Login und weiterleitung auf individuelle startseite
login-bereich schützen
einfacher Login Bereich
Typo3 und individueller Login-Bereich
Login Bereich/ Newsletter/ SMS Benachrichtigung
|
|