identification > redirection personnalisée

Petit nouveau ! | 6 Messages

16 févr. 2007, 22:30

Bonjour,

Je cherche à réaliser une redirection personnalisée vers une page suivant le login et mot de passe rentrés sur une page indentification.

D'après ce que j'ai compris,

1/ il faut que je créé dans ma base une table avec mes identifiants login et mdp.

2/ mon script sur la page autehntification verifie les données rentrées par l'utilisateur, les compare avec celles de la base.

3/ suivant l'authentification, l'utilisateur est redirigé vers pageA.htm, ou pageB.php etc... Si l'autehntification echoue, il ya un message d'erreur..;


Bon, rien de bien sorcier à faire je pense. J'ai essayé de "trafficoter" des codes existants pour l'appliquer à mon cas, sans succès.

Si quelqu'un pouvait me donner, sinon le code , mais les bases de création de la page identification, ce serait sympa ! :D

Merci,

ViPHP
ViPHP | 1961 Messages

16 févr. 2007, 22:35

Bonjour,

La logique est bonne, c'est quoi qui te pose PB ?
La création de la table ?
Les scripts PHP ?
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Petit nouveau ! | 6 Messages

16 févr. 2007, 22:37

Salut,

La création du script PHP de la page d'authentification qui contient le formulaire avec les champs a renseigner...

ViPHP
ViPHP | 1961 Messages

16 févr. 2007, 22:42

Re,

Voici un petit tuto pour commencer, si par la suite tu rencontres des PB's n'hésite pas à revenir avec ton code pour que l'on puisse t'aider.
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Petit nouveau ! | 6 Messages

16 févr. 2007, 22:44

OK, merci !
je vais essayer avec ça.

Petit nouveau ! | 6 Messages

16 févr. 2007, 23:26

j'ai trouvé ce bout de code fait par ZEUS, qui me conviendrai bien :

Code : Tout sélectionner

<form name="login" method="post"> <div align="center"> login <input name="user_name" type="text"> <br> <br> password <input name="password" type="text"> <br> <input type="submit" name="Submit" value="Connecter" > <br> </div> </form> <? //Si le formulaire a été validé if (isset($_POST["Submit"])) { $log= (isset($_POST["user_name"])) ? $_POST["user_name"] : "" ; $pass= (isset($_POST["password"])) ? $_POST["password"] : ""; if($log == "dupont" && $pass == "monpass") { ?> <a href='partenaires.html'>acceder a votre page</A><? } else { echo('erreur de login ou de mot de passe'); ?><a href='index.php?page=news'></a><? } } ?>
Je voudrai rajouter à ce code un autre identifiant, qui dirigerai vers une autre page.

Je voudrai aussi pouvoir rediriger directement l'utilisateur vers sa page.
Dois-je remplacer pour celà le <a href...<\a> par un GetUrl?

Merci.

ViPHP
ViPHP | 1961 Messages

16 févr. 2007, 23:35

Re,

Comme tu le vois, le script de Zeus est un script exemple, maintenant c'est à toi de l'adapter en fonction de tes besoins.

Tu parlais d'une base de données, le script n'a pas cette prétention (c'est pas son but - fournir un code 100% fonctionnel et s'adaptant à toutes les situations).

Procède par étapes.
Crée to formulaire, récupère les valeurs.
Crée ta requête, teste-la avec des valeurs en dur.
Tente de les mettre en commun (formulaire et requête).
Une fois ces deux parties unies, gère la redirection, mais pas avant.
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Petit nouveau ! | 6 Messages

17 févr. 2007, 10:28

Ok, re !

Bon, j'ai créé ma table membres et mes champs login et pass sur ma base.

Dans le script PHP ci-dessous, je récupère ces valeurs et verifie que que ça marche, avec la fonction "echo"...Et ça marche.

Maintenant je voudrai : au lieu d' afficher le "echo", rediriger l'utilisateur vers une page.

Je voudrai aussi rajouter une condition : un deuxieme login et pass ouvre une autre page que la précédente.

ex : login : jean pass: dupont > ouvre page jeandupont.html
login : jacques pass : martin > ouvre la page jacquesmartin.php.

mmhh...je suis pas sûr d'être clair...

Merci.
<?php 
// demarre une session 
session_start(); 

// Connection au serveur mySQL 

$sql_serveur = "sql"; // Serveur mySQL 
$sql_base = "test"// Base de donnees mySQL 
$sql_login = "testeur"; // Login de connection a mySQL 
$sql_password = "password"; // Mot de passe pour mySQL 

$nom_fichier = "redirect.php"; // Nom de votre page 
                    // ex: index.php si ce script est sur la page index.php 


@mysql_connect($sql_serveur, $sql_login, $sql_password) or die("Connection interrompue"); 
@mysql_select_db($sql_base); 

?> 

<html> 
<head> 
<title>Titre</title> 
</head> 
<body> 

<?php 

// variables du formulaire 
$action = isset($_POST['action']) ? $_POST['action'] : '';   
$login = isset($_POST['login']) ? $_POST['login'] : ''; 
$pass = isset($_POST['pass']) ? $_POST['pass'] : ''; 


