PHP/MySQL Login

Momo95

Erfahrenes Mitglied
Hallo,
ersteinmal, ein schönes Forum habt ihr und tolle tutorials =top, macht weiter so (vllt. kann ich ja auch einen Teil dazu beitragen?)

So, ich habe mit diesem Tutorial ein Login erstellt. Es funktioniert auch wunderbar. Jetzt möchte ich aber für jeden User eine eigene Weiterleitung machen. Dazu habe ich eine neu Zeile in die SQL-Tabelle eingefügt namens "Zugang" und den Wert (eine URL) eingefügt.

Wie schaffe ich es jetzt, dass die Weiterleitung in der "Login.php" diesen Wert übernimmt?

Hier der Code von der "login.php":

Code:
<?php 
// Session starten
session_start ();

// Datenbankverbindung aufbauen 
$connectionid  = mysql_connect ("******", "*******", "********"); 
if (!mysql_select_db ("DATENBANK-NAME", $connectionid)) 
{ 
  die ("Keine Verbindung zur Datenbank"); 
} 

$sql = "SELECT ". 
    "Id, Nickname, Nachname, Vorname". 
  "FROM ". 
    "benutzerdaten ". 
  "WHERE ". 
    "(Nickname like '".$_REQUEST["name"]."') AND ".  
    "(Kennwort = '".md5 ($_REQUEST["pwd"])."')"; 
$result = mysql_query ($sql); 

if (mysql_num_rows ($result) > 0) 
{ 
  // Benutzerdaten in ein Array auslesen. 
  $data = mysql_fetch_array ($result); 

  // Sessionvariablen erstellen und registrieren 
  $_SESSION["user_id"] = $data["Id"]; 
  $_SESSION["user_nickname"] = $data["Nickname"]; 
  $_SESSION["user_nachname"] = $data["Nachname"]; 
  $_SESSION["user_vorname"] = $data["Vorname"]; 



  header ("Location: index.php"); 
} 
else 
{ 
  header ("Location: ../sites/login.php?fehler=1"); 
} 
?>

Könnt IHr mir bitte helfen, dass der Wert aus der SQL in die Weiterleitung übernommen wird. Ich habe schon viel versucht, aber immer nur Fehlermeldungen erhalten.

Vielen Dank!
 
PHP:
<?php 
// Session starten
session_start ();
 
// Datenbankverbindung aufbauen 
$connectionid  = mysql_connect ("******", "*******", "********"); 
if (!mysql_select_db ("DATENBANK-NAME", $connectionid)) 
{ 
  die ("Keine Verbindung zur Datenbank"); 
} 
 
$sql = "SELECT ". 
    "Id, Nickname, Nachname, Vorname, Zugang". 
  "FROM ". 
    "benutzerdaten ". 
  "WHERE ". 
    "(Nickname like '".$_REQUEST["name"]."') AND ".  
    "(Kennwort = '".md5 ($_REQUEST["pwd"])."')"; 
$result = mysql_query ($sql); 
 
if (mysql_num_rows ($result) > 0) 
{ 
  // Benutzerdaten in ein Array auslesen. 
  $data = mysql_fetch_array ($result); 
 
  // Sessionvariablen erstellen und registrieren 
  $_SESSION["user_id"] = $data["Id"]; 
  $_SESSION["user_nickname"] = $data["Nickname"]; 
  $_SESSION["user_nachname"] = $data["Nachname"]; 
  $_SESSION["user_vorname"] = $data["Vorname"]; 
 
 
 
  header ("Location: ".$data['Zugang']); 
} 
else 
{ 
  header ("Location: ../sites/login.php?fehler=1"); 
} 
?>
 
Vielen Dank, hat geklappt!

Aber was doof ist, dass wenn ich eingeloggt bin, man über die adressleist in das andere verzeichnis wechslen kann.

Gehts es nicht, dass man nur bestimmte datein für einen Benutzer freigeben kann?
 
Zuletzt bearbeitet:
Am Anfang der Datei welche nur für registrierte Mitglieder zu erreichen sein sollte, folgendes schreiben:

PHP:
session_start();
if(isset($_SESSION['userid'])){
/* restlichen seitencode hier rein */
} else {
     echo "Dieser Bereich ist nur für Registrierte Mitglieder zugänglich!";
}
 
ich habe das jetzt so gemacht:

Code:
<?php
	session_start();

	if(!isset($_SESSION["user_id"])) {
		header ("Location: ../sites/login.php");
	}
	else {
		$arr = array("Admin");
		if(in_array($_SESSION["user_nickname"], $arr)) {
			header("Location: ../sites/login.php");
		}
	}
?>

Gibt es nicht die möglichkeit, ein echo anzeigen zulassen und dann nach 5 sek. erst die weiterleitung auszuführen?
 
PHP:
<?php
    session_start();
 
    if(!isset($_SESSION["user_id"])) {
        echo "blubb";
        sleep(5);
        header ("Location: ../sites/login.php");
    }
    else {
        $arr = array("Admin");
        if(in_array($_SESSION["user_nickname"], $arr)) {
            header("Location: ../sites/login.php");
        }
    }
?>
 
Hab grad gemerkt das es mit echo und sleep nicht funktioniert.
Wie gibt man einen JS-History-back in PHP aus? Wie gibt man den in PHP was aus?
echo?
PHP:
echo '<a href="javascript:history.back();">zurück</a>';
 
Das geht nicht mit PHP, sondern dafür eine JS-funktion schreiben oder per header in PHP
Javascript:
window.location.href = "http://link.tld";

Edit: usleep() und flush() für die ausgabe und weiterleitung nach 5 sec.
PHP:
echo "blubb";
flush ();

usleep ( 5000000 );

header("Location: .....");
 
Zuletzt bearbeitet:
Zurück