| Autor |
Nachricht |
lyco
Threadersteller
Dabei seit: 14.08.2006
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Mo 14.08.2006 07:20
Titel login mit mehreren User |
 |
|
Hallo
Ich habe ein login wo sich mehrere User einlogen können und dann auf die Seite wo für den entsprechenden user vorsehen ist weitergeleitet wird. Nun hab ich ein Problem und zwar wenn sich ein User eingelogt hat und die url eines anderen User kenn kann er auch auf die Seite des anderen User zugreifen, wass nicht sein solte.
Beispiel.
User1 mit Passwort pass1 wird auf user1.php geleitet.
User2 mit passwort pass2 wird auf user2.php geleitet.
Ist nun User1 eingelogt kann er in der Adresse die endung user1.php auf user2.php ändern und gelangt so auf die Seite von User2. Das solte nicht möglich sein.
Kann mir jemand helfen, da ich von php nicht wirklich viel ahnung habe.
login.php
| Code: | <?php
// Session starten
session_start ();
// Datenbankverbindung aufbauen
$connectionid = mysql_connect ("localhost", "", "");
if (!mysql_select_db ("", $connectionid))
{
die ("Keine Verbindung zur Datenbank");
}
$sql = "SELECT ".
"Id, Nickname, Nachname, Vorname, Link, ".
"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: http://www.domaine/inside/" . $data["Link"]);
}
else
{
header ("Location: http://www.domaine/inside/index.php?fehler=1");
}
?>
|
checkuser.php
| Code: |
<?php
session_start ();
if (!isset ($_SESSION["user_id"]))
{
header ("Location: http://www.domaine/inside/index.php");
}
?>
|
Die checkuser.php wird in jede geschütze Seite mit include eingebunden
|
|
| |
|
 |
taste of ink
Dabei seit: 14.06.2005
Ort: Hamburg
Alter: 41
Geschlecht:
|
Verfasst Mo 14.08.2006 07:41
Titel
|
 |
|
Eigentlich schickt man User nach dem einloggen auf ein und dieselbe Seite. Man kann je nach User dann den Content varieren. Wenn das aber unbedingt notwendig ist must du folgendes Programmieren:
User2.php
| Code: |
if($data["Nickname"]=="XY")
{
// Dein Inhalt
}else{
echo "Sie sind nicht berechtigt diese Seite zu betreten oder so";
}
|
Und für alle anderen Seiten halt genauso.
Am besten schreibst du noch in die Datenbank der Benutzer rein welche Seite sie betreten dürfen und dann kannst du da noch etwas mehr dynamik reinbringen und kannst es leichter pflegen, falls es mehrere User bzw. mehrere Seiten sind.
Zuletzt bearbeitet von taste of ink am Mo 14.08.2006 07:47, insgesamt 1-mal bearbeitet
|
|
| |
|
 |
|
Anzeige
|
|
 |
tommy-p
Dabei seit: 21.01.2004
Ort: Cottbus
Alter: 40
Geschlecht:
|
Verfasst Mo 14.08.2006 07:46
Titel
|
 |
|
Du kannst folgendes tun:
Speichere beim Login auch die zulässige Seite des Users in einer Session:
| Code: | | $_SESSION["link"] = $data["Link"]; |
In der checkuser.php überprüfst du nur, ob die aktuell aufgerufene Seite der zulässigen Seite des Users entspricht.
| Code: | if($PHP_SELF != $_SESSION["user_id"])
{
header ("Location: http://www.domaine/inside/index.php");
} |
Zuletzt bearbeitet von tommy-p am Mo 14.08.2006 07:46, insgesamt 1-mal bearbeitet
|
|
| |
|
 |
lyco
Threadersteller
Dabei seit: 14.08.2006
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Mo 14.08.2006 09:59
Titel
|
 |
|
hallo tommy-p
danke für deine vorschläge nur leider kann ich mich jetzt gar nicht mehr einglogen.
|
|
| |
|
 |
tommy-p
Dabei seit: 21.01.2004
Ort: Cottbus
Alter: 40
Geschlecht:
|
Verfasst Mo 14.08.2006 10:05
Titel
|
 |
|
Wenn du meinen Code direkt kopoert hast, ich hatte einen Fehler drin:
| Code: | | if($PHP_SELF != $_SESSION["user_id"]) |
vergleicht die aktuelle Seite mit der User-ID. Der Vergleich muss natürlich heißen
| Code: | | if($PHP_SELF != $_SESSION["link"]) |
Wenn das noch nicht hilft, dann lass dir vor dem Vergleich mal ausgeben, was die Variable $PHP_SELF beinhaltet und was in der Session $_SESSION["link"] steht.
|
|
| |
|
 |
lyco
Threadersteller
Dabei seit: 14.08.2006
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Mo 14.08.2006 10:20
Titel
|
 |
|
|
kann mich leider immer noch nicht einlogen
|
|
| |
|
 |
lyco
Threadersteller
Dabei seit: 14.08.2006
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Mo 14.08.2006 10:33
Titel
|
 |
|
| taste of ink hat geschrieben: | Wenn das aber unbedingt notwendig ist must du folgendes Programmieren:
User2.php
| Code: |
if($data["Nickname"]=="XY")
{
// Dein Inhalt
}else{
echo "Sie sind nicht berechtigt diese Seite zu betreten oder so";
}
|
Und für alle anderen Seiten halt genauso.
Am besten schreibst du noch in die Datenbank der Benutzer rein welche Seite sie betreten dürfen und dann kannst du da noch etwas mehr dynamik reinbringen und kannst es leichter pflegen, falls es mehrere User bzw. mehrere Seiten sind. |
Dies hört sich ganz gut an aber wie muss ich da genau vorgehen? wie schon erwähnt habe leider nicht serhr viel php kentnisse
|
|
| |
|
 |
tommy-p
Dabei seit: 21.01.2004
Ort: Cottbus
Alter: 40
Geschlecht:
|
Verfasst Mo 14.08.2006 10:39
Titel
|
 |
|
Lass dir mal bitte die Variablen $PHP_SELF und $_SESSION["link"] ausgeben und schreibe uns, was denn da drin steht.
Und poste bitte nochmal deinen aktuellen Quellcode, wie er jetzt ist.
|
|
| |
|
 |
| |
|
 |
| Ähnliche Themen |
Web-Galerie mit mehreren Kategorien für den Normal-User
[Suche] Login-Skript Versch.User > versch. Seiten?
[php] Login
PHP Login
Login Script
[PHP] Login mit Sessions
|
 |