// si le login et pass on été au préalable cryptés  
// (en md5 dans l'exemple) dans votre base 
// vous devez enlever les commentaires sur les 2 lignes suivante 

// $login  = md5($_POST['login']); 
// $pass   = md5($_POST['pass']); 


// Si aucune action, le formulaire est afficher 
if ($action !=1 ) { 

echo 'Veuillez entrer votre Login et Mot de Passe:<br />'; 
echo '<form action="'.$nom_fichier.'" method="post">'; 
echo '<input type="hidden" name="action" value="1">'; 
echo 'Login: <input type="password" name="login"><br />'; 
echo 'Passe: <input type="password" name="pass"><br />'; 
echo '<input type="submit" value="Connexion">'; 
echo '</form>'; 
                  } 

// Sinon 
if ($action == 1) { 

$q = mysql_query("SELECT *  
                  FROM accespartenaires  
                  WHERE login='$login'  
                  AND pass='$pass'"); 
$n = mysql_num_rows($q); 

    if ($n == 1 AND $login != "" AND $pass != "") 
       { 
       // Le login est placé dans la session 
       $_SESSION['login_session'] = $login; 
       // redirection 

        // ATTENTION A BIEN METTRE LA PAGE DE REDIRECTION ICI 
       echo 'cest  les bons logs et pass';

      /* header("index.php"); */
       } 

// Si le login ou le mot de passe sont incorrect 
// affiche de nouveau le formulaire 

         else{ 

echo 'Veuillez entrer votre Login et Mot de Passe:<br />'; 
echo '<form action="'.$nom_fichier.'" method="post">'; 
echo '<input type="hidden" name="action" value="1">'; 
echo 'Login: <input type="password" name="login"><br />'; 
echo 'Passe: <input type="password" name="pass"><br />'; 
echo '<input type="submit" value="Connexion">'; 
echo '</form>'; 

die('<font color="red">Informations incorrectes!'); 
           } 
         } 
?> 
</body> 
</html> 





ViPHP
ViPHP | 1961 Messages

17 févr. 2007, 10:46

Bonjour,

Je te conseillerai d'ajouter une colonne dans ta table qui contiendra la page vers laquelle sera dirigé le visiteur.

Pour rediriger vers une page regarde la fonction header().
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Petit nouveau ! | 6 Messages

17 févr. 2007, 17:14

Re,

Effectivement, je m'en suis sorti avec la fonction header(), merci !
J'ai abandonné l'accès à la base de données, et j'ai tout concentré mon code dans ce fichier.

Je vous livre donc mon code, si cela peut servir.

Merci encore pour ton aide ajoloca,:wink:
<?php 
// variables du formulaire 
$action = isset($_POST['action']) ? $_POST['action'] : '';   
$login = isset($_POST['login']) ? $_POST['login'] : ''; 
$pass = isset($_POST['pass']) ? $_POST['pass'] : '';  

// Si aucune action, le formulaire est afficher 
if ($action !=1 ) { 
echo 'Veuillez entrer votre Login et Mot de Passe:<br />'; 
echo '<form action="'.$nom_fichier.'" method="post">'; 
echo '<input type="hidden" name="action" value="1">'; 
echo 'Login: <input name="login"><br />'; 
echo 'Passe: <input type="password" name="pass"><br />'; 
echo '<input type="submit" value="Connexion">'; 
echo '</form>'; } 

// Sinon 
if ($action == 1) { 
if ($login == "dupont" && $pass == "lajoie") 
   {
 header('Location: http://www.monsite.com/pageA.php');
} 
elseif ($login == "dutruc" && $pass == "muche") 
{
header('Location: http://www.monsite.com/repertoire/pageB.html');
}


// Si le login ou le mot de passe sont incorrect 
// affiche de nouveau le formulaire 

         else{ 

echo 'Veuillez entrer votre Login et Mot de Passe:<br />'; 
echo '<form action="'.$nom_fichier.'" method="post">'; 
echo '<input type="hidden" name="action" value="1">'; 
echo 'Login: <input type="password" name="login"><br />'; 
echo 'Passe: <input type="password" name="pass"><br />'; 
echo '<input type="submit" value="Connexion">'; 
echo '</form>'; 

die('<font color="red">Informations incorrectes!'); 
           } 
         } 
?> 

HD
Mammouth du PHP | 1181 Messages

20 févr. 2007, 19:32

salut
y a t il une autre solution à part header ? ça fait longtemps que je cherche mais j'ai encore rien trouvé pour une redirection alors que des éléments sont déjà affichées (adieu header), quand on ne veut pas utiliser de javascript (adieu refresh) et qu'on ne veut pas afficher un lien à cliquer (adieu html) :?
merci !
"Si Dieu descendait sur la Terre, tous les peuples se mettraient a genoux, excepte les Français qui diraient : " Ah ! Vous êtes la ! C'est pas trop tôt ! On va pouvoir discuter un peu !" [Michel Balfour]