France Hardware : Forums de discussion
Retrouvez les prix près de chez vous :  
Index du forum | Liste des membres | Liste des groupes | Inscription | F-A-Q | Recherche
Pseudo :    Password :     
23 039 membres enregistrés - 1 896 564 posts - 97 408 topics
Index des forums FH  | Index des forums DegroupNews
      Programmation
           [PHP][resolu] comment identifier un utilisateur ?
11 connectés(record : 207 le 05 juin 2007 - 05 h 23)

Vous devez vous connecter pour répondre au topic.
[PHP][resolu] comment identifier un utilisateur ?

fanfouer
Paysan completement ADSLisé

Messages : 1 154
Inscrit le 04/01/05
Ville : annecy
Non connecté
  Posté le 10 avril 2005 - 17 h 43 m 32 s
bonjour!! je cherche actuellement a "identifier" un utilisateur à l'aide de .htaccess. Pas du point de vue l'authentification mais plutôt de marquer sur la page "bienvenue untel..." grace a ce mode de protection.
Pour vous donner un exemple, après m'être identifié sur le serveur SQL de free, il me marque sur la page mon nom d'utilisateur@ip du serveur. Comment le reproduire ?

edit : la finalité de la chose est d'une part afficher son nom comme un authentification par formulaire et d'autre part lui attribuer certains privilèges (ou lui en enlever!! :D ). Donc si qqn connait la manière d'attribuer des privilège comme sur PHPmyadmin qu'il le fasse savoir! 8)


Message édité 2 fois, la dernière par fanfouer le 24 mai 2005 - 19 h 38.

-- // Observatoire ADSL by fanfouer // --
http://www.infos-reseaux.com


grabber
Coordinateur
MacBook Pro 2,4 Powered

Messages : 8 590
Inscrit le 06/03/02
Ville : Angers
Non connecté
  Posté le 11 avril 2005 - 00 h 24 m 58 s
dans ton cas, je pense pas que le htaccess soit l'arme ideale. il serait plus efficace de creer une table utilisateur dans phpmyadmin avec une forme du genre :
id_utilisateur (int)
nom_utilisateur (char 20)
prenom_utilisateur (char 20)
login (char10)
password (char10)
acces_cat1 (bool)
acces_cat2 (bool)
...
acces_catN (bool)

de cette maniere, tu geres facilement dans ton admin tes droits utilisateurs.

pour l'authentifiaction, une simple requete sur ta table sur l'existence du login dans un 1er temps, puis sur la correspondance du login et du password te renverra les autres champs, a savoir le nom et le prenom de l'utilisateur qui vient de se connecter mais aussi de ses privileges.
derriere, pour afficher le nom, c tout con, tu prends ce que te ramene ta requete et tu l'affiches. pour l'ip, c'est une variable php donc pas besoin de chercher ca ou que ce soit ;)

si tu veux corser l'affaire, lors de l'authentification reussie, tu peux creer une session en rentrant le nom et le prenom de l'utilisateur en tant que variable de session, ainsi que les acces de l'utilisateur a telle ou telle section. derriere, l'interet et que si quelqu'un essaye, au lieu de passer par ton formulaire d'identification de rentrer direct sur ton interface "pseudo securisee" par un lien direct, en testant en chaque debut de page avant tout affichage l'existence des variables de session, ben tu peux eviter que l'acces soit permis ;)

exemple :

ton formulaire d'authentification est index.php, si l'acces est ok, tu renvois sur home.php, ok ?
dans le 1er cas, sans session, un type trouve ton lien home.php dans google, il clique dessus, il rentre sur ton interface securisee sans s'etre logge ! aberant :@

avec session maintenant : le type clique sur le meme lien dans google, mais toi dans ta page home.php, tu test si les variables de session sont presentes. 2 cas, elles sont presentes donc l'utilisateur s'est bien logge, tu connais son nom son prenom et ses privileges. si dans lecas inverse, les variables de session n'existent pas, ben le type a voulu passer en direct et tu le jette ! la ca commence a etre correct et tu vas repousser le chaland :)

