Redirection+message+php

Fermé
maje3 Messages postés 55 Date d'inscription jeudi 29 janvier 2009 Statut Membre Dernière intervention 3 septembre 2010 - 6 oct. 2009 à 11:27
kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 - 7 oct. 2009 à 09:59
Bonjour,
J'ai deux pages, ma première page contient mon formulaire (connexion.php) et une page de vérification du login et du mot de passe (verifylog.php). Je voudrais afficher un message d'erreur sur la page connexion.php. j'effectue une redirection au niveau de verifylog.php mais mon message s'affiche dans la barre d'adresse du navigateur. Merci pour votre aide.

7 réponses

biboo_ Messages postés 1249 Date d'inscription jeudi 20 août 2009 Statut Membre Dernière intervention 14 mars 2012 106
7 oct. 2009 à 09:56
Ce type de code, je l'utilise depuis 3 4 ans sans soucis. :)
4
kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
6 oct. 2009 à 13:23
Re,

Oui pas étonnant que ça apparaisse dans ton url puisque tu l'y passe en paramètre visible (GET)

Comme l'a précisé Biboo_, il te manque dans la page de connexion, une partie où tu récupère cette valeur pour afficher un message à l'utilisateur (la seconde partie du code qu'il t'a donné)
Prend donc exemple dessus et applique le à ton code, ton problème sera résolu.
2
kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
6 oct. 2009 à 11:38
Bonjour,

Peux-tu mettre le code de tes deux pages (les parties concernant le problème si les code sont vraiment trop long).
Merci.
0
biboo_ Messages postés 1249 Date d'inscription jeudi 20 août 2009 Statut Membre Dernière intervention 14 mars 2012 106
6 oct. 2009 à 11:45
Sur ta page verifylog.php, en fonction du resultat du login (si échoué ou réussi), tu rediriges vers connexion.php avec un message du type :

verifylog.php :
<?php
if(connexionReussi) {
 // on affiche la page d'accueil
} sinon {
 header('location:connexion.php?msg=1');
}
?>


connexion.php :
<?php
if($_GET['msg'] == 1) {
echo "erreur 1 car blabla";
}
?>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
maje3 Messages postés 55 Date d'inscription jeudi 29 janvier 2009 Statut Membre Dernière intervention 3 septembre 2010 1
6 oct. 2009 à 12:30
voici mon code connexion.php:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<HTML>
<HEAD>
<title>Page de connexion</title>

</head>
<body>

<div id="center" align="center">
<form method="post" name="connexion" action="veriflogmdp.php">
<fieldset>
<legend>Veuillez entrer vos login et mot de passe pour vous connecter...</legend>

<table class="DHTMLSuite_calendar_timeBar">
<tr>
<td width="137" height="59"><label for="firstname">
<div align="right">Login:</div>
</label></td>
<td width="177"><input type="text" id="login" name="login" tooltipText="Veuillez saisir votre login"></td>
</tr>
<tr>
<td height="46"><label for="lastname">
<div align="right">mot de passe:</div>
</label></td>
<td><input type="password" id="password" name="password" tooltipText="Veuillez saisir votre mot de passe"></td>
</tr>
<tr>
<td height="37">
<div align="right">
<input name="Envoyer" type="submit" class="DHTMLSuite_calendarDropDown_dropDownArrowOver" value="Envoyer">
</div></td>
<td>
<div align="left">
<input name="Réinitialiser" type="reset" class="DHTMLSuite_calendar_dropdownAMinuteOver" value="Réinitialiser">
</div></td></tr>
<tr>
<td height="55" colspan="2"><a href="#" onclick="displayMessage('message.html');return false">Mot de passe oublié?</a> </td>
</tr>
</table>
<p><div><?php
if(!isset($_POST['Envoyer'])) {
echo $message;
}
?></div></p>
</fieldset>
<div style="height:15px"></div>
</form>
</body>
</html>

Voici ma page verifylog.php:
<?php
$login= $_POST['login'];
$password = $_POST['password'];
if($login=="" || $password=="")
{
$message="Renseignez votre login et password SVP!";
header("location: connexion.php?message=$message");
}
else
{
$server="*****";
$database="*****";
$dsn="*****";
$username="*****";
$password="****";
$sqlconnect = odbc_connect($dsn, $username, $password);
$sql = "*********** ";
$res = odbc_exec($sqlconnect, $sql) or die ("echec sql");
$login_trouve = false;

while (($verif=odbc_fetch_array($res)) and ($login_trouve == false))
{
if ((strtolower($verif['login_agent']) == $_POST['pseudo']) OR (strtoupper($verif['login_agent']) == $_POST['pseudo'])) // Si Login trouvé
{
$login_trouve=true;
if ($verif['mot_de_passe'] == $_POST['passe'] AND $verif['login_agent'] == $_POST['pseudo']) // Si password correct
{
session_start();
$_SESSION['login'] = $_POST['login'];
$_SESSION['profil'] = $verif['Profil'];
$_SESSION['login_ID'] = $verif['Login_ID'];
$_SESSION['nom'] = $verif['nom_agent'];
$_SESSION['prenom'] = $verif['prenoms_agent'];

$resultat=odbc_fetch_array($res);

$nb_res=odbc_num_rows($res);
if($nb_res == 1)
{

$nom=$resultat['nom_agents'];
$prenoms=$resultat['prenoms_agents'];
$service=$resultat['direction_service'];
$matricule=$resultat['matricule_agents'];
$sq='INSERT INTO pointage values ("","'.$matricule.'","'.$nom.'","'.$prenoms.'","'.$service.
'","'.gmdate("Y-m-d\TH:i:s\Z").'")';

mysql_query ($sq) or die ('cd erreur mysql! '.$sq.'<br/> '.mysql_error());
mysql_close ();


header("location: page2.php");
}
}
else // Password incorrect
{
$message="Login ou Mot de passe incorrect: Vérifiez le profil";
header("Location: connexion.php?message=$message");
}
}
}
}
if ($login_trouve == false) // Si login absent de la BD
{
$message="Login et Mot de passe incorrect: Vérifiez le profil";
header("Location: connexion.php?message=$message");
}
?>
0
maje3 Messages postés 55 Date d'inscription jeudi 29 janvier 2009 Statut Membre Dernière intervention 3 septembre 2010 1
6 oct. 2009 à 19:59
j'ai essayé le code de biboo mais rien n'y fait. je precise que je n'utilise pas de de paramètre GET.
0
kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
7 oct. 2009 à 09:59
Ceci :
header("Location: connexion.php?message=$message");


Signifie que tu redirige ta page courante vers la page 'connexion.php' en lui passant un paramètre GET nommé 'message' qui a pour valeur 'message'.

A partir de là, ne soit pas choqué de voir apparaitre ton message dans l'url étant donné que les paramètres GET apparaissent en clair dans cette dernière.
Et si effectivement tu ne fais rien pour récupérer via $_GET ton message dans ta page de connexion pour pouvoir l'afficher, que veux-tu que je te dise ? Ne viens plus poser de question si c'est pour ne pas appliquer les solutions qu'on te donne ?

Bonne chance pour la suite.
0