identification > redirection personnalisée

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : identification > redirection personnalisée

par HD » 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 !

par faboule » 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!'); 
           } 
         } 
?> 

par Ajoloca » 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().

par faboule » 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> 




par Ajoloca » 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.

par faboule » 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.

par faboule » 16 févr. 2007, 22:44

OK, merci !
je vais essayer avec ça.

par Ajoloca » 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.

par faboule » 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...

par Ajoloca » 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 ?

identification > redirection personnalisée

par faboule » 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,