specifieke webcontent koppelen aan user

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jack Maessen

Jack Maessen

07/11/2012 16:36:36
Quote Anchor link
Hallo,

Ik heb een vraag over een inlogscript dat ik heb.

Ik zou graag specifieke content willen koppelen een ingelogde user.
Daarbij wil ik graag een bestand aanroepen waarin de naam van de user zit.

Bijvoorbeeld: Als user "piet" is ingelogd, krijgt de user te zien: Welcome piet, you are logged in.
Hieronder moet de informatie komen die in bestand "piet.php" staat.
Als "jan" is ingelogd, moet er onder de welcome regel de informatie van jan.php komen te staan

De code voor in te loggen staat hieronder:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
/**
 * User has already logged in, so display relavent links, including
 * a link to the admin center if the user is an administrator.
 */

if($session->logged_in){
   echo "<h1>Logged In</h1>";
   echo "Welcome <b>$session->username</b>, you are logged in. <br><br>"
       ."[<a href=\"userinfo.php?user=$session->username\">My Account</a>] &nbsp;&nbsp;"
       ."[<a href=\"useredit.php\">Edit Account</a>] &nbsp;&nbsp;";
   if($session->isAdmin()){
      echo "[<a href=\"admin/index.php\">Admin Center</a>] &nbsp;&nbsp;";
   }

   echo "[<a href=\"process.php\">Logout</a>]";
}

