Comment créer des profils d'utilisateur avec PHP et MySQL
J'ai besoin d'aide sur la création d'un profil d'utilisateur du système. Je veux qu'elle soit comme Facebook ou Myspace où il a seul le nom d'utilisateur après l'adresse, pas de points d'interrogation ou quoi que ce soit, par exemple, www.mysite.com/username
. J'ai tout le registre, l'enregistrement des scripts, etc. tout est fait, mais comment puis-je aller à des profils à l'aide de l'exemple de l'URL ci-dessus, "/nom d'utilisateur"?
OriginalL'auteur Spyderfusion02 | 2009-07-25
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin pour créer un mod de réécriture qui a fait le premier répertoire et l'a adopté comme un $_GET paramètre.
Essayez ceci:
Qui devrait réécrire quoi que ce soit après '/' comme index.le php?utilisateur=répertoire
En fait .. assez simple. Juste mis dans un .htaccess dans le répertoire racine.
Je vais essayer d'obtenir la règle correcte. Donnez-moi une seconde.
De partout que je peux trouver sur Google, qui doit être correcte.
Juste pour être sûr, j'ai ajouté les conditions pour s'assurer que si un fichier existe, il sera redirigé trop.
OriginalL'auteur
Voici la version abrégée de ma réponse, au cas où quelqu'un tldr moment:
L'intérieur de ce répertoire, faire une .fichier htaccess à la suite de mod_rewrite:
REQUEST_URIRewriteEngine on
RewriteRule !\.(gif|jpg|png|css)$ /your_web_root/users/index.php'REQUEST_URI
Maintenant toutes les demandes de page pour toutes les extensions non dans la parenthèse faite pour le répertoire des utilisateurs iront à index.php
index.php prend l'URL que l'utilisateur de mettre en, et s'empare de la peu à la fin. Il ya des tonnes de façons de le faire, voici un simple sur si vous connaissez la dernière partie sera toujours un nom d'utilisateur et non pas, peut-être, le nom d'utilisateur/photos/:
Maintenant, il suffit de faire une requête à la base de données pour que le nom d'utilisateur. Si elle existe, index.php sorties le profil, s'il n'a pas le script de redirection: /users/404.php
Mais si l'utilisateur n'existe pas, tout votre visiteur va voir, c'est qu'ils ont mis en
et ils ont obtenu de foo de l'utilisateur de la page.
Pas d'obtenir des variables pour un pirate à exploiter, et un joli, facile à mettre sur un autre blog ou une carte d'affaires URL.
En fait, il est possible de se débarrasser des "?" et un simple et agréable http://www.example.org/users/someusername.
J'ai appris à ce sujet est Jusqu'à ce Charlatan de l'article "Comment Réussir avec les URLs" sur Une Liste À Part.
De sorte que vous aurez besoin de comprendre Apache .htaccess, et mod_rewrite, et cette méthode vous oblige à comprendre les risques de sécurité et de les prendre en compte. Voici l'idée de base:
Vous créez un répertoire appelé "utilisateurs" (vous n'avez pas à, mais cela va simplifier la chose), et dans ce répertoire, vous mettez votre .fichier htaccess qui contient un mod_rewite que dit effectivement "tout fichier ou répertoire de demandes qui ne sont pas d'un certain type (images, pdf) doivent être envoyées à ce script, qui va gérer l'endroit où envoyer à l'utilisateur." Le mod_rewrite de l'article ressemble à ceci:
Dans mon exemple, il serait "/your_web_root/users/index.php" la raison pourquoi il est plus simple est parce qu'au lieu de ce script qui gère TOUTES les demandes sur votre page, il est juste de traiter avec ceux qui sont dans le répertoire de l'utilisateur.
Ensuite, vous avez un script php qui dit "ok, quelle a été l'URL donnée?" et il saisit la partie après le dernier slash (ou deux, si il y en a une autre à la fin), et NETTOIE ce qu'il trouve (c'est essentiel) et dit: "ce nom d'utilisateur n'existe pas dans ma DB?" Si oui, il envoie au demandeur de le profil de l'utilisateur, mais avec une jolie URL (nous y reviendrons dans une seconde), si non, il les envoie à un "Utilisateur Non Trouvé" la page, ou ce que vous voulez.
Donc si il n'trouver votre utilisateur, le script PHP sera de sortie le profil de l'utilisateur (Encore une fois, assurez-vous de désinfecter. Toute secousse de l'utilisateur vous pouvez avoir peut --si vous lui donnez l'occasion--embed code malveillant dans leur propre profil, sachant que les navigateurs qui considère que le profil de l'exécution de code). Depuis la page demandée a été:
et puisque vous êtes à l'aide du module mod_rewrite au lieu d'une redirection, l'URL reste la même et le script que l' .fichier htaccess tire juste dumps le profil de l'utilisateur. Pour le visiteur, ils voient qu'ils ont mis dans l'url ci-dessus, et le profil de l'utilisateur a montré jusqu'à.
Vous aussi vous voulez le script PHP qui vérifie que l'utilisateur de faire une redirection vers un "utilisateur non trouvé" la page, au lieu de simplement l'avoir sortie un "user_not_found" de la page. C'est donc quelqu'un qui met en:
Verrez le changement d'URL pour
au lieu de voir l'URL reste la même. Si un pirate voit que l'URL ne change pas, maintenant ils savent que vous êtes à l'aide d'un module mod_rewrite et donc il doit y avoir un script qui gère la sortie réelle. Si ils savent qu'ils peuvent commencer à devenir fou à la recherche de sécurité pour chaque trou que vous avez peut-être laissé ouvert.
acclamations.
OriginalL'auteur Anthony
Prendre un coup d'oeil à la moteur de réécriture. Certains cadres ont aussi des classes pour faire ce travail comme Zend Framework a Zend_Router que vous pouvez utiliser. Vous pouvez l'utiliser par lui-même, d'autres cadres plus, consultez la documentation de votre saveur préférée.
OriginalL'auteur Elzo Valugi