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

  FORUM HardWare.fr
  Programmation
  PHP

  Plusieurs login pour redirection différentes

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Précédente
Auteur Sujet :

Plusieurs login pour redirection différentes

n°1078741
touik's
Posté le 11-05-2005 à 01:23:57  profilanswer
 

Bonjour à tous,
 
J'essaye de faire en sorte que dans mon formulaire, chaque login redirige l'utilisateur vers une page propre à ce login, à la connexion.
Voici le code que j'utilise:

Code :
  1. if ($utilisateur) {
  2.     session_register("authentif" );
  3.  $_SESSION['login'] = $row_verif['login'];
  4.   if ($login='test1' || $pass='test1')
  5.   {
  6.   header("Location:test1.php" );
  7.   }
  8.   else if ($login='test2' || $pass='test2')
  9.   {
  10.   header("Location:test2.php" );
  11.   }
  12.   else if($login='test3' || $pass='test3')
  13.   {
  14.   header("Location:test3.php" );
  15.   }
  16.  }
  17. else {
  18.  header("Location:index.php?page=log" );
  19.           }


 
quoi que je mette comme login/mdp, ça me redirige toujours vers test1.php. Dois utiliser un switch()? si oui comment?
 
Autre question, pour faire un bouton de déconnexion une fois sur la page voulue, est ce qu'un input nommé "destroy" est suffisant et si oui, que dois je mettre dans "action"?

Code :
  1. <form action='' method='post'>
  2. <input type='submit' VALUE='Se deconnecter' NAME='DESTROY'>
  3. </form>


 
Merci beaucoup d'avance!

mood
Publicité
Posté le 11-05-2005 à 01:23:57  profilanswer
 

n°1078745
naceroth
Posté le 11-05-2005 à 02:05:45  profilanswer
 

1. Forcément, il n'y a pas de tests dans ta condition, juste 2 affectations (répète après moi : = est une affectation == une comparaison simple === une comparaison sur les valeurs et les types). De plus, mettre chaque condition entre parenthèses toujours utile :)
 
Bref :

