Momenteel ben ik bezig met mijn website. Alleen het lukt niet helemaal zoals ik het wil.
Ik wil een klein systeempje waarin klanten hun foto's e.d. kunnen ophalen. Het inloggen is gelukt, maar je gaat steeds naar de zelfde pagina, en dat moet natuurlijk niet :-)
Hoe kan ik ervoor zorgen dat klanten naar 'hun' persoonlijke pagina worden gelinkt ipv iedereen naar de zelfde pagina?
Groet,
Mitchell;
?Onbekende gebruiker
19-05-2015 10:10
In pseudocode:
1.) Haal gebruikersdata op uit (het liefst) een database
2.) Stop die data in een algemene template van een gebruikerspagina
Die template kan gewoon een tekstbestand zijn met HTML-opmaak, en dat je met de str_replace functie de placeholders vervangt met de data van de eindgebruiker. Dat kan je zo ingewikkeld maken als je zelf wilt. Er zijn ook standaardoplossingen voor, zoals Twig, Smarty, XSLT, maar daarin moet je je wel even verdiepen.
In pseudocode:
1.) Haal gebruikersdata op uit (het liefst) een database
2.) Stop die data in een algemene template van een gebruikerspagina
Die template kan gewoon een tekstbestand zijn met HTML-opmaak, en dat je met de str_replace functie de placeholders vervangt met de data van de eindgebruiker. Dat kan je zo ingewikkeld maken als je zelf wilt. Er zijn ook standaardoplossingen voor, zoals Twig, Smarty, XSLT, maar daarin moet je je wel even verdiepen.
Ja... Dit snap ik ook echt. De gegevens worden volgens mij al uit het database gehaald.
Vertel het gewoon niet te complex An tje. Die templates zijn gewoon een bijzaak. ;-)
Het gaat er in feite gewoon omdat je na het inloggen een webpagina ziet die je profielinformatie ophaalt uit de database.
?Onbekende gebruiker
19-05-2015 12:23
gewijzigd op 19-05-2015 12:25
Oké, maar dan is het toch niet zo moeilijk meer?
Stel je hebt een HTML pagina met daarin:
<h3>%%NAME%%</h3><p>%%PROFILE%%</p>
Dan kan je toch in PHP iets doen als:
$uname = 'Pietje'; // komt natuurlijk uit de database..
$uprof = 'Hoi ik ben Pietje, mijn hobbies zijn..'; // en dit ook
$html = file_get_contents('{bestandsnaam met evt. pad naar HTML template}');
foreach(array('%%NAME%%' => $uname, '%%PROFILE%%' => $uprof) as $k => $v) $html = str_replace($k, $v, $html);
print $html; // of echo $html, of die($html); =]
Moet iemand natuurlijk niet de tekst '%%NAME%%' of '%%PROFILE%%' in z'n naam of profiel hebben staan.
Ik ga maar ook weer eens keer helpen.
Je kan dit heel simpel oplossen.
Je zegt dat inloggen werkt, mooi dat is stap 1. Waarschijnlijk maak je daarbij ook een Sessie aan, bijvoorbeeld $_SESSION['id']. dan moet je maken op moment dat ze ingelogd zijn dat ze worden doorgestuurd naar profiel.php. Dan maak jij op profiel.php een simpele code dat je de session id pakt, dus id van die persoon die inlogde, en dan kan je met die ID doormiddel van een query en fetch_array of fetch_assoc. En dan outputte op de website precies zoals jij het wilt