//////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////// // // // AUTHENTIFICATIONS + REDIRECTIONS v4.3.4 (11/03/2010) // // // // Ce petit script va vous permettre de gérer UNE ZONE PROTEGEE PAR MOT DE PASSE sur votre site. // // La particularité de ce script c'est qu'il permet pour chaque membre d'avoir une redirection // // différente ! (si vous le souhaitez). // // // // DE PLUS VOUS POUVEZ INSERER D'AUTRES ADMINISTRATEURS // // // // Dans le script, j'ai inséré 1'admin + 3 membres utilisateurs avec 3 pages de redirection en // // // // exemples. L'administrateur, dès qu'il aura rentré ses passes sera dirigé vers l'ADMIN ! // // // // Vous pouvez utiliser ce script comme bon vous semble. La seule // // restriction est de LAISSER les mentions en bas des pages. // // // // Paul Leal Alves / webmaster@scriptsgratuits.com / http://www.scriptsgratuits.com // // // //////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////// ###################################### DEMANDE D'INSTALLATION ########################################## Si vous souhaitez que je vous installe le script sur votre site, il vous suffit d'en faire la demande par l'intermédiaire du formulaire de contact à cette adresse : http://www.scriptsgratuits.com/SG/contact.php Coût de l'installation : 5 codes allopass ou bien 5 euros par CB. ######################################################################################################## Vous avez le choix entre la procédure d'installation automatique du script, ou bien la mise à jour automatique pour ceux qui ont déjà une version plus ancienne que la 4.3. Depuis la version 4.0, vous pouvez intégrer des modules complémentaires et tres facilement installables. ### Modules disponibles à cette date : ### - MailingListe : ce module vous permet d'envoyer un email au format HTML ou texte à l'ensemble de vos membres, ou bien seulement aux membres actifs ou bien seulement aux membres non-actifs. De plus les mailingListes envoyées s'archivent automatiquement et les archives sont consultables. ############################################ ATTENTION ####################################### Ce script est compatible avec les versions récentes de php (variable register_globals à Off et variable error_reporting à E_ALL dans le fichier php.ini) ################################ PROCEDURE POUR INSTALLATION ################################ 1) Décompréssez le zip dans un répertoire de votre site en conservant l'arborescence des répertoires du script.(je vois déjà ceux d'entre vous m'écrire "ça veut dire koi ?" => donc ça veut dire que les fichiers qui sont dans un répertoire précis doivent rester dans le meme répertoire après décompression du zip !) 2)-Renseignez le fichier protec/passe/conf.php en mettant vos passes de connection à la base de données. (n'oubliez pas de mettre le nom de votre base de données pour la variable $sql_bdd dans le fichier conf.php) Voila, envoyez le tout via FTP. Option (facultatif) : Créez un fichier .htaccess dans le repertoire /passe/ (dans le but d'empêcher une intrusion dans ce répertoire) et le tour est joué : pour des infos sur .htaccess => http://www.google.fr/search?hl=fr&ie=UTF-8&oe=UTF-8&q=utilisation+htaccess&btnG=Rechercher&meta=lr%3Dlang_fr 3)-Lancez la page install.php et cliquez sur "Cliquez ici pour l'installation automatique" afin de créér les différentes tables et leurs enregistrements. Une fois cela fait, supprimez la page install.php puis lancez la page login.htm et loguez vous en tant qu'administrateur : login : "admin" passe : "passe" Voila, vous pouvez commencer à rentrer des membres et des administrateurs ! Vos visiteurs peuvent s'inscrire d'eux même. Dans ce cas, ils seront automatiquement redirigés vers la page définie dans le fichier conf.php ($destination_prevue) (sauf si vous choisissez de les activer avant, à ce moment là, leur compte sera en attente.) Mais vous pourrez modifier cette page dans l'administration du script. Les membres, une fois connectés, verront leur pseudo, email, pays apparaitre dans les pages suivantes. ####################### PROCEDURE POUR MISE A JOUR DU SCRIPT VERS LA VERSION 4.3 ################################ Si vous avez déjà installé une version antérieure du script, il vous sera très facile de mettre à jour le script : 1) Décompréssez le zip dans le même répertoire que la version antérieure. Ecrasez les pages. 2)-Renseignez le fichier protec/passe/conf.php en mettant vos passes de connection à la base de données. (n'oubliez pas de mettre le nom de votre base de données pour la variable $sql_bdd dans le fichier conf.php) 3)-Lancez la page install.php et en bas de la page, rentrez votre pseudo Administrateur ainsi que votre passe, puis choisissez votre ancienne version du script. cliquez sur le bouton "Mise à jour de la base de données" et suivez la progession de la mise à jour. Rassurez-vous, vous ne perdrez aucune données. Une fois cela fait, lancez la page login.htm et loguez vous en tant qu'administrateur : login : "admin" passe : "passe" Voila, vous pouvez commencer à rentrer des membres et des administrateurs ! Je vous conseille de modifier le mot de passe de l'administrateur. (vous pouvez le faire via le script) ################################ DESCRIPTIF DES PAGES ################################ activer.php : Cette page permet aux membres d'activer leur compte par le biais du lien envoyé par email lors de l'inscription install.php : Cette page est la première que vous devez lancer, elle installe ou fait la mise à jour du script login.htm : Cette page sert a se loguer (membres et administrateurs) login.php : Cette page créér un identifiant aléatoire qui sera transmis aux autres pages lors de la connection perdu.php : Cette page permet au membre qui perd son passe de le récupérer. erreur.htm : Page de redirection en cas de mauvais login/passe ou session expirée. lisezmoi.txt : cette page !! ______________________________Dans le répertoire "destination"______________________________________ destination1.php : Page de redirection apres que l'utilisateur se soit logué. destination2.php : 2eme page d'exemple de redirection. destination3.php : 3eme page d'exemple de redirection. Celle ci concerne les visiteurs qui s inscrivent eux-même (modifiable dans conf.php) destination4.php : 4eme page d'exemple de redirection. Ces 4 pages (destination) appellent l'ID aléatoire qui a été crée et testent sa validité. Par conséquent, si l' utilisateur n'a pas rentré le bon passe, il sera dirigé vers la page : erreur.htm IMPORTANT !! : Si vous décidez de créer de nouvelles pages membres protégées, il faudra OBLIGATOIREMENT les placer dans ce répertoire. ______________________________Dans le répertoire "protec"______________________________________ adduser.php : cette page sert a rentrer un nouveau membre admin.php : la page principale de l'administration ajout.php : Cette page permet aux visiteurs de s'inscrire directement sur votre site (formulaire) creation_compte.php : confirmation de la creation du membre effacer.php : cette page efface le membre selectionné modif.php : confirmation de modification d'un membre footer.php : les mentions obligatoires (j'ai dit OBLIGATOIRES!!!) entete.php : Le HTML a inclure dans les pages erreur.htm : la page de redirection en cas faux login delogue.php : La sortie !! liste_membres.php : Une liste des membres avec liens vers modif change_passe_admin.php : Permet de modifier le mot de passe administrateur erreur_search.htm : Lors d'une recherche d'un membre, ceci est la page d'erreur associée modifsuppr.php : Permet de modifier/supprimer un membre recherche_membres.php : Page de recherche de membres par pseudo/ID/email etc... affichage_code.htm : Page d'affichage du code PHP de protection des pages modif_infos_util.php : Page qui permet à l'utilisateur membre de modifier ses infos image_dyn.php : Cette page créé une image JPG avec le code de verification (appelée depuis ajout.php) style.css : La feuille de style ______________________________Dans le repertoire "Passe"__________________________________________ conf.php : le fichier de configuration de la base (protégez ce repertoire avec un fichier .htaccess) ainsi que les fonctions de connection. ______________________________Dans le repertoire "js"__________________________________________ setpointer.js : fonctions javascript pour l'affichage de la liste des membres façon "fun" :) ______________________________Dans le repertoire "images"__________________________________________ administrateur.gif : petit logo pour signaler la présence d'un administrateur dans la liste des membres puce_fleche.gif : petite puce qui s'affiche sur la page login.htm fin_session.gif : Petit message d'aurevoir ok.gif : page de login, bouton OK et autres images... ______________________________Dans le repertoire "Passe"__________________________________________ Les polices utilisées pour le code de protection Catcha ______________________________Dans le repertoire "modules"__________________________________________ Les modules complementaires que vous pouvez intégrer au script doivent être placés dans ce répertoire. Pour des infos complémentaires, référez-vous au fichier lisezmoi.txt intégré au module en question. A l'heure actuelle, il y a 1 module téléchargeable : MailingListe. Pour télécharger ce module ou d'autres modules, visitez : http://www.scriptsgratuits.com _________________________________ ********** TRES IMPORTANT **********_____________________________ Cette remarque est valable uniquement si vous n'utilisez pas les SESSIONS : (ne pas en tenir compte si vous avez activé les sessions dans le fichier conf.php) Si le membre est sur une page protégée, et que vous voulez le diriger vers une autre page protégée, il faut rajouter cette portion de code dans le lien "> En fait, le code se chargera de transmettre la variable "id" à la page suivante. ____________________________________________________________________________________ CREATION DE NOUVELLES PAGES DE DESTINATION : De plus, si vous crééz d'autres pages cibles (comme destination 1/2/3 ou 4), il faut obligatoirement que ces pages soient en php3 (ou .php) mais pas en HTML, car en entête de ces pages, vous devez insérer le code suivant : Pour afficher le pseudo du membre dans ces pages, il faut ecrire là où vous souhaitez afficher le pseudo. (le pseudo est stocké dans un cookie à la page login.php) Pour afficher le mail du membre dans ces pages, il faut ecrire là où vous souhaitez afficher le mail. (le mail est stocké dans un cookie à la page login.php) Pour afficher le pays du membre dans ces pages, il faut ecrire là où vous souhaitez afficher le pays. (le pays est stocké dans un cookie à la page login.php) ________________________############# PETIT PLUS !! #############____________________________ Si vous décidez de gérer cette zone membre à plusieurs administrateurs, il suffit de leur donner des droits lors de leur inscription et de donner comme page de destination : ADMINISTRATION. ATTENTION => Le membre sera alors Administrateur et aura presque les mêmes droits que vous (à savoir gérer les membres, les supprimer). ________________________############# AMELIORATIONS #############____________________________ Depuis le tout début, ce script a beaucoup évolué. Par exemple, vous pouvez maintenant activer ou non par défaut les nouveaux comptes. Vous recevez un email si vous avez des comptes à valider, lors de l'ajout d'un nouveau compte, vous pouvez automatiquement envoyer un email au nouveau membre, le membre qui s'inscrit tout seul peut a présent modifier ses infos, le script utilise désormais des sessions rendant impossible la violation de clé, des modules sont intégrables, etc... Je vous conseille de lire les UPDATES ci-dessous pour connaître toutes les modifications qu'a subit ce script. _____________________________________________________________________________________________ Voilà, à vous de jouer ! Si vous avez des problèmes, webmaster@scriptsgratuits.com http://www.scriptgratuit.com (forum Authentification/Redirection) N'oubliez pas de visiter mon nouveau site http://www.apreslamort.net qui vous permet de laisser des messages post-mortem à vos proches. Paul LEAL ALVES ------------------------------------- UPDATES -------------------------------------- ## Version 2.0 : 06 Mars 2002 ## =>Correction d'un bug lors de l'effacement d'un membre. =>Ajout de la page "ajout.php" qui permet aux visiteurs de s'inscrire a partir d'un formulaire _____________________________________________________________________________________ ## Version 2.1 : 11 Juillet 2002 ## => Ajout de l'option "Affichage du pseudo du membre dans les pages de redirection". _____________________________________________________________________________________ ## Version 2.2 : 15 Octobre 2002 ## => Ajout d'un paramètre de temps lors d'une creation de clé aleatoire. Dorénavant, il est impossible de revenir sur une page meme si l on a gardé la clé aléatoire car l'on peut désormais controler la derniere heure de connection du membre. Si vous réglez le temps à 600 secondes, le membre aura une page d erreur s'il revient dans la zone 11 minutes apres ! POUR UPDATER ATTENTION : vous devez recréer les tables car la structure de celles-ci a changé !! =>Correction de quelques bugs mineurs et ajout d'une fonction mail de confirmation lors d'une inscription sur site _____________________________________________________________________________________ ## Version 2.3 : 05 Janvier 2003 ## => Ajout de la page install.php qui permet la création automatique de la table et de ses enregistrements => Correction d'un bug mineur dans la verif de validité de l'ID aléatoire pour les pages supplémentaires créées par le webmaster (oubli dans le fichier readme.txt). _____________________________________________________________________________________ ## Version 2.4 : 15 Mars 2003 ## =>Protection des champs d inscription contre les caractères spéciaux et les quotes =>Création d'une option "Mot de passe perdu" dans le formulaire de login. _____________________________________________________________________________________ ## Version 2.4.1 : 27 Mars 2003 ## =>Partie admin : création nouveau user : désormais, il est obligatoire de renseigner le champ "destination". => Rajout d'une phrase d'info sur la page de création d'un nouveau membre, pour rappeler à l'admin que cette page doit être protégée avec le code fournis dans le fichier readme.txt (celui-ci :-) =>Modification de la table membre, le champs "destination" a maintenant comme valeur par defaut "destination3.php" _____________________________________________________________________________________ ## Version 2.4.2 : 18 Avril 2003 ## => Rajout d'une page qui liste la totalité des membres (sauf l'admin) _____________________________________________________________________________________ ## Version 2.4.3 : 08 Juin 2003 ## => Correction d'un bug sur FREE depuis leur nouvelle version Php _____________________________________________________________________________________ ## Version 2.4.31 : 25 Avril 2004 ## => Dans le listing des membres, rajout d'un lien sur le pseudo qui permet de le modifier directement. _____________________________________________________________________________________ ## Version 2.5 : 08 Mai 2004 ## => Passage du script en mode avec les dernières versions de php, c'est à dire avec la variable "register_globals" à Off (comme indiqué au début de cette page). Cependant, il faudra encore modifier la variable "error_reporting" pour lui donner la valeur "E_ERROR" en lieu et place de "E_ALL". => La page Delogue.htm s'appelle maintenant Delogue.php, vous imaginerez bien pourquoi... Non ?? Mais si !!! allons.... bon, ok, je vous le dis : Avec cette nouvelle page, on détruit la variable qui sert d'identification tout au long de la navigation protégée (id). Comme ça, même si quelqu'un intercepte l'adresse du navigateur, il ne peut quand même pas rentrer dans l'application. => Affichage du mail et du pays (en plus du pseudo) dans les pages protégées. => Rajout d'un lien "se déloguer" dans les pages de destination pour que le membre puisse aussi protéger son id de session qui sera ainsi détruit et personne donc ne pourra accéder à son espace même en ayant l' adresse de la page. => Rajout d'un lien "se déconnecter" dans la page admin.php. _____________________________________________________________________________________ ## Version 2.7 23 Octobre 2004 ## => Merci à Dominique Bouteiller [b.domi@orange.fr] => Bug au niveau de la destruction de la clé (id), le membre peut aller sur la page sans se connecter auparavant => au lieu de détruire la clé, renouvellement de la clé id après que le membre ou l'admin se soit déconnecté. => Correction d'un bug mineur pour aller vers le lien delogue.php (au lieu de Delogue.php). => page admin.php =>Lifting => Dans le listing des membres, possibilité de trier par id, pseudo, url, pays ou email. => Possibiliter de retourner à la connexion de début après avoir été délogué. => Rajout d'un fichier modifsuppr.php qui permet soit de modifier ou de supprimer le membre Dans le listing des membres, le lien sur le pseudo permet soit de le modifier soit de le supprimer (avec confirmation) directement. => Modification de modif.php au niveau des liens. => Dans la page admin, rajout d'un lien pour rechercher un membre par id, pseudo, url, pays ou email (avec ou sans mot entier). rajout de erreur_search.htm (erreur si on a pas rentré de texte au niveau de la recherche d'un membre). => Dans le listing des membres, possibilité de trier par id, pseudo, url, pays ou email ascendant ou descendant. => Modification de creation_compte.php au niveau des liens. _____________________________________________________________________________________ ## Version 3.0 : 06 Novembre 2004 ## => Correction page modif, le pseudo n'est plus utilisé pour la modif mais l'id_membre. => Correction des insertions de membres avec des ' et des " qui sont à présent bien gérées. => Correction bug sur les recherches de membre avec des ' ou " => Modifs graphique de la page de liste des membres avec Gif + Javascript => Passage de cle aleatoire sur 40 caracteres au lieu de 20. => Encapsulage de la protection des pages dans des fonctions => Rajout d un champ droits en BDD pour gérer les admin plus facilement. => Rajout d'un champ date d'inscription rempli à l'inscription d'un membre => Changement de la page install.php : Désormais on gère les mises à jour du script pour les versions antérieures => L'admin peut désormais modifier son mot de passe par l'appli. => Rajout d'un tableau informant des mises à jour disponibles sur la page admin.php. => Rajout du champ DROITS en modif et en insertion de membre pour pouvoir insérer un admin. _____________________________________________________________________________________ ## Version 4.0 : 10 Mai 2005 ## => Tout le script utilise désormais les sessions de Php (possibilité de les activer ou non) => Correction de 2 ou 3 bugs mineurs + amélioration de l'ergonomie (CSS etc...) => Gestion des versions du script => Amélioration de l'installation automatique/mise à jour depuis une version ancienne => Option de validation des comptes (vous pouvez décider qu'un nouveau compte sera soumis à validation de votre part) => Possibilité pour le nouveau membre de modifier lui-même ses infos => Possibilité d'envoi d'un email au membre lors d'une modification de son compte (nouveaux login/passe etc...) mais également lors de la création de son compte => Possibilité de rechercher des membres avec compte activé ou non activé. => Dans la liste des membres, on peut distinguer les comptes activés des non-activés. => Création d'une fonction permettant d'installer des modules complémentaires de manière très simple. (ces modules peuvent être téléchargés sur http://www.scriptsgratuits.com) _____________________________________________________________________________________ ## Version 4.1 : 9 Février 2006 ## => Correction d'un bug mineur dans la page d'installation (install.php) => L'administrateur peut imposer au futur nouveau membre de cliquer sur un lien d'activation envoyé par mail pour que son compte soit activé. => Ajout de nouveaux champs "Nom" "Prenom" "Adresse" "Date de naissance" activables ou non, obligatoires ou non par le biais de la page conf.php => Dans la page "liste des membres" les membres n'ayant pas encore activé leur compte apparaissent en jaune. => Dans la page "liste des membres" apparait maintenant aussi la date et l'heure de la dernière connection du membre => Dans les pages ajout ou modification, on peut désormais choisir de recevoir ou non la mailingListe. _____________________________________________________________________________________ ## Version 4.2 : 22 Septembre 2006 ## => Passage de tout le script en version php4 => Plusieurs amélioratrions pour le module "MailingListe" Pour passer de la 4.1 à la 4.2, il suffit d'écraser toutes les pages, il n'y a pas besoin de refaire l'installation automatique, donc écrasez les pages puis supprimez la page install.php. C'est tout _____________________________________________________________________________________ ## Version 4.3 : 14 Février 2007 ## => Passage de tout le script en mode compatible avec easyphp 2.0 beta => Ajout d'un code de protection quand un membre s'inscrit, empechant ainsi les inscriptions automatiques => Correction d'un bug dans la liste des membres (certains critères disparaissaient après un tri) => Désormais, un répertoire nommé 'destination' contient toutes les pages membres. De plus, lorsque l'administrateur insère ou modifie un membre, il n'a plus besoin de rentrer le nom de la page de destination, il suffit de la selectionner dans une liste déroulante. Pour passer de la 4.2 à la 4.3, il suffit d'écraser toutes les pages, il n'y a pas besoin de refaire l'installation automatique, donc écrasez les pages puis supprimez la page install.php. C'est tout. _____________________________________________________________________________________ ## Version 4.3.1 : 03 Octobre 2008 ## => correction de 3 bugs : + Page ajout.php : deplacer => require("passe/conf.php"); de la ligne 17 a la ligne 4 juste apres => @set_magic_quotes_runtime(0); + Page ajout.php : Ligne 188 : remplacer => $var_url="../$destination_prevue"; par => $var_url="../destination/$destination_prevue"; + Page ajout.php : Ligne 191 : remplacer => $var_url="../$destination_prevue?id=$id2"; par => $var_url="../destination/$destination_prevue?id=$id2"; _____________________________________________________________________________________ ## Version 4.3.2 : 04 Octobre 2008 ## => Vous pouvez désormais changer le nom du répertoire protégé, si c'est le cas, le nom choisi devra être renseigné dans le fichier conf.php => Le code de sécurité ne contient désormais plus de 0 (zéro) ni de O (la lettre) => Correction d'une petite erreur javascript suite à une inscription sur le site (qui n'avait aucune conséquence) Pour faire les modifications vous même depuis la version 4.3, suivez scrupuleusement les indications ci-dessous. (les numeros de ligne peuvent être incorrects si vous avez déjà modifié les pages...) page conf.php : remplacer : $chemin_formulaire="http://www.votre_site.com/authentification_redirection_4_3"; par $chemin_formulaire="http://www.votre_site_ici/Authentification_Redirection_4_3"; Rajouter $repertoire_protege="destination"; // nom du repertoire où se trouvent les pages protégées. Ce répertoire doit obligatoirement se trouver dans le repertoire Authentification_Redirection_4_3 (au même niveau que le répertoire protec, c'est à dire à la racine du script) juste après la ligne : $destination_prevue="destination3.php"; Page ajout.php supprimer le O dans la liste des caracteres formant le code de sécurité (ligne 250) deplacer : require("passe/conf.php"); de la ligne 17 a la ligne 4 juste apres @set_magic_quotes_runtime(0); rajouter $js=0; ligne 203 (avant include 'entete.php';) et ligne 219 (idem avant include 'entete.php'; ) ligne 190 : remplacer : $var_url="../$destination_prevue"; par : $var_url="../$repertoire_protege/$destination_prevue"; puis ligne 193 : remplacer : $var_url="../$destination_prevue?id=$id2"; par : $var_url="../$repertoire_protege/$destination_prevue?id=$id2"; Page entete.php ligne 24 : remplacer : if(eregi("ajout.php", $HTTP_SERVER_VARS["SCRIPT_FILENAME"])){ par if(eregi("ajout.php", $HTTP_SERVER_VARS["SCRIPT_FILENAME"]) && $js!=0){ Page adduser.php ligne 217 : remplacer if ($dir = opendir("../destination")) { PAR if ($dir = opendir("../$repertoire_protege")) { page login.php ligne 77 : remplacer : header("Location: destination/$destination"); par : header("Location: $repertoire_protege/$destination"); ligne 81 : remplacer header("Location: destination/$destination?id=$lid"); par : header("Location: $repertoire_protege/$destination?id=$lid"); _____________________________________________________________________________________ ## Version 4.3.3 : 24 Aout 2009 ## Rajout d'une fonction dans conf.php qui regarde si les get_magic_quotes_gpc sont activées sur votre serveur, si c'est le cas, on ne met pas d'anti-slash a la fin des données reçues par Get/Post/Cookies (fonction Get_GPC_addslashes) Modification de toutes les pages du script qui utilisaient addslashes, remplacé dorénavant par Get_GPC_addslashes Si vous voulez mettre à jour votre script, chaque fois que vous trouverez addslashes dans une page, remplacer le par Get_GPC_addslashes Exemple : $nom=addslashes($_POST["nom"]) devient : $nom=Get_GPC_addslashes($_POST["nom"]) Puis, rajoutez ce bout de code tout en bas de la page conf.php : function Get_GPC_addslashes($theValue) // fonction qui regarde si les magic_quotes sont activées sur votre serveur, si ce n'est pas le cas, on ajoute des slash aux données { $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue; return $theValue; } Correction de la génération du nombre aleatoire qui permet de créer la clé de connection du membre. On utilise dorénavant srand(microtime()) _____________________________________________________________________________________ ## Version 4.3.4 : 11 Mars 2010 ## => Correction d'un bug lié aux pseudos/passes avec caractères spéciaux. => Amélioration du Catcha (image avec code de protection) (code by Andrew Whitwam | Whitewateruk.net) (les paramètres du catcha sont modifiables à la page image_dyn.php) => Quelques améliorations graphiques => Meilleure gestion des erreurs de la page 'install.php'