Page 1 sur 1

L'orientation de cette internaute vers sa page respective avec une variable.

Posté : 25 nov. 2015, 16:07
par Xavier2015
Bonjour
Voici depuis quelques jours que j'essaye de créer une page de connexion pour les membres mais je n'arrive pas rassurez-vous je sais comment créer cette page c'est juste que je souhaiterais en fonction de la réponse donnée que je puisse l'envoyer sur la page appropriée.

J'ai 3 types de compte
Admin
Client
Agence
Pour ces 3 comptes qui sont réparties sur 3 base de donnée différentes
j'ai déjà trouvé une solution à mon premier problème
c'est insérer dans la requête (mysql_query) une variable pour ici c'est ($table)
qui est sélectionné par <select>
Mon souci c'est l'orientation de cette internaute vers sa page respective
don ici pour mon système
header ('Location: ....................... .php');

je souhaiterais que en fonction de la sélection par <select>
orienter l'internaute vers a page:

header ('Location:membre-agence.php');
header ('Location:membre-client.php');
header ('Location:admin-membre.php');


voici mon code de base

Code : Tout sélectionner

<html> <meta charset="utf-8"> <title>Connexion-Test</title> <table border="0" width="100%" align="center"> <tr> <td width="auto"></td> <td width="400px" align="center"> <?php session_start(); if(isset($_POST['submit'])) { $email=htmlentities(trim($_POST['email'])); $password=htmlentities(trim($_POST['password'])); $table=htmlentities(trim($_POST['table'])); if($email&&$password){ if(strlen($email)>=1){ if(strlen($password)>=1){ require_once("fiche-de-base/connection.php"); $login = mysql_query(" SELECT * FROM $table WHERE email='$email' AND password='$password'"); $num_rows = mysql_num_rows($login); if($num_rows == 1) { $_SESSION['email'] = $email; header ('Location:membre-?.php'); } }else echo "le mot de passe est trop court!"; }else echo "le nom d'utilisateur est trop court!"; }else echo "Veuillez saisir tout les champs!"; } ?> <h1>Connexion</h1> <form method="post" action="connexion.php."> <fieldset> <p>Votre nom d'utilisateur</P> <input type="text" name="email"><br/> <p>Votre mot de passe</P> <input type="password" name="password"><br><br> Vous être <select name="table"> <option selected value="client" >Un client</option> <option value="agence" >Une Agence</option> <option value="admin" >Un Admin</option> </select> <br><br> <input type="submit" name="submit" value="se connecter" /> </fieldset> </form> <a href="register.php">J'ai pas encore de compte</a> <br> <a href="Accueil.php" >Retour a la Accueil</a> </td> <td width="auto"></td> </tr> <td colspan="3">.</td> </table> </html>

Re: [RESOLU] L'orientation de cette internaute vers sa page respective avec une variable.

Posté : 25 nov. 2015, 16:20
par or 1
if($table == "..."){
header ('Location:membre-?.php');
}
else if($table == ".."){{
header ('Location:membre-?.php');
}
else if($table == "."){{
header ('Location:membre-?.php');
}

Re: [RESOLU] L'orientation de cette internaute vers sa page respective avec une variable.

Posté : 25 nov. 2015, 16:25
par Saian
Salut Xavier2015, il vaut mieux éviter de transmettre le nom de la table en $_POST pour des questions de sécurité car techniquement on peut mettre ce que l'on veut dedans.

Une idée assez simple serait par exemple de plutôt transmettre un nom de groupe (agence, client, membre) et de créer un tableau associatif contenant le nom de la table et le script de redirection correspondant :
$groups = array(
  'agence' => array(
    'table' => 'nom_de_la_table',
    'redirect' => 'nom_du_script.php'
  ),
  'client' => array(
    'table' => 'nom_de_la_table',
    'redirect' => 'nom_du_script.php'
  ),
  'membre' => array(
    'table' => 'nom_de_la_table',
    'redirect' => 'nom_du_script.php'
  ),
);

$login = mysql_query("SELECT * FROM ".$groups[$_POST['group']]['table']." WHERE email='$email' AND password='$password'");

header ('Location: '.$groups[$_POST['group']]['redirect']);

Re: [RESOLU] L'orientation de cette internaute vers sa page respective avec une variable.

Posté : 26 nov. 2015, 00:32
par Xavier2015
merci a vous deux pour m'avoir aidé.
je vais voir sa demain matin.

Re: [RESOLU] L'orientation de cette internaute vers sa page respective avec une variable.

Posté : 26 nov. 2015, 12:39
par Xavier2015
bonjour j'ai testé les 2 codage que vous avez fair mais j'ai des erreur qui son arrivé

or1: pour ton code il me marque:
Parse error: syntax error, unexpected 'else' (T_ELSE) in C:\wamp\www\Site-de-test\Isoler\Page du site\Page Connexion Les 3 compte\login-test1.php on line 47

Saian: pour ton code il me marque:
Parse error: syntax error, unexpected end of file in C:\wamp\www\Site-de-test\Isoler\Page du site\Page Connexion Les 3 compte\login-test1.php on line 102

Re: [RESOLU] L'orientation de cette internaute vers sa page respective avec une variable.

Posté : 26 nov. 2015, 20:57
par Xavier2015
Pour tout les personne qui souhaiterais réaliser de nouveau cette page où tout simplement l'étudier.
voici mon code:

Code : Tout sélectionner

<html> <meta charset="utf-8"> <title>Connexion</title> <table border="0" width="100%" align="center"> <tr> <td width="auto"></td> <td width="400px" align="center"> <h1>Connexion</h1> <form method="post" action="login-3-compte.php"> <fieldset> <p>Votre nom d'utilisateur</P> <input type="text" name="email"><br/> <p>Votre mot de passe</P> <input type="password" name="password"><br/><br/> <br><br> Vous être <select name="table"> <option selected value="client" >Un Client</option> <option value="agence" >Une Agence</option> <option value="admin" >Un Admin</option> </select> <br><br> <input type="submit" name="submit" value="Se connecter" /> </fieldset> </form> <?php session_start(); if(isset($_POST['submit'])) { $email=htmlentities(trim($_POST['email'])); $password=htmlentities(trim($_POST['password'])); $table=htmlentities(trim($_POST['table'])); if($email&&$password){ if(strlen($email)>=1){ if(strlen($password)>=1){ @mysql_connect ("localhost","root","votre-code") or (die(mysql_error())); mysql_select_db("site") or (die(mysql_error())); $login = mysql_query(" SELECT * FROM $table WHERE email='$email' AND password='$password'"); $num_rows = mysql_num_rows($login); if($num_rows == 1) { $_SESSION['email'] = $email; if($table == "admin"){ header ('Location:membre-admin.php'); }else if($table == "agence"){ header ('Location:membre-agence.php'); }else if($table == "client"){ header ('Location:membre-client.php'); } } }else echo "le mot de passe est trop court!"; }else echo "le nom d'utilisateur est trop court!"; }else echo "Veuillez saisir tout les champs!"; } ?> <a href="page-des-register.php">Nous possède pas encore de compte</a> <br> <a href="<?php echo $_SERVER['HTTP_REFERER']; ?>">Retour a la Page</a> </td> <td width="auto"></td> </tr> <td colspan="3">.</td> </table> </html>
Bonne étude à tous ou bonne création de site