Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/06/2011, 23h14   #1
Invité de passage
 
Inscription : décembre 2009
Messages : 34
Détails du profil
Informations forums :
Inscription : décembre 2009
Messages : 34
Points : 0
Points : 0
Par défaut Affichage de message d'erreur sur meme page

Mon pb est :
Lorsque j'ai saisi un login et un mot passe erroné, il faut qu'il m'affiche un msg d'erreur, mais ce msg d'erreur doit être affiché sur la même page où j'ai saisi les données.
la page où je saisi les données et la page qui m'affiche les msg d'erreurs sont différentes.
mon pb est dans le code JS surtout je ne sais pas les fonctions que j px mettre.
Voir mon code :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php
include("connect_base.php");//pour inclure les fonctions de BD
if(isset($_POST) && !empty($_POST['login']) && !empty($_POST['mdp']) ){
	extract($_POST);
	// on recupère le cne de la table qui correspond au login du visiteur
	$sql = "select * from admin where login='".$login."'and mdp='".$mdp."'" ;
	$req = mysql_query($sql) or die('error');
	$data = mysql_fetch_assoc($req);
	if($data['login'] != $login && $data['mdp'] != $mdp ) 
	{
	?>
	<script language="JavaScript">
	alert("login ou mdp que vous avez saisie est erroné. Recommencer");
	window.location.replace("pageadmin.php");// On inclut la page d'identification
	</script>
	<?php
	//Une fenêtre d'alerte s'affiche lorsque le CNE est invalide et renvoit vers la page pour se logger
	}
	else {
	session_start(); //on démarre une sessin
	$_SESSION['login'] = $login;//la variable de session $_SESSION['login'] récupère le login saisi
	$_SESSION['mdp'] = $mdp; 
	header("Location: pageadmin.php");// lien vers la page d'accueil 
	}
}
else {
	?>
	<script language="JavaScript">
	alert("Vous avez oublié de remplir un champ. Merci de recommencer");
	window.location.replace("accueil.php");
	</script>
	<?php
}
?>
devhafid est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/06/2011, 23h58   #2
Membre régulier
 
Avatar de the-destroyer
 
Homme
Lycéen
Inscription : mars 2009
Messages : 201
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 17
Localisation : France

Informations professionnelles :
Activité : Lycéen

Informations forums :
Inscription : mars 2009
Messages : 201
Points : 80
Points : 80
essait avec ca a chaque endroit ou tu veux introduire du js:

Code :
1
2
3
4
5
 
echo '<script language="JavaScript">
	alert("Vous avez oublié de remplir un champ. Merci de recommencer");
	window.location.replace("accueil.php");
	</script>';
ca devrait marcher
the-destroyer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/06/2011, 02h22   #3
Invité de passage
 
Inscription : décembre 2009
Messages : 34
Détails du profil
Informations forums :
Inscription : décembre 2009
Messages : 34
Points : 0
Points : 0
Il m'affiche ce message en page blanche c pas sur la page d'accueil que j vx.
En plus le code JS je l'ai mis pas dans la page d'accueil,je l'ai mis dans une autre page particulier.
merci pr la réponse
devhafid est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/06/2011, 12h24   #4
Membre régulier
 
Avatar de the-destroyer
 
Homme
Lycéen
Inscription : mars 2009
Messages : 201
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 17
Localisation : France

Informations professionnelles :
Activité : Lycéen

Informations forums :
Inscription : mars 2009
Messages : 201
Points : 80
Points : 80
d'accord je crois avoir saisie,

la page blanche que tu as c bien celle que tu désire mais l’exécution du javascript et la redirection se fait trop rapidement et donc la page n'a pas le temps de s'afficher, du moins il me semble que c'est ca

pour résoudre le problème ta plusieurs solution, joué avec le onload de ta page et donc declencher ton code au chargement de la page, soit mettre un setTimeout de ton code javascript, dans ce dernier cas le code javascript s’exécutera apres un laps de temps indiquer mais je te conseil l'autre solution, a toi de voir
the-destroyer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/06/2011, 12h57   #5
Invité de passage
 