Code :
  1. if (($login == 'machin') && ($login == 'truc')){...


 
(en passant, pourquoi un ou dans cette condition, c'est pas un et logiquement ?)
 
2. Oui, mais je mettrais un input hidden avec le sid en plus, histoire d'être sûr que le gars n'atterit pas sur la page de déconnection par accident. Et pour l'action, ben, la page qui va déconnecter :)

n°1078754
Friday Mon​day
Trop de hérissons écrasés...
Posté le 11-05-2005 à 02:27:13  profilanswer
 

touik's a écrit :


J'essaye de faire en sorte que dans mon formulaire, chaque login redirige l'utilisateur vers une page propre à ce login, à la connexion.
Voici le code que j'utilise:


 
En plus des corrections apportées ci-dessus (oui c'est un && et non un || qu'il faut utiliser), j'ajoute que ce code pue la mort : en effet, si tu as 50 users, tu ne vas pas t'amuser à faire 50 if imbriqués (l'horreur).
 
=> Utilise donc un tableau ou mieux, utilise ta table user (login, pass) pour ajouter un champ contenant la page d'arrivée, tu n'auras plus qu'une requete SELECT pagelogin FROM user WHERE login='$login' AND pass='$pass'

n°1078767
esox_ch
Posté le 11-05-2005 à 07:28:23  profilanswer
 

Array() +1  
DB -1
 
Si c'est pour stoquer 3 login de ses potes il va pas mettre une base de donnée ... ça rajoutera des failles et vu son niveau vaut mieux rester simple


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1079588
touik's
Posté le 11-05-2005 à 15:19:55  profilanswer
 

Merci Naceroth, j'avais occulté ces histoires de égal, et j'ai confondu le || et le && ...
ça marche impec maintenant!
 

esox_ch a écrit :

Array() +1  
DB -1
 
Si c'est pour stoquer 3 login de ses potes il va pas mettre une base de donnée ... ça rajoutera des failles et vu son niveau vaut mieux rester simple


 
ben non justement, ya que 3 login et c'est pas pour mes potes, mais pour la municipalité de mon lieu de résidence, pour qu'ils se connectent à leur page de mise à jour  :sarcastic:  
 

Friday Monday a écrit :

En plus des corrections apportées ci-dessus (oui c'est un && et non un || qu'il faut utiliser), j'ajoute que ce code pue la mort : en effet, si tu as 50 users, tu ne vas pas t'amuser à faire 50 if imbriqués (l'horreur).


 
Bien sûr que je me serais pas amusée à faire ça si j'avais pas eu que 3 utilisateurs, puis vu mon niveau, moi je le trouve très bien  :p  

n°1079612
cesarr89
Posté le 11-05-2005 à 15:34:27  profilanswer
 

touik's a écrit :

Merci Naceroth, j'avais occulté ces histoires de égal, et j'ai confondu le || et le && ...
ça marche impec maintenant!
 
 
 
ben non justement, ya que 3 login et c'est pas pour mes potes, mais pour la municipalité de mon lieu de résidence, pour qu'ils se connectent à leur page de mise à jour  :sarcastic:  
 
 
 
Bien sûr que je me serais pas amusée à faire ça si j'avais pas eu que 3 utilisateurs, puis vu mon niveau, moi je le trouve très bien  :p


 
 
 :heink:  
 

n°1079613
cesarr89
Posté le 11-05-2005 à 15:34:46  profilanswer
 

Y'en a qui ont du mal à s'exprimer

n°1079624
touik's
Posté le 11-05-2005 à 15:38:17  profilanswer
 

cesarr89 a écrit :

Y'en a qui ont du mal à s'exprimer


Pourquoi? c'est clair ce que j'ai mis ...  :??:

n°1079626
cesarr89
Posté le 11-05-2005 à 15:39:22  profilanswer
 

Pas pour moi...peut être alors j'ai du mal à comprendre

n°1082628
h4cker
Posté le 13-05-2005 à 17:56:48  profilanswer
 

Et j'hallucine. Ya personne qui propose les "switch case"pour un cas pareil???

mood
Publicité
Posté le 13-05-2005 à 17:56:48  profilanswer
 

n°1082630
cesarr89
Posté le 13-05-2005 à 17:59:19  profilanswer
 

h4cker a écrit :

Et j'hallucine. Ya personne qui propose les "switch case"pour un cas pareil???


 
 
Pour 3 trucs ca marche aussi bien que avec les if, else if...

n°1082632
esox_ch
Posté le 13-05-2005 à 18:00:28  profilanswer
 

h4cker a écrit :

Et j'hallucine. Ya personne qui propose les "switch case"pour un cas pareil???


 
Non et heureusement d'ailleurs


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1082634
cesarr89
Posté le 13-05-2005 à 18:01:13  profilanswer
 

esox_ch a écrit :

Non et heureusement d'ailleurs


 
Pourquoi?
 

n°1082648
esox_ch
Posté le 13-05-2005 à 18:09:18  profilanswer
 

Pask c'est stupide, avec un array on peut faire 10x plus leger et plus dynamique


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1082651
cesarr89
Posté le 13-05-2005 à 18:10:04  profilanswer
 

Ah ok, je pensais que c'était pour autre chose.

n°1082662
pmusa
&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;
Posté le 13-05-2005 à 18:18:49  profilanswer
 

eh s'il vous plait les grands, vous pouvez me montrer un exemple avec un array?  :)  
je sais comment ça marche mais j'aimerai beneficier d'un exemple, avec votre aimable concourt, histoire de voir comment ça se presente et comment c'est structuré. J'entend beaucoup parler de l'alternative "array()" par rapports aux db, ça me permettrai de me faire une idée...
 
merci. :hello:

n°1083001
esox_ch
Posté le 14-05-2005 à 07:48:56  profilanswer
 

$meslogins = array('login1'=>'mdp1',...);
 
Ou (plus "sale" a mon avi, mais plus facile a mettre a jour) tu peux faire ça avec $meslogins[] = valeurs ...


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1083023
pmusa
&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;
Posté le 14-05-2005 à 10:25:40  profilanswer
 

oui oui, ça je sais chef, mais comment fais-t-on pour COMPARER ce que l'utilisateur a entré dans les champs de saisis pour s'identifier (login + pass) et les données dans l'array?
 
array_key_exists  ??
 
je vois pas comment proceder.
 
ou peut-être:

Code :
  1. foreach($meslogins as $clef=>$valeur){
  2. if($_POST['login']==$clef && $_POST['pass']==$valeur){
  3. echo "vous êtes connecté";
  4. // etc...
  5. }


 
merci de m'aider.


Message édité par pmusa le 14-05-2005 à 10:29:01
n°1083024
esox_ch
Posté le 14-05-2005 à 10:27:22  profilanswer
 

Perso je ferais un in_array() avec le login comme clef et le mdp comme valeur


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1083027
pmusa
&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;
Posté le 14-05-2005 à 10:33:18  profilanswer
 

if (in_array($_POST['login'], $_POST['pass'])){
echo "vous etes identifié.";}
 
ça marche ça?
 :??:  :??:
 
edit:
euh... nan. quel con. si je precise pas dans quel array chercher ça marchera pas hein?  :D  
 
help.


Message édité par pmusa le 14-05-2005 à 10:34:21
n°1083030
esox_ch
Posté le 14-05-2005 à 10:37:14  profilanswer
 

....
 
Tu dois lui dire de regarder si le login existe dans l'array, et apres regarder si le mdp y est associer ... reflechi un peu c'est pas si complex


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1083042
pmusa
&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;
Posté le 14-05-2005 à 10:58:04  profilanswer
 

:o  
 

Code :
  1. <?php
  2.   $membres = array("login1"=>"mdp1", "login2"=>"mdp2", "login3"=>"mdp3" );
  3.   if (in_array("$_POST['pass']", $membres)) {
  4.    echo "pass ok";
  5. if(array_key_exists("$_POST['login']", $membres)){
  6. echo "login ok";
  7.   }
  8. }
  9. ?>


 
je sais que ce code est relativement... mauvais.  :whistle:  
 
pliz help.  :)
 
edit:
mauvais, car il n'y a pas la notion d'ASSOCIATION. :/


Message édité par pmusa le 14-05-2005 à 10:59:39
n°1083194
pmusa
&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;
Posté le 14-05-2005 à 14:36:47  profilanswer
 

:bounce:

n°1083198
afbilou
pouet your life
Posté le 14-05-2005 à 14:51:26  profilanswer
 
n°1083960
pmusa
&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;
Posté le 15-05-2005 à 10:50:35  profilanswer
 

pti up en douce.  :whistle:

n°1083965
esox_ch
Posté le 15-05-2005 à 10:53:57  profilanswer
 

C'est stupide ton truc ... La tu controles que le mdp X existe et que l'utilisateur Y existe.
 
Admettons :
 
Login : Jean , Mdp : Claude
Login : Paul, Mdp : Jaques
 
Je me log :  
 
login : Jean  , mdp : Jaques.
Ton systeme va me laisser passer....
 
Ce que tu dois faire est de controler qu'un login existe, puis regarder quel est le mdp qui s'y ratache (a la limite fait un array_flip)


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1084130
pmusa
&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;
Posté le 15-05-2005 à 14:07:48  profilanswer
 

pitié j'y arriverai jamais.  :D  
 
fais pas le salaud esox, balance le! balance le, le code!...  balance leeeeeeeee!

n°1084155
esox_ch
Posté le 15-05-2005 à 14:30:58  profilanswer
 

Si t'as pas les connaissances/la volonté de coder un truc du genre qui tiens sur 5 lignes je crois qu'il vaut mieux que t'en reste la avec le php, parceque si t'arrive pas a mettre 2 briques l'une sur l'autre, je te vois mal devoir construire un immeuble de 50 etages :D


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1084200
pmusa
&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;
Posté le 15-05-2005 à 14:57:40  profilanswer
 

bah j'ai tenté 2-3 trucs comme tu peux le voir.  :D  
array_flip() je veux bien mais keskonanariennafoutre?  :??: il interverti clé et valeur ok, et bah?  :whistle:  
 
allez siouplé chré sage.  :)

n°1084228
esox_ch
Posté le 15-05-2005 à 15:24:41  profilanswer
 

Alors soit sage et reflechi


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1084236
naceroth
Posté le 15-05-2005 à 15:31:57  profilanswer
 

esox_ch a écrit :

Alors soit sage et reflechi


 
J'avoue que sur le coup, je serais curieux de savoir aussi ce que ça vient foutre là :D
 
Pmusa : c'est même plus un problème de php là, c'est une question de logique, ton premier test est bon, le deuxième doit vérifier que le mdp associé au login (dont tu viens de vérifier l'existence) est bien le bon. Question à 5 cents : comment accède-t'on à la valeur d'un tableau dont on connait l'indice ? :)

n°1084240
pmusa
&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;
Posté le 15-05-2005 à 15:32:59  profilanswer
 

http://www.designlaboratory.net/smileyyyy/areu.gif

n°1084251
esox_ch
Posté le 15-05-2005 à 15:40:54  profilanswer
 

naceroth a écrit :

J'avoue que sur le coup, je serais curieux de savoir aussi ce que ça vient foutre là :D
 
Pmusa : c'est même plus un problème de php là, c'est une question de logique, ton premier test est bon, le deuxième doit vérifier que le mdp associé au login (dont tu viens de vérifier l'existence) est bien le bon. Question à 5 cents : comment accède-t'on à la valeur d'un tableau dont on connait l'indice ? :)


 
Zut, apres reflection je me rend compte que je cherchais midi a 14h  :pt1cable:  
 
Autant pour moi , un petit controle si un key existe (le login) et apres on recupere le mdp correspondant.
 
Merci naceroth  :bounce:


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1084287
pmusa
&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;
Posté le 15-05-2005 à 16:27:43  profilanswer
 

bande de sadiques. http://www.designlaboratory.net/smileyyyy/areu.gif
 
j'ai trouveÿÿÿÿ: array_search().
 :sol:  
 
esox_ch pas copain.  :o
 
edit:
 
en gros:
 

Code :
  1. if($_POST['login'] == array_search("$_POST['pass']", $membres))


 
 [:aras qui rit]


Message édité par pmusa le 15-05-2005 à 16:35:28
n°1084303
esox_ch
Posté le 15-05-2005 à 16:40:34  profilanswer
 

Et maintenant tu dis quoi si 2 personnes choisissent le meme mot de passe ?


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1084317
pmusa
&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;
Posté le 15-05-2005 à 16:46:35  profilanswer
 

ben je te repond que ce problème n'a pas lieu de se poser avec array_search.  [:airforceone]  
 
array_search retourne la clé relative a une valeur. donc ma structure de contrôle va bien.
 
 
et si j'ai faux, je te repondrai que maintenant... esox t'arrête de me faire chier!  :D

n°1084324
esox_ch
Posté le 15-05-2005 à 16:53:50  profilanswer
 

lol ;) . Perso voila ce que j'aurais fait (a part que je traite les input pour des questions de secu avant de faire joujou avec):
 

Code :
  1. $tab = array('login1'=>'mdp1','login2'=>'mdp2');
  2. if(array_key_exists($tab[$_POST['monlogin']]) AND ($tab[$_POST['monlogin']] == $_POST['monpassword']))
  3. {
  4.   echo 'Vous etes loggé';
  5. }
  6. else
  7. {
  8. die('Espece de méchant, je ne me laisserai pas feinter comme ça!');
  9. }


 
Et pour ton script, voila ce que ça peut donner :
 
Login : hal , mdp : fred
login : micro , mdp : fred
 
Maintenant, Je me log avec login micro et mdp fred :
 
array_search retournera la 1ere valeur retrouvée : hal  
hal != micro =>> J'entre pas meme avec le bon mdp.
 
Avec ta methode tu dois faire un array_find + un in_array ... Ce qui te fais 2 fonctions a utiliser au lieu qu'une pour moi  :sol:  
 
Edit : Loupé une parentese a la redaction ... + Oublié de te remonter les bretelles :p


Message édité par esox_ch le 15-05-2005 à 16:58:47

---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1084338
pmusa
&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;
Posté le 15-05-2005 à 17:11:19  profilanswer
 

[:aloy]  
 
yesssss j'ai reussi à lui faire pondre le code.  :D
 
ouais j'ai compris où tu voulais en venir. merci chef.  :jap:  
 
finalement c'est bien complet les array.

n°1084342
esox_ch
Posté le 15-05-2005 à 17:15:42  profilanswer
 

Il t'a juste fallu 20 posts et 3 personnes ... t'es un rapide :p ... si tu passais plus de temps a lire la doc et moins de temps a supplier, c'est toi qui nous expliquerais le php :p


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1084363
pmusa
&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;
Posté le 15-05-2005 à 17:31:03  profilanswer
 

j'ai cherché.  :non: C'est juste que les array je connaissais pas du tout de chez pas du tout et que je debute. j'ai pas besoin de ce code, c'était pas curiosité: ça me permettra de progresser.
 
ça m'a toujours fait peur les array et les boucles... surtout les array. http://www.designlaboratory.net/smileyyyy/areu.gif
 
en tout cas merci pour ta collaboration, ton soutien, tes demarches pour me venir en aide, ton concourt, l'interêt que tu as temoigné, et tes invitations aux modules de recherche sur php.net et/ou google.  :o  
 
 :D  
 
en tout cas...
 
 
http://www.designlaboratory.net/smileyyyy/thx.jpg

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

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

  Plusieurs login pour redirection différentes

 

Sujets relatifs
Comment gérer le repertoire WEB-INF d'un projet comportant plusieurs sShell script : redirection synchrone vers un fichier ?
transmission de plusieurs variable par l'urlObjet ASP permettant de faire des resultats sur plusieurs page
[VB .NET] DataGrid et Requete à plusieurs tables...login
login[c++] Differentes solutions pour faire copier/coller
Afficher le contenu d'un tableau en plusieurs pages???Redirection au bout d'un certain temps avec un header() ... [Résolu]
Plus de sujets relatifs à : Plusieurs login pour redirection différentes


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