| Autor |
Nachricht |
Tobi
Dabei seit: 13.10.2004
Ort: -
Alter: 22
Geschlecht:
|
Verfasst Di 30.08.2005 18: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: Dortmund
Alter: 16
Geschlecht:
|
Verfasst Di 30.08.2005 18:27
Titel
|
 |
|
nachm login | Code: | | $_SESSION['loggedin'] = true; |
im loginbereich
| Code: | if($_SESSION['loggedin'] == true) {
} else {
echo "Keine Rechte";
} |
|
|
| |
|
 |
way2hot.de
Dabei seit: 14.03.2004
Ort: Jüchen-Gierath
Alter: 26
Geschlecht:
|
Verfasst Di 30.08.2005 21: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
Moderator
Dabei seit: 29.06.2002
Ort: Stuttgart
Alter: 26
Geschlecht:
|
|
| |
|
 |
Tobi
Dabei seit: 13.10.2004
Ort: -
Alter: 22
Geschlecht:
|
Verfasst Do 01.09.2005 14: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 15:09, insgesamt 1-mal bearbeitet
|
|
| |
|
 |
rob
Dabei seit: 11.12.2003
Ort: ~/
Alter: 31
Geschlecht:
|
Verfasst Do 01.09.2005 15: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 15:19, insgesamt 1-mal bearbeitet
|
|
| |
|
 |
Tobi
Dabei seit: 13.10.2004
Ort: -
Alter: 22
Geschlecht:
|
Verfasst Do 01.09.2005 15: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 16:10, insgesamt 2-mal bearbeitet
|
|
| |
|
 |
rob
Dabei seit: 11.12.2003
Ort: ~/
Alter: 31
Geschlecht:
|
Verfasst Do 01.09.2005 16: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 |
PHP - individuelle Weiterleitung
[php] Login
[PHP] Problem mit weiterleitung in Loginscript
PHP-Login und htacces
PHP Login Script
[PHP] Login mit Sessions
|
 |