bon ca a l'air con comme ca, mais c'est tres utile :jap:

bon courage !

@+

edit : correction de fôtes :) desole je corrige pas tou g une epaule hs, j'en chie avec une seule main :(


Message édité 1 fois, la dernière par grabber le 11 avril 2005 - 00 h 27.

:firefox:

fanfouer
Paysan completement ADSLisé

Messages : 1 154
Inscrit le 04/01/05
Ville : annecy
Non connecté
  Posté le 11 avril 2005 - 13 h 04 m 51 s
désolé mais j'aime mieu utiliser .htaccess car je le trouve plus simple et plus sécurisant 8) . J'iameri donc connaitre la méthose pour identifier un utilisateur.
Merci quand meme pour la réponse qui, je doit dire est plus que complete!! :D



-- // Observatoire ADSL by fanfouer // --
http://www.infos-reseaux.com


grabber
Coordinateur
MacBook Pro 2,4 Powered

Messages : 8 590
Inscrit le 06/03/02
Ville : Angers
Non connecté
  Posté le 12 avril 2005 - 00 h 35 m 52 s
sachant que tu ne pourras pas mettre le nom et le prenom dans le htaccess mais seulemtent le nom d'utilisateur et le password, il devient impossible de faire ce que tu veux faire.

enfin je pense...



:firefox:

Erel69
206
(¯`·.__[T3aM.L1b3rTe©]__.·´¯)

Messages : 19 449
Inscrit le 07/11/01
Ville : Lyon
Non connecté
  Posté le 12 avril 2005 - 12 h 40 m 33 s
Attention ! Il ne faut pas confondre la protection par .htaccess et
l'authentification http

.htaccess
Avec cette méthode, tu peux (entre autres) définir un couple login/password qui permet de protéger tes pages, en obligeant l'utilisateur à donner un login et un password

authentification http
Là, c'est différent, tu utilises une méthode afin de récupérer le login et le mot de passe de l'utilisateur. Ensuite c'est à toi de voir si les informations sont bonnes, car ce ne sont pas celle du .htaccess

Exemples (tirés de la doc php) :

Exemple 16-1. Exemple d'authentification HTTP
<?php
if (!isset($_SERVER['PHP_AUTH_USER'])) {
header('WWW-Authenticate: Basic realm="My Realm"');
header('HTTP/1.0 401 Unauthorized');
echo 'Texte utilis&eacute; si le visiteur utilise le bouton d\'annulation';
exit;
} else {
echo "<p>Bonjour, {$_SERVER['PHP_AUTH_USER']}.</p>";
echo "<p>Votre mot de passe est {$_SERVER['PHP_AUTH_PW']}.</p>";
}
?>

Exemple 16-2. Authentification HTTP avec nom d'utilisateur/mot de passe forcé
<?php
function authenticate() {
header('WWW-Authenticate: Basic realm="Test Authentication System"');
header('HTTP/1.0 401 Unauthorized');
echo "Vous devez entrer un identifiant et un mot de passe valide pour acc&eacute;der
&agrave; cette ressource.n";
exit;
}

if (!isset($_SERVER['PHP_AUTH_USER']) || ($_POST['SeenBefore'] == 1 && $_POST['OldAuth'] == $_SERVER['PHP_AUTH_USER'])) {
authenticate();
}
else {
echo "<p>Welcome: {$_SERVER['PHP_AUTH_USER']}<br>";
echo "Old: {$_REQUEST['OldAuth']}";
echo "<form action='{$_SERVER['PHP_SELF']}' METHOD='POST'>\n";
echo "<input type='hidden' name='SeenBefore' value='1'>\n";
echo "<input type='hidden' name='OldAuth' value='{$_SERVER['PHP_AUTH_USER']}'>\n";
echo "<input type='submit' value='Re Authenticate'>\n";
echo "</form></p>\n";
}
?>


Extrait de la doc :

es fonctions d'authentification HTTP de PHP ne sont disponibles que si PHP est exécuté comme module Apache, et non pas sous la forme d'un CGI. Sous cette forme, il est possible d'utiliser la fonction header() pour demander une authentification ("Authentication Required" ) au client, générant ainsi l'apparition d'une fenêtre de demande d'utilisateur et de mot de passe. Une fois que les champs ont été remplis, l'URL sera de nouveau appelée, avec les variables $PHP_AUTH_USER, $PHP_AUTH_PW et $PHP_AUTH_TYPE contenant respectivement le nom d'utilisateur, le mot de passe et le type d'authentification. Actuellement, seule l'authentification simple ("Basic") est supportée. Reportez-vous à la fonction header() pour plus d'informations.


Mais le mieux, c'est encore de lire la doc



Obscurité au-delà du crépuscule, pourpre au-delà du sang qui coule, enfoui dans le flot du temps, en ton haut nom, je jure fidélité à l'obscurité. Que les fous qui se dressent devant nous soient détruits, par le pouvoir que toi et moi possédons...

fanfouer
Paysan completement ADSLisé

Messages : 1 154
Inscrit le 04/01/05
Ville : annecy
Non connecté
  Posté le 12 avril 2005 - 18 h 16 m 23 s
oui, je suis d'accord mais moi ce que je veux c'est identifier, pas donner son nom et son prénom mais juste deja que mon script me donne son login et vu que peu de personne ont accès a la partie protégée il m'est facile de les repertorier dans une BDD, par un script un utilisateur par la protection en .htacess (la protection par http m'était encore incnnue et le post d'erel m'aura au moin permi de la connaitre! :bla: ).
Par rapport a ce que dit grabber, l'opération est forcement possible (vu que ma page de phpmyadmin me l'affiche et même la page de stats de mon espace perso me dit quels utilisateurs se sont connectés).

Voila, vous savez tout!


Message édité 1 fois, la dernière par fanfouer le 12 avril 2005 - 18 h 18.

-- // Observatoire ADSL by fanfouer // --
http://www.infos-reseaux.com


Erel69
206
(¯`·.__[T3aM.L1b3rTe©]__.·´¯)

Messages : 19 449
Inscrit le 07/11/01
Ville : Lyon
Non connecté
  Posté le 12 avril 2005 - 20 h 09 m 09 s
Et bien, à quoi crois-tu que servent PHP_AUTH_USER et PHP_AUTH_PW ?

PHP_AUTH_USER
Lorsque vous utilisez PHP avec Apache en tant que module faisant une identification HTTP, cette variable est définie à l'utilisateur fourni par l'utilisateur.

PHP_AUTH_PW
Lorsque vous utilisez PHP avec Apache en tant que module faisant une identification HTTP, cette variable est définie au mot de passe fourni par l'utilisateur.



Obscurité au-delà du crépuscule, pourpre au-delà du sang qui coule, enfoui dans le flot du temps, en ton haut nom, je jure fidélité à l'obscurité. Que les fous qui se dressent devant nous soient détruits, par le pouvoir que toi et moi possédons...

Erel69
206
(¯`·.__[T3aM.L1b3rTe©]__.·´¯)

Messages : 19 449
Inscrit le 07/11/01
Ville : Lyon
Non connecté
  Posté le 12 avril 2005 - 20 h 09 m 41 s
Je parle bien sûr de $_SERVER['PHP_AUTH_USER'] et $_SERVER['PHP_AUTH_PW']



Obscurité au-delà du crépuscule, pourpre au-delà du sang qui coule, enfoui dans le flot du temps, en ton haut nom, je jure fidélité à l'obscurité. Que les fous qui se dressent devant nous soient détruits, par le pouvoir que toi et moi possédons...

grabber
Coordinateur
MacBook Pro 2,4 Powered

Messages : 8 590
Inscrit le 06/03/02
Ville : Angers
Non connecté
  Posté le 12 avril 2005 - 20 h 58 m 24 s


Le 12 avril 2005 - 18 h 16, fanfouer a écrit :
oui, je suis d'accord mais moi ce que je veux c'est identifier, pas donner son nom et son prénom mais juste deja que mon script me donne son login et vu que peu de personne ont accès a la partie protégée il m'est facile de les repertorier dans une BDD, par un script un utilisateur par la protection en .htacess (la protection par http m'était encore incnnue et le post d'erel m'aura au moin permi de la connaitre! :bla: ).
Par rapport a ce que dit grabber, l'opération est forcement possible (vu que ma page de phpmyadmin me l'affiche et même la page de stats de mon espace perso me dit quels utilisateurs se sont connectés).

Voila, vous savez tout!


dans ton 1er post tu dis que tu veux sortir un truc du genre "bonjour machin", donc exprimes toi mieux !!!
pour moi machin c'est pas un login mais plutot un nom ou un prenom, enfin bon, on s'est pas compris...
en tout cas, comme dit erel, tu ferais bien de chercher un peu, la doc est disponible et bien fournie, c'est pas tres complique d'aller sur google ou sur php.net...



:firefox:

fanfouer
Paysan completement ADSLisé

Messages : 1 154
Inscrit le 04/01/05
Ville : annecy
Non connecté
  Posté le 13 avril 2005 - 17 h 18 m 49 s
okay, c'est bon j'ai réussi a faire ce que je voulai : marqué le login de htaccess sur ma page...
merci a tous :D



-- // Observatoire ADSL by fanfouer // --
http://www.infos-reseaux.com


iraysyvalo
-

Messages : 9 647
Inscrit le 19/11/02
Ville : Lyon
Non connecté
  Posté le 14 avril 2005 - 09 h 37 m 42 s


Le 13 avril 2005 - 17 h 18, fanfouer a écrit :
okay, c'est bon j'ai réussi a faire ce que je voulai : marqué le login de htaccess sur ma page...
merci a tous :D


Et la moindre des choses est aussi d'exposer le moyen que tu as utilise, c'est pour ca que c'est un forum ...




Pour un ban rapide et garanti sur ce forum, argumentez vos posts, dites simplement la verite, parlez de la realite et les leche-culs d'un cote et les maniaques du ban de l'autre se feront un plaisir de vous envoyer au purgatoire aussi sec.


Jean.loup


Messages : 1
Inscrit le 24/05/05
Non connecté
  Posté le 24 mai 2005 - 00 h 21 m 18 s
Bonsoir à tous,
Oui Fanfouer, j'aimerais bien connaître ta soluce.
Merci de la montrer à tous !
Bonne soirée.




fanfouer
Paysan completement ADSLisé

Messages : 1 154
Inscrit le 04/01/05
Ville : annecy
Non connecté
  Posté le 24 mai 2005 - 12 h 35 m 27 s
OOOOps... toutes mes exuses pour cet oubli... :jap:
Un code vau mieu qu'un long discourt donc voici la soluce :
    Code php    
 1. <?
 2. //on commence par récupérer quelques infos : 
 3. $user = $_SERVER['PHP_AUTH_USER'];//le nom d'utilisateur entré
 4. $requete_user = mysql_query("SELECT * FROM users WHERE login='$user'");//on cherche dans la table des users (ce n'est pas obligatoire, j'utilise ca pour avoir des infos suplémentaires sur l'utilisateur, rien de plus)
 5. $infos_user = mysql_fetch_array($requete_user);//on crée un array avec les résultats de la requete
 6. $groupe = $infos_user['groupe'];//on récupère le groupe dans l'array
 7. if($groupe == "administrateur" OR $groupe == "membres"){
 8. 	$couleur_texte = 'green';//defini la couleur de texte qui devra etre affiché
 9. } else {
10. 	$couleur_texte = 'orange';//IDEM
11. }
12. $statut = $infos_user['statut'];
13. //après, j'affiche un texte résumant tous sur l'utilisateur en haut de page...
14. echo "authentifié en tant que <strong>$user <font color=\"$couleur_texte\">$groupe</strong></font> - $statut   <a href=\"http://lacombe.f1.free.fr\"><span class=\"verdana-10px-noir\"><strong>(deconnexion</strong></span></a> - <a href=\"http://lacombe.f1.free.fr/ft/index.php?page=users&type=profil&user=$user\"><span class=\"verdana-10px-noir\"><strong>profil)</strong></span></a>"; 
15. ?>


edit : mon code n'est surement pas très clair ni meme très optimisé donc épargnez moi!! :D
autrement si vous avez des questions, je suis la



-- // Observatoire ADSL by fanfouer // --
http://www.infos-reseaux.com


mik69
Allez l'OL !

Messages : 1 282
Inscrit le 02/07/03
Ville : GRIGNY 69
Non connecté
  Posté le 24 mai 2005 - 13 h 46 m 55 s
:hello:

Tu peux directement connaitre le groupe auquel appartient cet user dans une seule requête..




fanfouer
Paysan completement ADSLisé

Messages : 1 154
Inscrit le 04/01/05
Ville : annecy
Non connecté
  Posté le 24 mai 2005 - 19 h 29 m 40 s


Le 24 mai 2005 - 13 h 46, mik69 a écrit :

Tu peux directement connaitre le groupe auquel appartient cet user dans une seule requête..


Heu.... tu peut m'expliquer la car je ne vois qu'une seule requete dans mon script lol! :D



-- // Observatoire ADSL by fanfouer // --
http://www.infos-reseaux.com


mik69
Allez l'OL !

Messages : 1 282
Inscrit le 02/07/03
Ville : GRIGNY 69
Non connecté
  Posté le 24 mai 2005 - 19 h 38 m 43 s
    Code php    
1. 
2. SELECT * FROM USERS U, GROUPE G
3. WHERE login='$user'
4. AND U.id_user=G.id_user


Peut-être que je me trompe..

Tient, un bug, le mot clé SELECT n'apparaît pas. La fin de la requête non plus :(



SELECT * FROM USERS U, GROUPE G
WHERE login='$user'
AND U.id_user=G.id_user


Message édité 3 fois, la dernière par mik69 le 24 mai 2005 - 19 h 40.


fanfouer
Paysan completement ADSLisé

Messages : 1 154
Inscrit le 04/01/05
Ville : annecy
Non connecté
  Posté le 24 mai 2005 - 19 h 41 m 03 s
oui mais la je ne pense pas que ce soit bon car je l'utilise en suite ma valuer de groupe... et je ne peut pas



-- // Observatoire ADSL by fanfouer // --
http://www.infos-reseaux.com


mik69
Allez l'OL !

Messages : 1 282
Inscrit le 02/07/03
Ville : GRIGNY 69
Non connecté
  Posté le 24 mai 2005 - 19 h 42 m 43 s
En faisant un select * tu recuperes toutes les valeurs... :chepa:

Mais si ça marche tant mieux ;)




fanfouer
Paysan completement ADSLisé

Messages : 1 154
Inscrit le 04/01/05
Ville : annecy
Non connecté
  Posté le 24 mai 2005 - 19 h 43 m 57 s
oui oui ca marche mais merci de ton aide



-- // Observatoire ADSL by fanfouer // --
http://www.infos-reseaux.com


Page genérée en 1.2135 secondes par RahForum 2.0 | Gzip off |  Stats |  Metaforums |  RSS
© 2004 Cerbere Systems.
Prix Matériel Informatique | Informatique Lyon | Informatique Grenoble | Informatique Annecy | Informatique Marseille | Informatique Bordeaux | Forum Informatique
ADSL |Actualité ADSL | e-commerce | Commande Au Volant
Creative Commons
Message Boards and Forums Directory