Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1429 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Acces à la partie membre de mon site

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Acces à la partie membre de mon site

n°1123265
karinou
Posté le 17-06-2005 à 15:13:57  profilanswer
 

Reuuuh les gens!!  
Encore et toujours moi... Un jour, faudrait que je pense à arreter la prog j'y comprend vraiment rien.
Bon donc je suis en train de faire un site Intranet et la je suis en train de bosser sur le connexion à la partie admin, j'ai donc une page avec un formulaire qui me renvoi vers une page pageauthentification.php, dont voici le code :

Code :
  1. <?php
  2. session_start();
  3. include(dirname(__FILE__).'/include/connexion.php');
  4. echo '
  5. <h1>[ CONNEXION ]</h1><br /><br />';
  6. $PHP_AUTH_USER= $_POST["login"];
  7. $PHP_AUTH_PW= $_POST["password"];
  8. $query = "SELECT idUtil, loginUtil, passUtil FROM utilisateur";
  9. $result = mysql_query($query);
  10. while ($row = mysql_fetch_row){
  11. $idU = $row[0];
  12. $login = $row[1];
  13. $pass = $row[2];
  14. if (($PHP_AUTH_USER==$login) && ($PHP_AUTH_PW==$pass)) {
  15.  $member = $idU;
  16.      session_register('member');
  17.    
  18.  redirect('indexAdmin.php','Votre identification sur le site Intranet s\'est séroulée avec succès',3);
  19. }
  20. }
  21. redirect('identification.php','Votre identifiant ou votre mot de passe n\'est pas valide',2);
  22. include(dirname(__FILE__).'/include/deconnexion.php');
  23. ?>


 
J'ai une table contenant les infos sur mes utilisateurs. Pour l'instant, je n'ai pas crypté le mot de passe donc tout est en clair, c'est normal, ne vous inquietez pas.
Donc la mon soucis est que je dois avoir un soucis de boucle quelque part, car lors de la véris de mon login/identifiant la page charge un bon moment puis j'ai ce joli message : Fatal error: Maximum execution time of 30 seconds exceeded in /var/www/html/Intranet/admin/pageauthentification.php on line 19
Mais qu'est ce qui ne vas pas dans ma page????????????
 
HELP, I need somebody, HELP  :hello:

mood
Publicité
Posté le 17-06-2005 à 15:13:57  profilanswer
 

n°1123266
micfont999
Simplement Moi
Posté le 17-06-2005 à 15:17:31  profilanswer
 

T'en aurai pas oublié un bout??  

Code :
  1. $query = "SELECT idUtil, loginUtil, passUtil FROM utilisateur";
  2. $result = mysql_query($query);
  3. while ($row = mysql_fetch_row($result)){


 
Je parle du $result dans le fetch_row


Message édité par micfont999 le 17-06-2005 à 15:18:04
n°1123269
karinou
Posté le 17-06-2005 à 15:18:51  profilanswer
 

siiiiiiiiiiiiii je venais reposter pour m'excuser de ma connerie, amis ta été plus rapide que moi rooh je suis vraiment une grosse boulette!! Vraiment désolée du dérangement

n°1123270
micfont999
Simplement Moi
Posté le 17-06-2005 à 15:19:48  profilanswer
 

karinou a écrit :

siiiiiiiiiiiiii je venais reposter pour m'excuser de ma connerie, amis ta été plus rapide que moi rooh je suis vraiment une grosse boulette!! Vraiment désolée du dérangement


 
MDR pas grave, c'est en faisant des boulette qu'on deviens boulettier..  :sweat:  lol j'aurais pas détourné un peu la phrase la??  :whistle:

n°1123271
Surfoo
Ça va ? ok.
Posté le 17-06-2005 à 15:20:48  profilanswer
 

Euh pourquoi tu ne fais pas un SELECT FROM WHERE au lieu de regarder dans toute ta table ?
 
Exemple :
$query = "
SELECT idUtil, loginUtil, passUtil  
FROM utilisateur
WHERE loginUtil=$_POST["login"] AND passUtil=$_POST["password"]";
 
C'est quand même beaucoup moins lourd et plus simple...
 
A toi de revoir la suite du code avec cette requête :)

n°1123272
karinou
Posté le 17-06-2005 à 15:20:55  profilanswer
 