Inscription : décembre 2009
Messages : 34
Détails du profil
Informations forums :
Inscription : décembre 2009
Messages : 34
Points : 0
Points : 0
Si je vx utiliser Onload , comment j px l'utiliser sachant que le code JavaScript qui contient les msg d'erreurs se trouve dans une autre page c pa la page d'accueil que j vx l'afficher.
devhafid est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/06/2011, 12h58   #6
Expert Confirmé
 
Avatar de sekaijin
 
Femme
Urbaniste
Inscription : juillet 2004
Messages : 1 421
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 48
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Urbaniste
Secteur : Santé

Informations forums :
Inscription : juillet 2004
Messages : 1 421
Points : 2 809
Points : 2 809
lorsque tu poste ton formulaire tu invoque l'url php de traitement de celui-ci c'est la réponse de cette url qui est alors affichée

c'est le B. A. BA. de HTTP

donc deux chose si tu veux rester sur la même page

soit tu ré-affiche la page en guise de réponse.
soit tu ne poste pas ton formulaire

solution 1)
affichage du form de login
saisie
Post
lecture par php
si donnée erronées
affichage form de login avec les données remplies et message d'erreur
sinon
redirection

solution 2)
affichage du form de login
saisie
javascript => invocation AJAX de l'url de vérif (php)
javascript => attente de la réponse
javascript => si réponse == false afficher message
javascript => si reponse == true windows.location = newURL

A+JYT
sekaijin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/06/2011, 23h26   #7
Invité de passage
 
Inscription : décembre 2009
Messages : 34
Détails du profil
Informations forums :
Inscription : décembre 2009
Messages : 34
Points : 0
Points : 0
Comment puis-je faire pour la première solution ? Comment peut-il vérifier les données saisies ?

Peux-tu me donner, si possible, le code pour comprendre ta solution ?
Le code source que j'ai posté ci-dessus est dans une autre page. Ce n'est pas la page d'accueil (sur laquelle je veux afficher les messages d'erreurs).
devhafid est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2011, 08h28   #8
Expert Confirmé
 
Avatar de sekaijin
 
Femme
Urbaniste
Inscription : juillet 2004
Messages : 1 421
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 48
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Urbaniste
Secteur : Santé

Informations forums :
Inscription : juillet 2004
Messages : 1 421
Points : 2 809
Points : 2 809
c'est côté php

je suppose que tu a une page de login login_page.php
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?php
session_start();
if ((isset($_SESSION['username'])) && (!empty($_SESSION['login'])))
{
  $username = $_SESSION['username'];
}  else {
  $username = '';
}
?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta http-equiv="content-type" content="text/html; charset=windows-1250">
    <meta name="generator" content="PSPad editor, www.pspad.com">
    <title>Login</title>
  </head>
  <body>
    <form name="login_form" method="post" action="login.php">
      <table class="width50" cellspacing="1">
        <tr class="row-1">
          <td class="category">
            username</td>
          <td>
            <input type="text" name="username" size="28" value="<?php echo $username; ?>" /></td>
        </tr>
        <tr class="row-2">
          <td class="category">
            password</td>
          <td>
            <input type="password" name="password" size="16" /></td>
        </tr>
        <tr class="row-2">
          <td colspan="2">
            <input type="submit" name="login" value="login" /></td>
        </tr>
      </table>
    <?php
    if ((isset($_SESSION['loginError'])) && (!empty($_SESSION['loginError']) && ($_SESSION['loginError']))
    {
      alert('Invalid Login or password');
    }
    ?>
  </body>
</html>
cette page affiche le formulaire. si la variable de session username est présente alors le champs username est pré-remplit. si la variable de session loginError est présente et vaut true alors le message d'erreur est affiché.
le code du php login.php est :
ouverture de la session lecture des variables POST
affecter loginError=false dans la session (au cas où l'utilisateur se soit déjà trompé)
mise en session de username
vérification du login
si le login est OK redirection vers la page d'admin
si le login est incorrect mise en session de loginError = true et redirection vers login_page.php

A+JYT
sekaijin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/06/2011, 14h19   #9
Invité de passage
 
Inscription : décembre 2009
Messages : 34
Détails du profil
Informations forums :
Inscription : décembre 2009
Messages : 34
Points : 0
Points : 0
J'ai trouvé la solution.
Merci à vous.
devhafid est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h25.


 
 
 
 
Partenaires

Hébergement Web