Controle d'ip par user comment gerer ? +obligation de se loguer - PHP - Programmation
Marsh Posté le 06-09-2005 à 01:38:24
Citation : jai ouvert un website, et jaimerais qu'il ne soit accessible que par des personnes inscrites dans ma base de donnée, ou que jai décidé dinscrire. |
Si tu vérifies d'un côté l'utilisateur dans ta bdd et de l'autre l'IP par htaccess, tu ne pourras pas associer un utilisateur particulier à une IP. De plus, ce que tu veux faire est très simple à mettre en oeuvre en PHP :
Code :
|
Puisque tu dois vérifier le login des utilisateurs, tu peux stoquer l'IP dans un champ de ta bdd, et faire la vérification à partir de ce champ.
Marsh Posté le 06-09-2005 à 01:44:46
merci kalex
ca méclairci pas mal
mais en fait cest plus complexe que ca
jsuis encore perdu dans mon truc
jai un shop, privé (type ven t e pri vee )
et jai deja une bdd dutilisateur
je veux en fait que dorénavant il devienne privée, et donc qu'on ait plus acces au site, mais dabord a une page dentrée + soit htaccess, soit login obligatoire (mais donc pas possibilité de sinscrire)
alors dapres ce que tu dis, (et qui méclairci un peu), ce que je pourrais faire,
cest de limiter le site aux utilisateurs inscrits, donc faire une verif sur mon index, et donc si pas loggué, renvoi sur une page login.php
donc, le premier probleme est réglé : celui de la restriction aux utilisateurs inscrit
2eme probleme : ensuite sur cette meme page login, jajoute un control de l'ip quand la personne se log
avec un simple if conditionnel.
ip qui sera chopée dans la bdd, et comparée à celui qui se log.
il faudrait donc que je crée dans l' admin, un moyen d'ajouter plusieurs ip dans la bdd , dans le champ de lutilisateur..
question :
1/ est-ce que ce que je dis se tient ?
2/ est-il possible de ne faire de vérif que sur un mask de l'ip, par exemple 121.121.121.* (dernier chiffre peu etre nimporte lekel)
3/ il nya plus besoin du htaccess, mais la il va falloir que je prenne d cours sever en PHP
merci kalex pr ton aide
Marsh Posté le 06-09-2005 à 01:48:55
(ps : je suis débutant en php, sql, jai juste qq notions de structure, donc je pe reflechir a comment faire, mais pas le faire)
Marsh Posté le 06-09-2005 à 02:14:15
Pas de problème pour vérifier qu'une partie de l'IP, regarde du côté des expressions régulières.
Mais si tu veux associer plusieurs IP à un seul utilisateur, tu vas devoir faire deux tables en relation (avec des clefs étrangères c'est mieux, mais tu peux t'en passer dans un premier temps). Par exemple je verais bien ça comme ça :
Table user |
(tu as compris que c'est le champ USER_ID de la table user_ip qui est en relation avec l'ID de la table user)
Et la requête SQL (avec une jointure entre le 2 tables) ressemblerait à ça :
SELECT 1 FROM user U |
Marsh Posté le 06-09-2005 à 02:20:11
merci pour tte tes indications, mais je manque grave de temps, bien qu'ayant pas mal de connaissances, jai tres bien compris ce que tu mas expliqué
tu code en PHP ? tu me prendrais combien pr faire un truc comme ca ?
ajout dans la console dadmin d'un petit module rapide avec formulaire, ou jpe editer les ip,
puis la requete de test de l'ip lors du login.
Marsh Posté le 06-09-2005 à 02:28:21
Dis moi que ton site utilise une entête communne pour toutes les pages et là je veux bien le faire, sinon ca va être long et chiant.
Marsh Posté le 06-09-2005 à 02:32:12
oui
j'inclue un top.php qui est présent a chaque page
il sufit de foutre le test conditioonnel dans ce top .php et cest reglé
enfin + qq trucs
comme je l'ai dis a kalex en MP, je suis pas trop fortuné donc on pourrait sarranger, tu pourrais acceder au site gratuitement et avoir des prix suir mes produits
puis cest pas trop trop de taf a faire comme dit
-crée la table en question (des ip), lié a la table user,
-crée le formulaire (module) dans mon admin (quelques requete SQL, select, et ajout d'ip dans la bdd)
-ajouter la requete pr controle d'ip, dans mon entete commune
(la requete pour obliger a se logguer je l'ai deja) , donc cest un probleme de regler
je me demande meme si une ame charitable pourrait aider a faire ca gratuitement ^^
cest pas sorcier a vu doeil, mais je ne my connais pas assez nivo syntax php
Marsh Posté le 06-09-2005 à 02:43:22
je fais un txt, et je vous envoi ca
ca doit pas etre sorcier a priori
avec ce que kalex ma expliqué
meme moi je me sentiré bien dessayer, mais jai peur un peu de planter tout le dev, netant pas un expert de la syntax php sql..
a t'aleur ou demain
Marsh Posté le 06-09-2005 à 03:11:41
Alors
tout dabord merci pr laide
soit en sur que jen serais reconnaissant comme je le pourrais
je suis sincere, je trouve vous trouve d'une générosité déconcertante de vouloir aider, et contribuer
VEnons en au truc :
Le shop est sur la base d'un OScommerce, que j'ai modifié pour ladapté a mon design
mais il y a toujours un
require("includes/application_top.php" );
qui traine
et cest dans ce fichier que tout se passera donc :
A developper :
1/ Test pour voir si la personne est loguée, si elle n'est pas loguée, envoi sur la page login.php
-> en utilisant les fonctions définies de mon script , ca donne :
Code :
|
si ca vous interesse de voir les fonctions tep_session_is_registered(), tep_redirect(), et tep_href_link()
cest assez simple
la fonction redirect ben redirige vers une autre page
Code :
|
la fonction href_link, cest pour foutre un lien, qui fait suivre les sessions
pour les sessions ca doi parler de soi aussi
Code :
|
voila
//
de toute facon le 1/ est clo, je pense que le code est bon
il vérifie si le mec est loggué, si ce nest pas le cas, renvoi sur la page login.php, sinon ben acces au site
------------------------
2/ Controle d'ip pendant le login
Coté admin :
- Dans l'admin
un ptit formulaire avec la liste des utilisateur (en menu déroulant ?)
-> une ptite requete select, dans la bdd d'user
ADD - EDIT - REMOVE, pour les ip de l'utilisateur
possibilité de travailler par mask (cest la que tou se corse a mon avis, dans ce que je demande ) , par exemple , que je puisse add des ip, genre
81.56.35.*, voir meme 81.56.*.*
-> au préalable, on aura crée la table des ip user, et lié celle ci a celle des user (cf. KALEX)
*----*
Coté User :
- toujours dans mon application_top.php, entete de chaque fichier, de mon site
dans le meme controle conditionnel du login ?
-> vérifier si l'ip du mec, coordonne avec l'ip entrée dans la bdd, pour ce meme utilisateur spécifié dans le formulaire de login.
-> test condition if, + requete select pour l'ip, + travaille sur les mask (*.*)
voila
jespere avoir été assez clair
a vu doeil ca a pas lair sorcier pr qq1 qui maitrise
moi je me sens pas de le faire seul
Si vous ne connaissez pas les fonctions dispo je peux vous envoyez mes fichiers fonctions, mais le mieu cest de faire ca comme ca, et si je peux optimiser avec mes fonctions deja existantes, je le ferais
merci davance les gars
franchement vs assurez
Marsh Posté le 06-09-2005 à 03:22:43
Il est un peu tard, j'ai les yeux qui se croisent pour t'aider, dsl. Demain, si je peux.
Mais avant d'aller au lit : c'est du osCommerce donc :
- Le code est a chier (c'est un avis tres perso sur oscommerce )
- Oscommerce a plein de modules. Renseigne-toi sur un forum oscommerce, ça serait bête de ne pas en profiter au cas où un truc dans le genre serai déjà fait.
Bonne nuit.
Marsh Posté le 06-09-2005 à 03:51:29
salut
le code de oscommerce, je sais pas je suis pas expert, mais cest simple a installé (un peu moins a customizer), mais jy suis arrivé et jai un shop nikel (adapté a mon design je veux dire) , sans rien y connaitre en prog
concernant les modules c deja fait, cest dailleur la que jai trouvé le code pour forcer le login
mais pour la gestion d'ip, je pense pas que ca existe, jai demandé
Marsh Posté le 06-09-2005 à 19:01:27
Le problème c'est que je ne connais pas bc osCommerce et le peux que j'en ai vu c'etait pas terriblement organisé. Donc, à toi de voir où placer le code pour que ça reste propre... où alors tu te fous que ça reste propre et là t'as fini dans rien de temps.
Tiens, j'avais un vestige d'une installation osCommerce dans ma bdd, pour rester cohérent, le schéma de ta table pour les IP devrait ressembler à ça :
CREATE TABLE customers_ipcheck( |
Concernant la vérification d'IP, regarde ce lien (en bas de la page), c'est un peu ce que tu veux (pas besoin de faire appel à la base de donnée une fois la session crée) :
http://www.phpindex.com/articles/a [...] lement=182 (à adapter avec du code PHP d'ajoud'hui)
Pour la vérification partielle de l'IP, tu peux faire avec une regex.
Code :
|
Marsh Posté le 06-09-2005 à 23:54:16
yop
le pour la creation de table, ok
par contre le reste je n'ai pas trop compris
comment ne pas faire appel a la base de donnée ? étant donné que l'ip a vérifiée est stockée dedans.
ensuite , pour ton sccript de verif, comment faire pour l'ip check, puisque celle ci n'est pas 81.56.*.* , mais une ip piochée dans la table que tu as crée au dessus ? pourrais tu donner un exemple avec user id 1 par exemple, comment choper les ip de la table qu'on a ajouter etc..
Marsh Posté le 07-09-2005 à 01:13:48
Citation : yop |
Tu fais la vérification avec la bdd à la connexion, après l'IP est stoquée dans la session.
Citation : ensuite , pour ton sccript de verif, comment faire pour l'ip check, puisque celle ci n'est pas 81.56.*.* , mais une ip piochée dans la table que tu as crée au dessus ? pourrais tu donner un exemple avec user id 1 par exemple, comment choper les ip de la table qu'on a ajouter etc.. |
Tu adaptes mon script (à partir de la ligne 4), au lieu de mettre '81.56.0.60', tu mets l'IP que tu as pioché dans la bdd. S'il y en a plusieurs, tu fais le test jusqu'à ce que l'IP soit bonne ou qu'il n'y est plus d'IP à tester.
En très gros tu fais ce genre de fonction :
Code :
|
Tu peux même faire des regex directement en SQL, mais là j'ai jamais essayé.
Essaye déjà de faire un petit truc avec ça.
Marsh Posté le 07-09-2005 à 01:50:58
merci
mais mon niveau a du mal a suivre
je vais essayer tout de meme
jespere que dwogsi a compris qqchose et qu'il pourra maider aussi un peu
merci bcp kalex
je v essayer davancer avec ca
ps: je c tjr pas ce qu'est un regex
mais je vais me renseigner
Marsh Posté le 06-09-2005 à 01:22:53
Bonjour je vous expose mon probleme
jai ouvert un website, et jaimerais qu'il ne soit accessible que par des personnes inscrites dans ma base de donnée, ou que jai décidé dinscrire.
Chaque personne aura son login, et son mot de passe ET (tres important), une restriction ip, que la personne me fournira
(si elle a une ip fixe, jajoute son ip et elle ne pourra que se connecter depuis cette ip)
Pour l'instant, la solution a laquelle j'ai pensé, et qui en théorie est adaptable a mon probleme est le HTACCESS
maintenant je ne suis pas sur que cette solution soit la plus ergonomique, si je dois souvent ajouter des ip autorisée par accompte, voir ajouter des nouveaux accomptes tout simplement :
1/ Pour la solution htaccess, comment gerer lajout d'accompte, et la restriction d'ip PAR ACCOMPTE svp ?
jai cherché et je n'ai trouvé que la restriction ip, d'une page, mais pas par accompte..
2/ Existe-il un script PHP opensource, qui arrangerait tt mes problemes ?
(bien que le htaccess reste la solution la plus correct)
3/ Existe til tout simplement, un logiciel, ou script, qui gere automatiquement les htaccess, et donc qui me permettrait de facilement mettre à jour mes fichiers a partir dune interface : Créer accompte, ajout ip autorisé sur un compte, editon etc..
Merci davance
jose espérer que qq1 ici pourra m'aider
Message édité par AliaS le 06-09-2005 à 03:13:41