Login dans URL

15 réponses
AuteurMessage

jdelire |
Membre

Photo de jdelire

Inscrit le : 14/05/2005

# Le 07/12/2015 à 17:08

Hello,

J'ai cherché un peu sur le forum, je ne trouve pas (ou plus) de sujet existant pour ma question

Je cherche la meilleur façon de gérer les URL contenant le login des visiteurs pour un accès rapide à leurs profils
Par exemple : www.site.com/Tartempion ou "Tartempion" est le login du membre

Je pense faire ceci :
-faire une liste de mot interdit lors du choix du login (nom des pages, etc)
-un htaccess qui renvoi vers une page php générique lorsqu'il y a qu'un mot après le nom du site et rediriger vers la page correspondante

Il y a peut-être une autre solution, un htaccess qui redirige sur une page si il n'y a pas d'extension ".php" dans l'URL

Merci pour vos conseils si vous y avez déjà été confronté
Lilian

Slwo.frOuvrir dans une nouvelle fenetre

tonguide | Jeremy
Modérateur

 

Inscrit le : 09/05/2005

# Le 07/12/2015 à 17:20

Tu ne peux pas mettre un prefix ?
Du genre tonsite.com/mb-PSEUDO

comme ça, tu n'as qu'à router tous les "/mb-[regexp]" vers la page appropriée ?

jdelire | Lilian
Membre

Photo de jdelire

Inscrit le : 14/05/2005

# Le 07/12/2015 à 18:10

Hello Jeremy,

J'y ai pensé, mais je souhaite que cela soit (facilement) utilisable et communicable par les utilisateurs; à l'oral comme à l'écrit (un peu comme facebook ou twitter)

Lilian

Slwo.frOuvrir dans une nouvelle fenetre

krucial | Jean Christophe
Administrateur

Photo de krucial

Inscrit le : 09/03/2005

# Le 07/12/2015 à 18:14

membres.tonsite.com/pseudo, pas possible non plus ?

C'est quand même assez chaud sinon non ?

JC - Mes sitesOuvrir dans une nouvelle fenetre | Affiliation devis travauxOuvrir dans une nouvelle fenetre | Cotes voitures anciennesOuvrir dans une nouvelle fenetre

allogarage | Nicolas
Modérateur

Photo de allogarage

Inscrit le : 14/10/2008

# Le 07/12/2015 à 18:53

ou prendre un domaine raccourci spécialement créé pour l occasion?

Guide comparatif des garages automobilesOuvrir dans une nouvelle fenetre | Guide comparatif des garages motoOuvrir dans une nouvelle fenetre | Annuaire auto motoOuvrir dans une nouvelle fenetre

tonguide | Jeremy
Modérateur

 

Inscrit le : 09/05/2005

# Le 07/12/2015 à 18:54

Sinon, je ne sais pas comment tu gères ton routage d'url, mais si t'y tiens vraiment, je ferai comme ça :

- redirection de toutes les urls (hors fichier existant / image etc.) (tu as des règles toute faites pour ça via .htaccess, va voir du côté de symfony pour avoir un bon exemple, du moins je suppose) vers un fichier index.php.
- tu fais ton routage habituel de tes propres url en priorité
- tu fais un routage en dernier, plus global, qui accepte tous les caractères qu'accepte ton champ pseudo, et tu routes ça vers ta méthode de recherche de pseudo. Il va de soit que niveau perf, pense à bien indexer un "mot" fixe (tu feras une redirection 301, si tu veux ne pas être sensible à la casse tout en évitant de référencer 150 pages du même pseudo avec des majuscules et sans majuscule).
- evidemment, si aucun pseudo ne correspond > erreur 404

Petit bout de code, le .htaccess qui peut aller bien


RewriteEngine on
RewriteBase /

## ne doit pas etre un fichier existant
RewriteCond %{REQUEST_FILENAME} !-f
## ne doit pas etre un dossier existant
RewriteCond %{REQUEST_FILENAME} !-d
## on renvoit tous sur index.php
RewriteRule .* index.php [L]


Si tu n'as pas de système de routage, tu as celui ci qui est une bonne base https://github.com/dannyvankooten/AltoRouterOuvrir dans une nouvelle fenetre

