mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Di 06.12.2016 21:12 Benutzername: Passwort: Auto-Login

Thema: [PHP] Login mit PHP und Weiterleitung in geschützten Bereich vom 30.08.2005


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> [PHP] Login mit PHP und Weiterleitung in geschützten Bereich
Seite: 1, 2  Weiter
Autor Nachricht
Tobi
Threadersteller

Dabei seit: 13.10.2004
Ort: -
Alter: 30
Geschlecht: Männlich
Verfasst Di 30.08.2005 17:00
Titel

[PHP] Login mit PHP und Weiterleitung in geschützten Bereich

Antworten mit Zitat Zum Seitenanfang

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?
  View user's profile Private Nachricht senden
beeviZ

Dabei seit: 30.09.2002
Ort: Dortmund
Alter: 23
Geschlecht: Männlich
Verfasst Di 30.08.2005 17:27
Titel

Antworten mit Zitat Zum Seitenanfang

nachm login
Code:
$_SESSION['loggedin'] = true;

im loginbereich
Code:
if($_SESSION['loggedin'] == true) {

} else {
echo "Keine Rechte";
}
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Anzeige
Anzeige
way2hot

Dabei seit: 14.03.2004
Ort: Jüchen-Gierath
Alter: 34
Geschlecht: Männlich
Verfasst Di 30.08.2005 20:03
Titel

Antworten mit Zitat Zum Seitenanfang

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! Lächel
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Sarky

Dabei seit: 29.06.2002
Ort: Düsseldorf
Alter: 34
Geschlecht: Männlich
Verfasst Mi 31.08.2005 08:20
Titel

Antworten mit Zitat Zum Seitenanfang

Zur Ergänzung:
http://www.dclpfaq.de/ch/ch-version4_session.html
  View user's profile Private Nachricht senden
Tobi
Threadersteller

Dabei seit: 13.10.2004
Ort: -
Alter: 30
Geschlecht: Männlich
Verfasst Do 01.09.2005 13:58
Titel

Antworten mit Zitat Zum Seitenanfang

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! Lächel


Funktioniert leider nicht...
Wenn ich die Datei direkt aufrufe, kann ich trotzdem drauf zugreifen *Schnief*


Zuletzt bearbeitet von Tobi am Do 01.09.2005 14:09, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
rob

Dabei seit: 11.12.2003
Ort: ~/
Alter: 39
Geschlecht: Männlich
Verfasst Do 01.09.2005 14:17
Titel

Antworten mit Zitat Zum Seitenanfang

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
  View user's profile Private Nachricht senden
Tobi
Threadersteller

Dabei seit: 13.10.2004
Ort: -
Alter: 30
Geschlecht: Männlich
Verfasst Do 01.09.2005 14:53
Titel

Antworten mit Zitat Zum Seitenanfang

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! Lächel

//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!!! *Thumbs up!* *Thumbs up!*


Zuletzt bearbeitet von Tobi am Do 01.09.2005 15:10, insgesamt 2-mal bearbeitet
  View user's profile Private Nachricht senden
rob

Dabei seit: 11.12.2003
Ort: ~/
Alter: 39
Geschlecht: Männlich
Verfasst Do 01.09.2005 15:23
Titel

Antworten mit Zitat Zum Seitenanfang

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
  View user's profile Private Nachricht senden
 
Ähnliche Themen [php] Login
PHP Login
PHP - individuelle Weiterleitung
Weiterleitung aus iFrame mit PHP
PHP-Login und htacces
PHP Login Script
Neues Thema eröffnen   Neue Antwort erstellen Seite: 1, 2  Weiter
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.