Par contre, juste un truc, comment faire pour arreter le programme et la lecture de la base des qu'il a trouvé un login et un mot de passe connu. style un break ou un stop, ya quoi en php pour faire ca???

n°1123277
micfont999
Simplement Moi
Posté le 17-06-2005 à 15:21:44  profilanswer
 

Après ton test si c'est bon,  
exit;


Message édité par micfont999 le 17-06-2005 à 15:22:01
n°1123279
karinou
Posté le 17-06-2005 à 15:22:26  profilanswer
 

Surfoo a écrit :

Euh pourquoi tu ne fais pas un SELECT FROM WHERE au lieu de regarder dans toute ta table ?
 
Exemple :
$query = "
SELECT idUtil, loginUtil, passUtil  
FROM utilisateur
WHERE loginUtil=$_POST["login"] AND passUtil=$_POST["password"]";
 
C'est quand même beaucoup moins lourd et plus simple...
 
A toi de revoir la suite du code avec cette requête :)


 
Ha bah voila une solution qui viens repondre à la question que je viens de poser.
Merci beaucoup ;)

n°1123289
Surfoo
Ça va ? ok.
Posté le 17-06-2005 à 15:25:04  profilanswer
 

micfont999 a écrit :

Après ton test si c'est bon,  
exit;


 
Non.
 
exit; arête entièrement le script PHP.
Il faut utiliser break;

n°1123309
micfont999
Simplement Moi
Posté le 17-06-2005 à 15:32:16  profilanswer
 

Surfoo a écrit :

Non.
 
exit; arête entièrement le script PHP.
Il faut utiliser break;


 
Autant pour moi , désolé j'avais mal interpreté la question, merki d'avoir repris mon erreur..  :hello:

mood
Publicité
Posté le 17-06-2005 à 15:32:16  profilanswer
 

n°1123314
karinou
Posté le 17-06-2005 à 15:33:01  profilanswer
 

Par contre, j'ai encore un probleme, oui oui, ca doit encore etre un truc a la con pour vous mais moi j'ai trop de mal :  
 
J'ai donc ma page pageauthentification.php vue plus haut!
Cette page renvoie vers une page indexAdmin.php pour l'instant ne contenant que :  

Code :
  1. <?php
  2. session_start();
  3. include(dirname(__FILE__).'/include/connexion.php');
  4.     if ($member == 2) {
  5.  echo' connectéééééééééééééééééééééé';
  6.    
  7. }
  8.     else {
  9.         echo 'Il faut être identifié pour accéder à cette section';
  10.     }
  11. include(dirname(__FILE__).'/include/deconnexion.php');
  12. ?>


 
Le soucis est que je dois transmette sur chaque page ma variable $member, or je ne peux pas l'ecrire comme ca, vu que le member est different a chaque identifiant. Est ce qe je peux transmettre juste ma variable $member graca a un GET, mon identification est elle encore sécurisée??

n°1123315
FlorentG
Unité de Masse
Posté le 17-06-2005 à 15:33:39  profilanswer
 

Euh... Les variables de sessions, t'as déjà regardé ? :D

n°1123321
micfont999
Simplement Moi
Posté le 17-06-2005 à 15:36:21  profilanswer
 

FlorentG a écrit :

Euh... Les variables de sessions, t'as déjà regardé ? :D


 
+1

n°1123323
Surfoo
Ça va ? ok.
Posté le 17-06-2005 à 15:36:48  profilanswer
 

Variables de sessions, cookies... Tu as le choix :)

n°1123324
karinou
Posté le 17-06-2005 à 15:37:17  profilanswer
 

Heuuu oui.... et justement c'est ca mon probleme.... :$:$
j'ai essayé d'appliquer mais apparement, j'ai pas du comprendre grand chose, un coup de pousse??

n°1123328
Surfoo
Ça va ? ok.
Posté le 17-06-2005 à 15:39:27  profilanswer
 

*pousse karinou*

n°1123330
micfont999
Simplement Moi
Posté le 17-06-2005 à 15:39:42  profilanswer
 

karinou a écrit :