Ce qui donnerai un truc du genre

$router->map( 'GET', '/tes-routes-habituels', function( ) {
// ton traitement
});
$router->map( 'GET', '/[NOM_DE_TON_REGEX:pseudo]', function( $pseudo ) {
// ton traitement
});

En l'occurence, si tu n'utilises pas de routage actuellement (fichier PHP en dure, avec rewrite htaccess vers ses fichiers PHP), tu peux tout gérer via ce même système de routage (et donc ne plus utiliser .htaccess), et faire simplement des "include/require" vers tes fichiers habituels. Ce qui évite de gros changement. Et à l'avenir, tu pourras décider de ne pas faire un "include" mais de lancer une méthode (un controller par exemple )

Normalement, ça t'évite des perfs pas terrible, et ça t'évite des soucis de conflit avec ton contenu à toi, qui passera en priorité quoiqu'il arrive.

MichaelL | Michael
Membre

Photo de MichaelL

Inscrit le : 29/01/2009

# Le 07/12/2015 à 19:01

J'allais proposer la même chose que Tonguide : vérifier si l'identifiant de la page correspond à une des pages du site, autrement tenter d'afficher la page du membre.

Par contre je ne vois pas en quoi c'est un souci de se retrouver avec www.example.com/LesNazisSontVosAmis . Du moins temporairement hein, le temps que ça se fasse détecter ou dénoncer par les membres. Les CGU du site précisent que les utilisateurs sont responsables du contenu qu'ils créent et les visiteurs ne sont pas trop stupides pour croire que c'est l'éditeur du site qui a créé ça.

tonguide | Jeremy
Modérateur

 

Inscrit le : 09/05/2005

# Le 07/12/2015 à 19:15

D'ailleurs, je suis bete, si tu utilises les rewrites via htaccess et fichier en dure sans routage, tu peux tout simplement placé ton routage entre

RewriteBase /

et

RewriteCond %{REQUEST_FILENAME} !-f

Comme ça, si t'as une règle avant ou un fichier/dossier existant, ça s'arrête avant, et en dernier recours, tu renvois vers un fichier

RewriteRule .* fiche_membre.php [L]

(qui devra gérer le 404 si aucun membre trouvé).

Comme ça, t'as rien à changer.

jdelire | Lilian
Membre

Photo de jdelire

Inscrit le : 14/05/2005

# Le 07/12/2015 à 19:43

Merci Jeremy pour les tips

Il va falloir que je fasse une table de mot interdit lors de l'inscription (pour éviter les conflits avec les noms de page existantes)
Un routage en htaccess qui teste si la page/dossier demandé existe
Une page de redirection membre qui teste également si le login existe

Personne n'a de site "social" avec une page profil pour chaque membre?

Lilian

Slwo.frOuvrir dans une nouvelle fenetre

Bool | Olivier
Modérateur

Photo de Bool

Inscrit le : 09/05/2005

# Le 08/12/2015 à 00:10

Si tu n'autorises que des lettres, chiffres, tiret et underscore, ça t'évite tout conflit avec les fichiers portant une extension. Ça peut déjà limiter les problèmes.
De plus, tu peux très bien forcer la première lettre en majuscule, afin d'éviter tout conflit avec tes propres fichiers & dossiers.

Bref, pas forcément besoin d'une liste d'exceptions.

daevel : infogérance et conseilOuvrir dans une nouvelle fenetre || moiOuvrir dans une nouvelle fenetre

krucial | Jean Christophe
Administrateur

Photo de krucial

Inscrit le : 09/03/2005

# Le 08/12/2015 à 09:07

Bool a dit :
Bref, pas forcément besoin d'une liste d'exceptions.


Si dans 6 mois tu veux sortir une rubrique "annuaire" ou "photo" et qu'un membre porte ce pseudo, tu es foutu. Faut se prémunir en créant une blocklist, avec des noms de rubrique que tu veux garder (contact, photo, audio, video, sql, annuaire, image, ...) et des mots interdits que tu ne veux pas voir chez toi (pedophlie, xxx, zoophilie, hitler, benladen, ...).

jdelire a dit :
Personne n'a de site "social" avec une page profil pour chaque membre?


