Nach Login eine html-Datei mit "readfile" auslesen

Wenn der Login erfolgreich war, dann wird amn im obrigen Code auf die "../admin/index.php" weitergeleitet.
In der index.php könntest Du dann die entsprechende Seite auslesen.
Da Du die User ja selbst anlegst, mach einfach eine 3. Spalte in der Tabelle (kannst Du mit phpMyAdmin hinzufügen). Die nennst Du dann "seite", Typ "varchar", Länge "255".
Und da trägst Du den Namen der Seite ein, auf die der User zugreifen darf.
In der "../admin/index.php" machst Du dann folgendes:
PHP:
<?php 
$dbconnect = mysql_connect("localhost", "XXXXX", "XXXXXX"); //Hier den Benutzer und das Passwort für den Datenbankzugriff rein 
mysql_select_db("XXXXXXXX"); //Hier den Datenbankennamen rein 
$sql_befehl = "SELECT `seite` FROM `login` where `name`='".$_POST["nutzer"]."'"; 
$ergebnis = mysql_query($sql_befehl, $dbconnect); 
while($satz = mysql_fetch_row($ergebnis)) 
{ 
  readfile($satz[0]);
}?>
Und in der login.php änderst Du include("../admin/index.php"); in include("../admin/index.php?nutzer=".$_POST["nutzer"].""); um.

redlama
 
Hey! Danke für das ausführliche Posting...
Leider erscheint aber folgende Fehlermeldung:


Warning: main(): Unable to access ../admin/index.php?nutzer=altox in /var/www/web3/html/001-27-altox-04-05/pages/admin.php on line 14

Warning: main(../admin/index.php?nutzer=altox): failed to open stream: No such file or directory in /var/www/web3/html/001-27-altox-04-05/pages/admin.php on line 14

Warning: main(): Failed opening '../admin/index.php?nutzer=altox' for inclusion (include_path='.') in /var/www/web3/html/001-27-altox-04-05/pages/admin.php on line 14


"Line14" ist die include-Zeile
 
Hm, das klingt, als könne man bei include() keine Parameter übergeben, ... Mist!
Dann müssen wird es mal anders versuchen:login.php
PHP:
<?php 
$dbconnect = mysql_connect("localhost", "XXXXX", "XXXXXX"); //Hier den Benutzer und das Passwort für den Datenbankzugriff rein 
mysql_select_db("XXXXXXXX"); //Hier den Datenbankennamen rein 
$sql_befehl = "SELECT `name`, `pass`, `seite` FROM `login`"; 
$ergebnis = mysql_query($sql_befehl, $dbconnect); 
$treffer = ""; 
while($satz = mysql_fetch_row($ergebnis)) 
{ 
  if(($satz[0] == $_POST["nutzer"]) and ($satz[1] == $_POST["passwort"])) 
    $treffer = $satz[2]; 
} 
if($treffer != "") //Wenn der Login erfolgreich war 
{ 
  readfile($treffer); //auslesen der für den Nutzer erlaubten Datei
  exit; 
} 
else //Wenn der Login fehlgeschlagen ist 
{ 
  header("Location: wrongpass.html"); //Weiterleitung zu wrongpass.html, damit erneut eingeloggt werden kann 
  exit; 
} 
?>
Das ist aber nur ein Versuch, ich kann nicht garantieren, dass es funktioniert!

redlama
 
reptiler hat gesagt.:
Wofuer auch? Alle Variablen die im includenden Script sind koennen doch ohne weiteres auch im includeten Script genutzt werden.
Oh man, ... da hatte ich aber ein ziemliches Brett vor dem Kopf, ... :-(
Dann geht es vielleicht doch so, wie ich es dachte, nur dass es weiterhin include("../admin/index.php"); heißen muss!

redlama
 
Ja natürlich - das ist doch so gewollt!
Sonst könnte man durch den "Verlauf" alle Admin-Seite ja auch einfach ohne Passwortschutz aufrufen. Das ist das, was Sven im anderen Thread gepostet hat.
Dieses Problem müssen wir ja mit dem include lösen!
Dann müssten wir ja das includen des Admin-Bereiches schon in die Passwort-Überprüfung mit einbauen?!
 
Warum macht Ihr das readfile eigentlich ueber HTTP? Da ist klar, dass .htaccess anspricht.
Liegt das zu lesende File denn nicht auf dem gleichen Server Also warum nicht per Filesystem darauf zugreifen anstatt ueber URL?
 
Hast Du mal versucht, ob es mit dem geht, was ich um 12:31 Uhr gepostet habe?
Das liest die entsprechende Datei direkt nach dem Login ein, ohne die ../admin/index.php zu inkluden.

redlama
 
Zurück