Heuuu oui.... et justement c'est ca mon probleme.... :$:$
j'ai essayé d'appliquer mais apparement, j'ai pas du comprendre grand chose, un coup de pousse??


 
Tu veux qu'on fasse le code à ta place.. ^^
http://www.phpcs.com/code.aspx?ID=23628 (désolé pour la pub d'un autre site hein)

n°1123341
karinou
Posté le 17-06-2005 à 15:45:44  profilanswer
 

roooooooooh J'ai jamasi demandé a ce que vous me fassiez mon code!!!
C'est juste que j'ai du me lire les paragraphes sur les variables de session depuis le debut de l'aprem environ 5/6 fois et que j'ai pas compris grand chose desoléee

n°1123346
Surfoo
Ça va ? ok.
Posté le 17-06-2005 à 15:48:31  profilanswer
 

http://phpdebutant.org/article69.php
 
Tu devrais y arriver avec ça et en faisant concretement les exemples proposés.

n°1123388
karinou
Posté le 17-06-2005 à 16:07:16  profilanswer
 

Bon bah, je suis vraiment désolée mais j arrive vraiment pas

Code :
  1. <?php
  2. session_start();
  3. include(dirname(__FILE__).'/include/connexion.php');
  4. echo '
  5. <h1>[ CONNEXION ]</h1><br /><br />';
  6. $loginOK = false// cf Astuce
  7. // On n'effectue les traitement qu'à la condition que  
  8. // les informations aient été effectivement postées
  9. if ( isset($_POST) && (!empty($_POST['login'])) && (!empty($_POST['password'])) ) {
  10. $loginU = trim ($_POST['login']);
  11.   extract($_POST);  // je vous renvoie à la doc de cette fonction
  12.   // On va chercher le mot de passe afférent à ce login
  13.   $sql = "SELECT idUtil, passUtil, emailUtil FROM utilisateur WHERE loginUtil = '$loginU'";
  14.   $req = mysql_query($sql) or die('Erreur SQL : <br />'.$sql);
  15.  
  16.   // On vérifie que l'utilisateur existe bien
  17.   if (mysql_num_rows($req) > 0) {
  18.      $data = mysql_fetch_assoc($req);
  19.    
  20.     // On vérifie que son mot de passe est correct
  21.     if ($password == $data['mdp']) {
  22.       $loginOK = true;
  23.     }
  24.   }
  25. }
  26. // Si le login a été validé on met les données en sessions
  27. if ($loginOK) {
  28.   $_SESSION['idUtil'] = $data['idUtil'];
  29.   $_SESSION['emailUtil'] = $data['emailUtil'];
  30.   $_SESSION['loginUtil'] = $data['loginUtil'];
  31.     redirect('indexAdmin.php','Votre identification sur le site Intranet s\'est séroulée avec succès',3);
  32. }
  33. else {
  34.   echo 'Une erreur est survenue, veuillez réessayer !';
  35.   redirect('identification.php','Votre identifiant ou votre mot de passe n\'est pas valide',2);
  36. }
  37. include(dirname(__FILE__).'/include/deconnexion.php');
  38. ?>


Message édité par karinou le 17-06-2005 à 16:07:30
n°1123391
FlorentG
Unité de Masse
Posté le 17-06-2005 à 16:09:02  profilanswer
 

T'arrive pas à quoi ?

n°1123392
Surfoo
Ça va ? ok.
Posté le 17-06-2005 à 16:09:28  profilanswer
 

En 15min tu as le temps de tout comprendre convenablement ?  
 
