Antworten auf deine Fragen:
Neues Thema erstellen

PHP LOGIN SESSION

JoLe05

Nicht mehr ganz neu hier

Hallo Leute!

Ich habe folgendes Problem, ich hoffe jemand kann mir den Weg weisen...

Ich habe ein kleines Tool programmiert. Mit diesem kann man sich einloggen bzw. registrieren und kommt dann mittels einer Session ID in den geschützten Bereich. Dort kann der User links Ordner auswählen und rechts die Bilder in den jeweiligen Ordnern sehen. Ich möchte jetzt jedem User der sich einloggt ein Rootverzeichnis zuweisen.
Ich weiss nur nicht wie ich die URL des Rootordners an die richtige Stelle in MySQL bringe.
Z.b: Herr Müller loggt sich ein --> dann wir ein Ordner generiert(sein rootvz) ---> dort kann er bilder hochladen... wie kann ich einen bestimmten Datensatz(den des Users) auswählen, damit ich dort das Verzeichnis noch hinzufügen kann...

Ich hoffe es ist halbwegs verständlich und hoffe auf eure Hilfe
 

lachender_engel

Aktives Mitglied

Also, ich verstehe nicht was Du willst. Einmal schreibst du von einem Root-Verzeichnis, dann wieder von MySQL.
Wie so oft: Stelle Code zur Verfügung der das Problem aufzeigt. Dann können wir sicher helfen.
 

JoLe05

Nicht mehr ganz neu hier

Der User kann sich einloggen -> er wird in die Datenbank tbl_user gespeichert mit Email, Passwort als Pflichfelder...

Er kommt dann mit einer SessionID in einen geschützten Bereich(page.php)... dort wird ein Verzeichnis erstellt wo er Bilder hochladen kann. Mein Problme ist, dass jeder User ein eigenes Verzeichnis braucht und ich weiss nicht wie ich die URL zum Verzeichnis in die Datenbank speichern kann.

Die page.php sieht zur Zeit so aus:
PHP:
<?php
require("includes/config.inc.php");
require("includes/functions.php");
require("includes/db.inc.php");
require("includes/save.php");
$connID = useDB("localhost","root","","db_3614");

//LOGOUT
logout();

?>

<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <title>Dashboard</title>
    <meta name="description" content="">
    <meta name="author" content="">
    <meta name="keywords" content="">

    <link href="css/style.css" type="text/css" rel="stylesheet">
</head>

<body>
<strong>Sie wurden erfolgreich eingeloggt....</strong>
<form name="frmLogout" id="frmLogout" method="post">
    <input type="submit" name="logout" value="ausloggen" />
</form>
<?php
//---- / ONLY FOR TESTMODE / ---
echo("<p>loggedIn=" . $_SESSION["loggedIn"] . ", session-id=" . session_id() . ", session-name=" . session_name() . "</p>");
ta($_SESSION);
ta(session_get_cookie_params());
ta($_COOKIE);
?>
<div id="left">
<?php
scandirectory("images/");
?>
</div>
<div id="right">
</div>
<?php include("upload.php"); ?>

</body>
</html>

wie genau schaffe ich es, dass ich die URL des Verzeichnisses in die Zeile vom User schreiben kann?

Es tut mir leid, aber es ist leider relativ schwer zu erklären, aber ich danke euch für eure Hilfe
 

Pixelaner

Der Pixelaner

Er möchte jedem registrierten User ein festes Upload / User-Verzeichnis zuweisen.

Generiere doch mitteld md5(username) einen eindeutigen Ordnernamen und speicher diesen zu den Benutzerinformationen in die Datenbank.

Edit:
Ok du warst schneller. Schau dir doch mal die mysql Funktionen an, die dir PHP bietet. Dort kannst du mittels query einen Datensatz updaten.
 

JoLe05

Nicht mehr ganz neu hier

@Pixelaner: genau das möchte ich... Ich habe für jeden User eine eindeutige ID... wenn ich diese auf der Seite auslesen könnte wäre es leicht dann in diese Zeile im Bereich VZurl die URL zu speichern...

wie genau komme ich im Dokument zum Usernamen(= Emailadresse und wäre unique)
 

JoLe05

Nicht mehr ganz neu hier

Einen Datensatz updaten bringt in diesem Fall ja nichts... Ich brauche eine einzigartige Verbindung zum User, damit ich das Verzeichnis mit dem Daten in der Datenbank verknüpfen kann...
 

Pixelaner

Der Pixelaner

Ja die "einzigartige" Verbindung kommt doch beim Login des Users zustande. Sobald der User sich anmeldet kannst du doch alle relevanten Daten anhand der user_id auslesen.

Mit dem update meinte ich auch eher eine nachträgliche Funktion um ein Verzeichnis anzulegen beispielsweise nach Bestätigung eines Aktivierungslinks etc.

Somit hättest du keine leeren oder nutzlosen Ordner auf dem Webspace.
 

JoLe05

Nicht mehr ganz neu hier

Ja im Grunde schon... Ich habe einmal eine ID und eine Email die beide unique sind... jedoch weiss ich nicht wie ich die Daten von login.php auf die Seite page.php mitnehme, da ich nach dem Login weiterleite....
 

JoLe05

Nicht mehr ganz neu hier

ja aber die Session ID existiert ja nur solange, solange der User die Cookies nicht löscht! Dann bekommt er eine neue Session ID...

Hier meine login.php

PHP:
<?php
//Includes
require("includes/config.inc.php");
require("includes/functions.php");
require("includes/db.inc.php");

$_SESSION["loggedIn"] = false;
$meldung ="";

if(count($_POST)>0) {
    //ta($_POST);
   
    $connID = useDB("localhost","root","","db_3614");
    $email = $_POST["Email"]; //Email from Loginform
    $pwd = $_POST["PWD"]; //Password from Loginform
    $sql= "SELECT IDuser FROM tbl_user WHERE ( Email='".es($email)."' AND PWD='".es($pwd)."' )";
    ta($sql);
    $query = setQuery($sql);
    if(mysql_num_rows($query)==1) {
        //email and password are correct --> Login
        $_SESSION["loggedIn"] = true;
        header("Location: page.php");
    } else {
        //email or password incorrect --> message
        $meldung='<p class="success">Ihre Email oder Ihr Passwort sind leider nicht korrekt</p>';
    }
}

?>

<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <title>Login</title>
    <meta name="description" content="">
    <meta name="author" content="">
    <meta name="keywords" content="">

    <link href="css/style.css" type="text/css" rel="stylesheet">
</head>

<body>
<?php echo($meldung); ?>
<form name="frm" id="frm" method="post">
    <fieldset>
    <legend>Login:</legend>
    <label for="Email">Email:</label><input type="Email" name="Email" id="Email" />
    <label for="PWD">Passwort:</label><input type="text" name="PWD" id="PWD" />
    <input type="submit" name="login" value="Log In" />
    </fieldset>
</form>

</body>
</html>
 

Pixelaner

Der Pixelaner

Ja aber wenn er das tut sollte sich das System doch automatisch ausloggen in dem auf jeder Seite abgefragt wird ob die Session Var "loggedIn" true ist.

Das ist für dein Vorhaben doch Wurst. Der User meldet sich an der Seite an. Wenn der Login korrekt war setzt du loggedIn auf true und übergibst in weiteren Session Vars die Werte die du zum ver- bzw. weiterverarbeiten benötigst.

In deinem Select Befehl kannst du doch weitere Felder mit angeben zB user_root_dir o.ä.

So hast du auf jeder weiteren Seite jeweils eine Session Var mit allem erdenklichen Stuff.
 

JoLe05

Nicht mehr ganz neu hier

Jetzt hats klick gemacht! Unglaublich wie blöd man sein kann!

PHP:
$idUser = mysql_insert_id();
$_SESSION["IDUser"] = $idUser;

Das muss ich natürlich über die Seite hinweg übergeben... Jetzt habe ich die eindeutige Id und kann einfügen...

Ich danke dir recht herzlich für deine Hilfe... Ich hätte schon früher fragen sollen, ich wusste es... Sitze schon 5 Stunden davor :-(

Vielen Vielen Dank
 

Pixelaner

Der Pixelaner

Manchmal sieht man den Wald vor lauter Bäumen nicht :)

Sehr gerne.

Viel Erfolg bei deinem weiteren Vorhaben und einen schönen Restabend wünsche ich.
 

Pixelaner

Der Pixelaner

Hi ich bins nochmal.

Grad auffer Couch kam mir noch ein Gedanken. Löse es bitte nicht über "mysql_insert_id" sondern schnapp dir die ID aus deiner select Abfrage zB über "mysql_fetch_row".

Du machst ja keinen insert sondern liest lediglich Daten aus die auf deine Where-Clause zutreffen.
 

JoLe05

Nicht mehr ganz neu hier

Hey!

Hier noch einmal die fertige Lösung...

Vom Loginformular speichere ich die ID in ein assoziatives Array mittels: mysql_fetch_assoc();
Vom Registrierungsformular hole ich die Daten mittels:
mysql_insert_id()

Ich denke das ist somit korrekt.... Ich hoffe das es vll auch mal jemanden hilft :)
 

tr4ze

Mod | Forum

Teammitglied
PSD Beta Team
Kleiner Hinweis
PHP:
$_SESSION["loggedIn"] = true;
So auf eine Session zu prüfen ist sehr gefährlich. EIn User mit dem nötigen Wisssen kann ohne Probleme den Session Cookie auslesen und manipulieren.
Ich kenne zwar dein Loginskript nicht, aber wenn du jedesmal eine Session startest bekommt ein User immer eine gültige Session ID und braucht nur noch loggedIn auf True zu setzen und hat dein System kompromitert.
Besser ist es loggedIn an die Session ID zu binden und einen Hash zu erzeugen.Der ist dann nicht mehr so einfach zu erraten.
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.614
Beiträge
1.538.351
Mitglieder
67.525
Neuestes Mitglied
mgtaucher
Oben