mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: So 04.12.2016 23:54 Benutzername: Passwort: Auto-Login

Thema: login mit mehreren User vom 14.08.2006


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> login mit mehreren User
Seite: 1, 2  Weiter
Autor Nachricht
lyco
Threadersteller

Dabei seit: 14.08.2006
Ort: -
Alter: -
Geschlecht: -
Verfasst Mo 14.08.2006 07:20
Titel

login mit mehreren User

Antworten mit Zitat Zum Seitenanfang

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
  View user's profile Private Nachricht senden
taste of ink

Dabei seit: 14.06.2005
Ort: Hamburg
Alter: 32
Geschlecht: Männlich
Verfasst Mo 14.08.2006 07:41
Titel

Antworten mit Zitat Zum Seitenanfang

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
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Anzeige
Anzeige
tommy-p

Dabei seit: 21.01.2004
Ort: Cottbus
Alter: 31
Geschlecht: Männlich
Verfasst Mo 14.08.2006 07:46
Titel

Antworten mit Zitat Zum Seitenanfang

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
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
lyco
Threadersteller

Dabei seit: 14.08.2006
Ort: -
Alter: -
Geschlecht: -
Verfasst Mo 14.08.2006 09:59
Titel

Antworten mit Zitat Zum Seitenanfang

hallo tommy-p
danke für deine vorschläge nur leider kann ich mich jetzt gar nicht mehr einglogen.
  View user's profile Private Nachricht senden
tommy-p

Dabei seit: 21.01.2004
Ort: Cottbus
Alter: 31
Geschlecht: Männlich
Verfasst Mo 14.08.2006 10:05
Titel

Antworten mit Zitat Zum Seitenanfang

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.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
lyco
Threadersteller

Dabei seit: 14.08.2006
Ort: -
Alter: -
Geschlecht: -
Verfasst Mo 14.08.2006 10:20
Titel

Antworten mit Zitat Zum Seitenanfang

kann mich leider immer noch nicht einlogen
  View user's profile Private Nachricht senden
lyco
Threadersteller

Dabei seit: 14.08.2006
Ort: -
Alter: -
Geschlecht: -
Verfasst Mo 14.08.2006 10:33
Titel

Antworten mit Zitat Zum Seitenanfang

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

Dabei seit: 21.01.2004
Ort: Cottbus
Alter: 31
Geschlecht: Männlich
Verfasst Mo 14.08.2006 10:39
Titel

Antworten mit Zitat Zum Seitenanfang

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.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
 
Ähnliche Themen Web-Galerie mit mehreren Kategorien für den Normal-User
[Suche] Login-Skript Versch.User > versch. Seiten?
Login über DB funktioniert nicht...
login funktioniert im FF aber im IE nicht?
Login Script
[php] Login
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.