Door
- Rob -
op 13-12-2016 16:00
gewijzigd op 13-12-2016 16:03
1.293 views
Hallo,
Ik wil graag voor iedere gebruiker een eigen profiel-pagina die iedereen kan zien (Er zit geen gevoelige informatie in). Dus dat de gebruiker 'Luuk' zijn eigen profiel krijgt met de link www.JOUWDOMEIN.nl/profiel/Luuk en dan bij de gebruiker 'Rob' dat die de link www.JOUWDOMEIN.nl/profiel/Rob krijgt met zijn informatie en dit dus bij elke gebruiker die in de database staat. Dus netzo als bij deze website, dat iedere gebruiker een eigen profiel heeft met een eigen url. Enig idee hoe dit moet? Bedankt!
Als eerste staan de gebruikersnamen in de linkjes die je als voorbeeld toont. We noemen die data in de url's ook wel slugs.
Slugs moeten uniek zijn. Dat wil zeggen dat er geen twee keer een slug 'rob' mag voorkomen. Want stel dat je twee gebruikers hebt die beiden de username Rob hebben dan weten we niet meer welke Rob we bedoelen met http://www.jouwdomein.nl/profiel/rob.
Het beste kun je een kolom met de naam 'slug' toevoegen aan je tabel 'users' en maakt die unique. Vervolgens moet je dan natuurlijk wel telkens de slug kolom automatisch bij werken. Om deze bij te werken pak je dan de username en maak je die url proof.
In url's mogen namelijk maar een beperkt aantal karakters gebruikt worden. Hier op stackoverflow vindt je een handige functie om namen om te buigen naar slugs.
Ik zou de slugs en ook de hele url altijd lowercase laten.
Als eerste staan de gebruikersnamen in de linkjes die je als voorbeeld toont. We noemen die data in de url's ook wel slugs.
Slugs moeten uniek zijn. Dat wil zeggen dat er geen twee keer een slug 'rob' mag voorkomen. Want stel dat je twee gebruikers hebt die beiden de username Rob hebben dan weten we niet meer welke Rob we bedoelen met http://www.jouwdomein.nl/profiel/rob.
Het beste kun je een kolom met de naam 'slug' toevoegen aan je tabel 'users' en maakt die unique. Vervolgens moet je dan natuurlijk wel telkens de slug kolom automatisch bij werken. Om deze bij te werken pak je dan de username en maak je die url proof.
In url's mogen namelijk maar een beperkt aantal karakters gebruikt worden. Hier op stackoverflow vindt je een handige functie om namen om te buigen naar slugs.
Ik zou de slugs en ook de hele url altijd lowercase laten.
Je kunt nu in je profiel.php bestand de slug uitlezen door het volgende te doen:
<?php
if(!isset($_GET['slug'])) {
// geen slug? dan een foutmelding of een redirect
}
$slug = $_GET['slug'];
$query = "SELECT * FROM users WHERE slug='" . $slug . "'";
// etc
?>
Bedankt voor deze reactie! Ik hoef niet perse een slug te gebruiken aangezien er maar 1 gebruikersnaam kan zijn met die specifieke naam. Maar zeer handig!