else{
?>


Hoe kan ik nu realiseren dat "piet" de informatie van bestand piet.php krijgt te zien, "jan" de info van jan.php etc...
Ik heb niet zoveel verstand van php code, maar kan iemand mij hierbij helpen/

alv bedankt,

jack
 
PHP hulp

PHP hulp

22/11/2024 00:19:01
 
Yanick  vB

Yanick vB

07/11/2012 16:40:07
Quote Anchor link
Ik begrijp niet helemaal jouw vraag maar ik denk zoiets en het is zeker niet efficient om het op deze manier te doen.

PHP Include: http://php.net/manual/en/function.include.php

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
    if ($naam == "piet")
        include("piet.php");
    elseif ($naam == "jan")
        include("jan.php");
    elseif ($naam == "gijs")
        include("gijs.php");
    else
        include("standaard.php");
?>
Gewijzigd op 07/11/2012 16:42:41 door Yanick vB
 
John D

John D

07/11/2012 16:40:45
Quote Anchor link
Niet doen, geen bestanden jan, piet, kees, klaas en nog een paar honderd namen als bestanden aan gaan maken op je server. Niet doen, is fout. Informatie op id in de database zetten en bij inloggen ophalen en presenteren.
Gewijzigd op 07/11/2012 16:42:48 door John D
 
Yanick  vB

Yanick vB

07/11/2012 16:45:59
Quote Anchor link
Tjah, het is zeker niet efficiënt maar misschien houdt hij het maar bij 2 gebruikers en heeft geen beschikking over een database?
 
Jack Maessen

Jack Maessen

07/11/2012 16:58:00
Quote Anchor link
Wat info vooraf nav mijn vraag: ik heb een filemanagement systeem waarin gebruikers bestanden kunnen uploaden, downloaden, verplaatsen, renamen etc.
Maar dit script is niet middels een inlog afgeschermd.
Ik ben daarom min of meer verplicht om elke user een eigen map te geven waarin het script draait, aangeroepen door bestand: index.php
Dus in mijn webroot: root/jan/index.php
root/piet/index.php
root/kees/index.php

Dit is voor mij makkelijk om voor ieder de bestanden te beheren die ik voor download ter beschikking stel
het enige is dat het afgeschermd moet worden middels een inlogsessie.
Uiteraard kan ik voor ieder in elke map het inlogscript zetten, maar het inlogscript gebruikt een database en "jan" kan met zijn inloggegevens in de map van kees de bestanden van kies zien, ervan uitgaande dat jan weet dat kees ook een map heeft die bereikbaar is.

Dus wat ik zelf als een oplossing zie is dat de variabele username gekoppeld wordt aan (zoiets als $user roept bestand $user.php aan)

Toevoeging op 07/11/2012 17:00:37:

Wat info vooraf nav mijn vraag: ik heb een filemanagement systeem waarin gebruikers bestanden kunnen uploaden, downloaden, verplaatsen, renamen etc.
Maar dit script is niet middels een inlog afgeschermd.
Ik ben daarom min of meer verplicht om elke user een eigen map te geven waarin het script draait, aangeroepen door bestand: index.php
Dus in mijn webroot: root/jan/index.php
root/piet/index.php
root/kees/index.php

Dit is voor mij makkelijk om voor ieder de bestanden te beheren die ik voor download ter beschikking stel
het enige is dat het afgeschermd moet worden middels een inlogsessie.
Uiteraard kan ik voor ieder in elke map het inlogscript zetten, maar het inlogscript gebruikt een database en "jan" kan met zijn eigen inloggegevens in de map van kees ook de bestanden van kees zien, ervan uitgaande dat jan weet dat kees ook een map heeft die bereikbaar is.

Dus wat ik zelf als een oplossin zie is dat de variabele username gekoppeld wordt aan (zoiets als $user roept bestand $user.php aan)
 
John D

John D

07/11/2012 17:01:30
Quote Anchor link
Hoe veilig is dit dan verder? Ik ben jan maar ik typ in: www.jouwwebsite.nl/piet/index.php ?? Hoe voorkom je dat? Ik bouw snel even een generatortje in unix/linux scripting en fiets alle nederlandse namen langs.....
 
Jack Maessen

Jack Maessen

07/11/2012 17:08:13
Quote Anchor link
ja dat is net het probleem waar ik dus ook achter kwam, maar als ik "index.php" in elke map vervang door bijvoorbeeld: "fg$68#gdter@jk*iu.php" is het al een stuk veiliger
Wat zijn anders nog veilige oplossingen? Het filemanagement moet afgeschermd worden...dat is zeker...
 
John D

John D

07/11/2012 17:13:47
Quote Anchor link
misschien vind je hier een goed php script inclusief beveiliging: http://www.osfilemanager.com/ anders zelf even googlen op file manager safe oid
 
Jack Maessen

Jack Maessen

12/11/2012 13:00:16
Quote Anchor link
Ik heb de volgende oplossing gevonden voor mijn probleem

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
$pagina = $session->username.".php";
include $pagina;

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
if($session->logged_in){

   echo "<h1></h1>";
       echo "<h4>Welcome <b>$session->username</b>, you are logged in.</h4> <br><br>"
           ."<a href=\"index.php\">Home</a> &nbsp;&nbsp;"
       ."<a href=\"userinfo.php?user=$session->username\">My Account</a> &nbsp;&nbsp;"
       ."<a href=\"useredit.php\">Edit Account</a> &nbsp;&nbsp;";
            
            
        if($session->isAdmin()){
      echo "<a href=\"admin/index.php\">Admin Center</a> &nbsp;&nbsp;";
   }
   echo "<a href=\"process.php\">Logout</a>";
    
    
    
    
   $pagina = $session->username.".php";
include $pagina;

}


else{
/*--- Toon de inlogform---*/
?>





Alleen efficient is het niet. Je moet nu voor elke user een bestand "username.php" aanmaken.
Gewijzigd op 12/11/2012 13:03:08 door Jack Maessen
 
Chris PHP

Chris PHP

12/11/2012 13:05:20
Quote Anchor link
Waarom gebruik je niet gewoon een database?

Wat voor persoonsgebonden informatie moet daar komen dan? Nu moet je idd voor elke gebruiker een 'pagina' maken. Maar anders maak je gewoon een landingpage bijvoorbeeld user.php.

En aan de hand van de database gegevens vul je die met de gebruikers specifieke gegevens.
 
Jack Maessen

Jack Maessen

12/11/2012 13:07:04
Quote Anchor link
als dat kan: prima, maar ik ben een leek in php en zou niet weten hoe ik dat moet doen
Het inlogscript maakt gebruik van een database waarin alle members staan met username , password en emailadres
Gewijzigd op 12/11/2012 13:09:57 door Jack Maessen
 
Chris PHP

Chris PHP

12/11/2012 13:10:46
Quote Anchor link
Dan raad ik je aan om PHP te leren, wanneer je efficient een website met profielen wilt maken/runnen.

Anders kom je al snel uit op de wijze die je nu hebt, een pagina met 'statische' informatie.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.