Moi j'ai des pages de membre comme ça :
http://www.forumconstruire.com/construire/membre-1...Ouvrir dans une nouvelle fenetre

Ou encore, des raccourcis comme ça :
http://zelda.forumconstruire.comOuvrir dans une nouvelle fenetre

JC - Mes sitesOuvrir dans une nouvelle fenetre | Affiliation devis travauxOuvrir dans une nouvelle fenetre | Cotes voitures anciennesOuvrir dans une nouvelle fenetre

Bool | Olivier
Modérateur

Photo de Bool

Inscrit le : 09/05/2005

# Le 08/12/2015 à 09:12

krucial a dit :
Bool a dit :
Bref, pas forcément besoin d'une liste d'exceptions.


Si dans 6 mois tu veux sortir une rubrique "annuaire" ou "photo" et qu'un membre porte ce pseudo, tu es foutu. Faut se prémunir en créant une blocklist, avec des noms de rubrique que tu veux garder (contact, photo, audio, video, sql, annuaire, image, ...) et des mots interdits que tu ne veux pas voir chez toi (pedophlie, xxx, zoophilie, hitler, benladen, ...).


Sous Unix, "annuaire/" et "Annuaire/", c'est différent, donc aucun problème de conflit.

daevel : infogérance et conseilOuvrir dans une nouvelle fenetre || moiOuvrir dans une nouvelle fenetre

jdelire | Lilian
Membre

Photo de jdelire

Inscrit le : 14/05/2005

# Le 08/12/2015 à 13:23

Bool, j'accepte que lettre/chiffre, tout en minuscule

Il me faut une blacklist comme dit JC, pour les mots interdits et les noms de mes dossiers (je souhaite faire quelque chose du genre www.site.com/tartempion/photos)

Je viens de tester sur Facebook, il y a bien les noms de dossier qui sont refusé lors du choix du login
Par contre je trouve cela lourd de définir tous les dossiers dans le htaccess

Slwo.frOuvrir dans une nouvelle fenetre

Bool | Olivier
Modérateur

Photo de Bool

Inscrit le : 09/05/2005

# Le 08/12/2015 à 13:29

Et ce serait vraiment gênant d'utiliser des URLs de type www.site.com/Tartempion/photos ?

daevel : infogérance et conseilOuvrir dans une nouvelle fenetre || moiOuvrir dans une nouvelle fenetre

tonguide | Jeremy
Modérateur

 

Inscrit le : 09/05/2005

# Le 08/12/2015 à 13:46

jdelire a dit :
Par contre je trouve cela lourd de définir tous les dossiers dans le htaccess

Pourquoi dans le htaccess ?

Sachant que si le dossier existe déjà, ton htaccess n'ira pas jusqu'au fichier testant l'existence du login.

Donc si tu veux faire une verif, c'est juste au niveau du choix du login par le visiteur.
Le truc, c'est de penser à tous les futurs dossiers surtout ...

krucial | Jean Christophe
Administrateur

Photo de krucial

Inscrit le : 09/03/2005

# Le 08/12/2015 à 15:24

Bool a dit :
krucial a dit :
Bool a dit :
Bref, pas forcément besoin d'une liste d'exceptions.


Si dans 6 mois tu veux sortir une rubrique "annuaire" ou "photo" et qu'un membre porte ce pseudo, tu es foutu. Faut se prémunir en créant une blocklist, avec des noms de rubrique que tu veux garder (contact, photo, audio, video, sql, annuaire, image, ...) et des mots interdits que tu ne veux pas voir chez toi (pedophlie, xxx, zoophilie, hitler, benladen, ...).


Sous Unix, "annuaire/" et "Annuaire/", c'est différent, donc aucun problème de conflit.


Ok j'avais pas tout tout lu dans ta réponse

JC - Mes sitesOuvrir dans une nouvelle fenetre | Affiliation devis travauxOuvrir dans une nouvelle fenetre | Cotes voitures anciennesOuvrir dans une nouvelle fenetre

Répondre

Vous ne pouvez pas participer au forum, car votre inscription n'a pas été validée. Pour vous faire valider en tant que Membre, cliquez ici.

© MHN - Tous droits réservés | CNIL N°844440 | 26/04/2024 15:25:30 | Généré en 46.82ms | Contacts | Mentions légales |