Recommence et relit bien tout.
Et ne fais pas de copier coller de code, ré ecris le tu apprendras bien mieux (même si c'est chiant au début)
 
va voir sur nexen pour une explication détaillée des fonctions aussi.

n°1123396
Surfoo
Ça va ? ok.
Posté le 17-06-2005 à 16:11:49  profilanswer
 

euh :
 
$data['mdp']
 
ya pas 'mdp' dans la rêquete...

n°1123398
FlorentG
Unité de Masse
Posté le 17-06-2005 à 16:12:27  profilanswer
 

Ouais, ne soit pas pressée comme ça, il faut faire les choses calmement, et bien les comprendre, sinon bonjour la catastrophe...

n°1123404
karinou
Posté le 17-06-2005 à 16:14:44  profilanswer
 

Bah je comprend pas ce qu'on transmet dans les vraiables de session la par exemple dans le lien que m'a passé surfoo je ne comprend pas on ne transmet pas le login!!
 
Je me suis tappée des sites qui parlaient des sessions et des espaces admin tout l'aprem, je pete un cable la, c'est vraiment du chinois pour moi tout ca, et puis en plus de ca personne n'a réussit a me resoudre mon probleme de checkbox quelques posts plus bas!  donc la je me retrouve bloquée des 2 cotés sniff sniff!! Dans 45 minutes, je debauche je reprendrais cette daube à tete reposée lundi matin!!
Merci quand meme les gens et bon we!!!!


Message édité par karinou le 17-06-2005 à 16:18:30
n°1123409
karinou
Posté le 17-06-2005 à 16:18:01  profilanswer
 

Surfoo a écrit :

euh :
 
$data['mdp']
 
ya pas 'mdp' dans la rêquete...


 
C'est quoi ce tableau $data[], on y est moi a l'interieur? je ne comprend pas pkoi il faut mettre un tableau dans une variable de session, si j'ai un peu suivi les variables de session contiennent les infos d'un utilisaeur donc pkoi un tableau pour un variable!!   :??:  :??:  :??:

n°1123411
FlorentG
Unité de Masse
Posté le 17-06-2005 à 16:20:23  profilanswer
 

Tu mélanges tout :D
Regarde :

$data = mysql_fetch_assoc($req);


C'est juste un fetch_assoc de la requête pour trouver le mot de passe dans la base...

n°1123412
karinou
Posté le 17-06-2005 à 16:21:27  profilanswer
 

et ca c'est quoi alors???

Code :
  1. // Si le login a été validé on met les données en sessions  
  2. if ($loginOK) {
  3.   $_SESSION['idUtil'] = $data['idUtil'];
  4.   $_SESSION['emailUtil'] = $data['emailUtil'];
  5.   $_SESSION['loginUtil'] = $data['loginUtil'];


Message édité par karinou le 17-06-2005 à 16:21:42
n°1123414
FlorentG
Unité de Masse
Posté le 17-06-2005 à 16:24:03  profilanswer
 

Ben il reprend des machins de la ligne qui correspond au mot de passe et les fout dans des variables de session. Il a donc une table avec plusieurs champs : id, email, login et mot de passe. Bref, hésite pas à tout lire :D

n°1123419
karinou
Posté le 17-06-2005 à 16:28:28  profilanswer
 

bon bah cette conversation me fait deprimer sur ma nullité dans le domaine, j'ai toujours pas compris ce que c'etait ce data[], mais pas grave t'embette pas je verrai ca lundi!
En tout cas merci beaucoup de te prendre la tete pour essayer de me faire capter cette affaire bon we

n°1123427
FlorentG
Unité de Masse
Posté le 17-06-2005 à 16:32:45  profilanswer
 

Il fait une requête sur la base de donnée. Il récupère les données d'un utilisateur, qu'il stocke dans $data !
C'est la ligne :

$data = mysql_fetch_assoc($req);


Sachant que mysql_fetch_assoc retourne un tableau. Donc dans $data, il a tout ses champs avec les valeurs associées. Et toutes ces valeurs, il les recopie dans le tableau de session

n°1125006
karinou
Posté le 20-06-2005 à 10:11:57  profilanswer
 

Bonjour les gens,  
J'ai refait mon identification, elle fonctionne, je souhaiterai maintenant un peu l'optimiser et savoir si elle est sécurisée ou pas!
J'ai une partie qui ne me plait pas trop dans la page indexAdmin.php, isEmpty est une fonction permettant de savoir si la variable est vide ou pas. Une facon de voir si un personne est identifiée ou pas avant d'acceder à une page de l'admin est de vérifier si les variables de session sont vides ou pas. Il doit certainement y avoir mieux!!J'attend vos conseils!
La page de formulaire : identification.php

Code :
  1. <?php
  2. include(dirname(__FILE__).'/include/connexion.php');
  3. echo '
  4. <h1>[ CONNEXION ]</h1><br /><br />
  5. <form action="pageauthentification.php" method=post> <p style={text-align:"center";>
  6. Identifiant :
  7. <input type="text" name="login" size="20" maxlength="40"><br /><br />
  8. Mot de passe :
  9. <input type="password" name="password" size="20" maxlength="40"><br /><br /><br /><br />
  10. <a href="" class="lien"> J\'ai oublié mon mot de passe?</a> <br /><br /><br /><br />
  11.  <input type="submit" value="Connexion >>"></p>
  12. </form>';
  13. include(dirname(__FILE__).'/include/deconnexion.php');
  14. ?>


 
Pouvez vous me dire si ma connexion est bien sécurisée, qu'est ce que je peux améliorer??
 
Merci par avance, karine
 
La page de vérification : pageauthentification.php

Code :
  1. <?php
  2. session_start();
  3. include(dirname(__FILE__).'/include/connexion.php');
  4. echo '
  5. <h1>[ CONNEXION ]</h1><br /><br />';
  6. $loginOK = false// cf Astuce
  7. // On n'effectue les traitement qu'à la condition que  
  8. // les informations aient été effectivement postées
  9. if ( isset($_POST) && (!isEmpty($_POST['login'])) && (!isEmpty($_POST['password'])) ) {
  10. $loginU = trim ($_POST['login']);
  11.   extract($_POST);  // je vous renvoie à la doc de cette fonction
  12.   // On va chercher le mot de passe afférent à ce login
  13.   $sql = "SELECT idUtil, loginUtil, passUtil, emailUtil FROM utilisateur WHERE loginUtil = '$loginU'";
  14.   $req = mysql_query($sql) or die('Erreur SQL : <br />'.$sql);
  15.  
  16.   // On vérifie que l'utilisateur existe bien
  17.   if (mysql_num_rows($req) > 0) {
  18.      $data = mysql_fetch_assoc($req);
  19.    
  20.     // On vérifie que son mot de passe est correct
  21.     if ($password == $data['passUtil']) {
  22.       $loginOK = true;
  23.     }
  24.   }
  25. }
  26. // Si le login a été validé on met les données en sessions
  27. if ($loginOK) {
  28.   $_SESSION['idUtil'] = $data['idUtil'];
  29.   $_SESSION['emailUtil'] = $data['emailUtil'];
  30.   $_SESSION['loginUtil'] = $data['loginUtil'];
  31.     redirect('indexAdmin.php','Votre identification sur le site Intranet s\'est déroulée avec succès',3);
  32. }
  33. else {
  34.   echo 'Une erreur est survenue, veuillez réessayer !';
  35.   redirect('identification.php','Votre identifiant ou votre mot de passe n\'est pas valide',2);
  36. }
  37. include(dirname(__FILE__).'/include/deconnexion.php');


et enfin la page d'acceuil affichée une fois la connexion faite, indexAdmin.php:  
 

Code :
  1. <?php
  2. session_start();
  3. include(dirname(__FILE__).'/include/connexion.php');
  4.   $idU = $_SESSION['idUtil'];
  5.   $emailU = $_SESSION['emailUtil'];
  6.   $loginU = $_SESSION['loginUtil'];
  7.  
  8. echo 'id U '.$idU.' mail : '.$emailU.' login : '.$loginU;
  9.     if (!(isEmpty($idU)) || !(isEmpty($emailU)) || !(isEmpty($loginU))){
  10.  echo' connectéééééééééééééééééééééé';
  11.    
  12. }
  13.     else {
  14.         echo 'Il faut être identifié pour accéder à cette section';
  15.     }
  16. include(dirname(__FILE__).'/include/deconnexion.php');
  17. ?>



Message édité par karinou le 20-06-2005 à 10:15:04
n°1125279
karinou
Posté le 20-06-2005 à 15:30:28  profilanswer
 

Alors svp personne ne peut dire xi mon identification est coorecte ou pas?

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Acces à la partie membre de mon site

 

Sujets relatifs
Violation d'accès à l'adresse ...Problème chargement menu en .swf sur site en php
questions sur la réalisation d'un site commercial[html/css] Preparation de site
Importer site tomcat sous Eclipsecherche layout php pour site assez simple...
Voir le php d'un site??[C++]Existe t-il une fonction récupérant une partie d'un string?
creer un site marchandProbléme jai du mal mon site et mon forum
Plus de sujets relatifs à : Acces à la partie membre de mon site


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR