ERLEDIGT
NEIN
NEIN
ANTWORTEN
12
12
ZUGRIFFE
448
448
EMPFEHLEN
-
Hallo
Ich habe ein loginscript für mehre user was eigentlich ganz gut funktioniert. Es hat nur einen Fehler und zwar wenn sich ein user erfolgreich angemeldet hat wird er auf seine Seite weitergeleitet. Nun wenn er aber eine url von einem andern user kenn kann er auch auf die Seite des andern users zugreifen, wass nicht der Fall sein solte.
Kann mir da jemande helfen, da ich von php nicht sehr ahnung habe
checkuser.php
Code :1 2 3 4 5 6 7 8
<?php session_start (); if (!isset ($_SESSION["user_id"])) { header ("Location: http://www............./inside/index.php"); } ?>
login.php
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
<?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.........../inside/" . $data["Link"]); } else { header ("Location: http://www................/inside/index.php?fehler=1"); } ?>
-
In wie fern meinst du das mit, seine Seite und Seiten anderer User?
Profil ändern?Code Climbers
- Free Scripts & Codes
-
z.B. user 1 mit passwort 1 wird auf die seitt user1.php weitergeleitet
und user 2 mit passwort 2 wird auf die seite user2.php weitergeleitet.
Wenn sich jetzt user 1 erfolgreich eingelogt hat und auf die seite user1.php weitergeleitet wurde, kann er in der explorer in der Adresszeile user1.php auf user2.php ändern und kommt dann auf die seite von user 2. Das solte aber unterbunden werden.
-
12.08.06 22:19 #4
Werden die Seiten generiert ?
Sowas ist doch höchst unpraktisch bei mehreren Membern oder ?
Naja eigentlich macht man nur eine Seite z.B. für Profil und liest die Daten aus, dafür hast du ja die SESSION-VARS aber wenn du nur 2 user hast kannste ja per id abfragen ob es der richtige user is aber eigentlich sehr komischer Ansatz oder ich versteh das nicht
Visit shadowmasta
-
Bis jetzt gibt es 3 users die über das selbe script einlogen und auf 3 verschiede seiten weitergeleitet werden. Es ist aber sehr gut möglich dass noch mehr kommen. Kann man das mit den bis jetzt verwenden script korrigieren. Und demensprechend erweitern?
-
Naja ich denke das es nicht gerade optimal ist, dein System da, aber ok für eine kleine Anzahl von Usern kann man es machen.
Das fügst du dann am anfang der Seite der User ein.PHP-Code:if($_SESSION['user_id'] != $user_id) { //$user_id kann auch durch eine Zahl ersetzt werden.
header("Location: .../fehlerseite.php");
die();
}
Oder hier dann auch nochmal die Funktions Variante.
Userseite($_SESSION['user_id'], 1, fehlerseite.php);PHP-Code:function Userseite ($session_user, $id_user, $errorpage) {
if($session_user != $id_user) {
header("Location: $errorpage);
die();
} }
So sähe dann die Funktion aus.Geändert von K4ZUY4 (13.08.06 um 10:28 Uhr)
Code Climbers
- Free Scripts & Codes
-
Danke für die Lösungsvorschäge aber leider blick ich nicht durch oder es funktioniert nicht. Die User können immer noch auf die Seiten von anderen User zugreifen.
-
Anstelle von user1.php, user2.php, ... solltest Du besser eine user.php haben die anhand der UserID in der Session den entsprechenden Inhalt aus der Datenbank holt. So brauchst Du Dir dann auch keine Sorgen mehr machen, dass ein User auf die Seite eines anderen Users zugreifen kann.
PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
__________________
EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
__________________
__________________Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
Zitat von Friedrich Nietzsche
-
@Dennis Wronka
Wow das hört sich ganz gut an. Nur hab ich leider keine Ahnung wie ich dass anstellen kann. Köntest du mir da vieleicht helfen?
-
Sagen wir mal Du speicherst die UserID in $_SESSION['id'], dann fragst Du in user.php als erstes ab ob dieser Wert gesetzt ist, wenn nicht geht's zur Startseite. Ungefaehr so:
Wenn $_SESSION['id'] nicht gesetzt, oder aber gesetzt aber leer ist, wird umgeleitet zur index.php. Nachfolgender Code wird nicht mehr ausgefuehrt, dafuer sorgt exit.PHP-Code:if (empty($_SESSION['id']))
{
header('Location:index.php');
exit;
}
Alles andere nach diesem Code kann also davon ausgehen, dass $_SESSION['id'] sowohl gesetzt als auch gefuellt ist. Was dann ja heisst, dass der User eingeloggt ist.
Du kannst dann also aus der Datenbank irgendwelche Infos fuer eben diesen User holen.
Durch die Arbeit mit der UserID aus der Session stellt dabei sicher, dass wirklich nur die Informationen aus der Datenbank geholt werden die fuer den eingeloggten User bestimmt sind. Bei einer Uebergabe der UserID im URL koennte der User ja einfach die uebergebene UserID aendern. Zwar koennte man auch da was dran machen, aber wenn man gleich mit der in der Session gespeicherten UserID arbeitet wird das unnoetig.PHP-Code:$infos=mysql_query("select * from infos where userid='".$_SESSION['id']."'");
while ($info=mysql_fetch_assoc($infos))
{
//Daten ausgeben
}
PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
__________________
EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
__________________
__________________Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
Zitat von Friedrich Nietzsche
-
Danke für deine Bemuhungen, aber leider blicke ich nicht ganz durch. Ich erstelle also in der Datenbank eine neue Zeile "infos" richtig? wo ich dann der Inhalt der Seite speichere oder? Und wo muss in den von dir angegeben code speicheren?
-
Mein Code ist jetzt nur ein Beispiel wie es ungefaehr aussehen koennte, nichts was Du jetzt 1:1 kopieren sollst.
Die Userseiten sehen wahrscheinlich alle mehr oder weniger gleich aus, richtig? Und eben den variablen Content holst Du aus der Datenbank.PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
__________________
EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
__________________
__________________Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
Zitat von Friedrich Nietzsche
-
13.08.06 18:53 #13
Hallo!
Nein, offenbar verstehst Du die grundlegensten Funktionen von MySQL nicht.
Zitat von lyco
Bei "info" handelt es sich hier um einen Beispielnamen für den Tabellennamen in dem die Userinfos stehen.
Schaue Dir mal Schattenbaum an, dort bekommst Du einen Einblick in die Grundfunktionen.
Gruss Dr DauSchri-Schra-Schrödi *g*
mehrspaltiges/zeiliges Seitenlayout mit DIV's und CSS
Dinge, die mit Tabellen besser klappen als mit CSS
Ausgabe von Datum/Zeit unabhängig von der Server Zeitzone [php]
Meine Links zum Thema Linux (Last update: 29.10.2011)
Kein Busen ist so flach wie das Niveau dieser Party!
----
Alte Weisheit: wer uns in den Arsch kriecht wird beschissen!
----
Ich habe 3 Kinder und kein Geld!
Warum kann ich nicht keine Kinder haben und 3 Geld?! (Homer Jay Simpson)
Ähnliche Themen
-
Mehre MIDIs auf Webseite
Von Sir_Raven im Forum HTML & XHTMLAntworten: 2Letzter Beitrag: 12.02.10, 11:01 -
mehre QtDockWidget als tabs
Von uncle im Forum C/C++Antworten: 0Letzter Beitrag: 23.12.09, 17:46 -
Serverumzug => mehre Gigabyte
Von Shinzo im Forum Hosting & WebserverAntworten: 4Letzter Beitrag: 15.07.08, 14:30 -
letzter Login eines Users
Von Biber90 im Forum PHPAntworten: 11Letzter Beitrag: 10.04.07, 16:18 -
[VC# PDA] Mehre Forms schliessen
Von janosch im Forum .NET Windows FormsAntworten: 1Letzter Beitrag: 19.01.07, 16:31





Zitieren
Login






[PHP][Snippet] Array zu XML konvertieren