Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
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 15/12/2010, 19h03   #1
Membre à l'essai
 
Inscription : mai 2008
Messages : 208
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : mai 2008
Messages : 208
Points : 24
Points : 24
Envoyer un message via ICQ à bender86
Par défaut affichage formulaire apres alert javascript

Bonjour,

Je vous expose mon problème en espérant avoir une réponse rapidement.

J'ai un fichier .php qui contient un formulaire pour l'authentification.
A l'action du formulaire, je recharge ce même fichier php et je vérifie si le login et password sont correctes.
Si ce n'est pas le cas, je fais un:
Code php :
echo'<script>alert('erreur d'authentification')</script>";

Il m'affiche bien le message mais ne me réaffiche pas le formulaire or l'adresse dans l'url est bien la bonne et l'alert se fait juste au dessus d'où commence la balise <form>

Si je mets en commentaire la ligne pour l'alert(), la page est correctement rechargée avec le formulaire réaffiché.

ps: J'ai testé de faire un
Code php :
echo "<script>document.monForm.submit()</script>;
mais ça n'a rien changé

En espérant avoir des réponses.

Merci
bender86 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2010, 19h11   #2
Membre confirmé
 
Avatar de Psycadi
 
Homme Olivier
Développeur de message box en .Net
Inscription : juillet 2003
Messages : 138
Détails du profil
Informations personnelles :
Nom : Homme Olivier
Âge : 31
Localisation : France

Informations professionnelles :
Activité : Développeur de message box en .Net

Informations forums :
Inscription : juillet 2003
Messages : 138
Points : 227
Points : 227
Envoyer un message via MSN à Psycadi
Pourquoi tu ne le fais pas en Ajax?

Peux-tu poster le code de ta page?
Psycadi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2010, 20h00   #3
Membre Expert
 
Inscription : septembre 2010
Messages : 1 233
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 1 233
Points : 1 553
Points : 1 553
Déjà à mon avis tu as un problème de méthode pour afficher ton message.

Si tu recharges la page le plus simple est de faire afficher ton message d'erreur par php ... pourquoi le faire afficher par une alerte javascript ?

Sinon pour ta configuration actuelle, tu peux essayer de mettre l'alerte javascript en bas de page.

Quant à faire tout en ajax, il y a du pour mais aussi du contre...
ABCIWEB est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2010, 20h14   #4
Membre à l'essai
 
Inscription : mai 2008
Messages : 208
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : mai 2008
Messages : 208
Points : 24
Points : 24
Envoyer un message via ICQ à bender86
Je ne saurais pas poster la page parce que c'est sur mon pc au travail.
Comment prévenir l utilisateur avec un messagebox que l'authentification a échoué autrement qu'en js!
Pour ce qui est de l'ajax,c est la politique de la boite, on en utilise pas.

Ce qui est bizarre c est qu’aléatoirement le formulaire se reaffiche parfois sinon je pense que mettre l'alert en fin de page peut être une solution.

Merci
bender86 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2010, 20h22   #5
Membre Expert
 
Inscription : septembre 2010
Messages : 1 233
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 1 233
Points : 1 553
Points : 1 553
Oui en php ce ne serait pas une boite javascript mais tu pourrais faire afficher un div que tu pourrais personnaliser, alors que les boites javascript sont pas très sexy et puis surtout elle ne s'affichent pas si javascript est désactivé...
ABCIWEB est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2010, 20h47   #6
Membre à l'essai
 
Inscription : mai 2008
Messages : 208
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : mai 2008
Messages : 208
Points : 24
Points : 24
Envoyer un message via ICQ à bender86
Dans mon cas ici, le javascript sera active parce que c'est pour un client qui avait une application windows et il veut exactement la même chose mais en php donc pas le choix de la messagebox.
C'est quand même fou qu'on peut pas forcer de reafficher le formulaire après l alert.
Enfin je testerai en mettant l'alert a la fin et je vous tiendrai informe de la suite.

Merci a vous
bender86 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2010, 14h16   #7
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 126
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 126
Points : 7 270
Points : 7 270
Bonsoir,

Difficile de t'aider sans le code PHP .
Code :
<script type="text/javascript">
A+.
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2010, 00h57   #8
Modérateur
 
Avatar de Vil'Coyote
 
Développeur Web
Inscription : février 2008
Messages : 3 302
Détails du profil
Informations personnelles :
Âge : 31
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : février 2008
Messages : 3 302
Points : 4 480
Points : 4 480
perso j'utiliserais une fonction alert plutot qu'un appel à une msgbox directement. et je ne ferais appel à cette fonction qu'une fois ma page chargé et testé mais bon comme dis avant je pense qu'il y a un soucis conceptuel dans ton fonctionnement.
Vil'Coyote est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2010, 06h14   #9
Expert Confirmé
 
Avatar de RunCodePhp
 
Inscription : janvier 2010
Messages : 2 699
Détails du profil
Informations personnelles :
Localisation : Réunion

Informations forums :
Inscription : janvier 2010
Messages : 2 699
Points : 3 269
Points : 3 269
Salut

Lorsque la personne valide le formulaire, le serveur reçois donc les données saisies.
S'il y a erreur, il te faudrait créer 2 choses au minimum à mon sens :
- Stocker le message d'erreur en Php (dans une variable par exemple)
- Et une autre variable disant explicitement qu'il y a une erreur.

Ensuite, pour déclencher quelque chose en Javascript lors du chargement de la page, il faut utiliser l'évènement onload au niveau du body.
Si on ne fait pas ça, c'est assez aléatoire comme fonctionnement, la boite de dialogue d'Alert peut tantôt s'afficher, tantôt non.
Bref ... le onload dit explicitement au navigateur que la fonction "alert" devra se déclencher une fois la page chargée (ça peut être n'importe quelle fonction, de même qu'on peut faire appel à plusieurs fonction dans le onload)

Exemple :
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
 
<?php
// PARTIE TRAITEMENT
 
// On vérifie les données lors de la validation du formulaire
$erreur = FALSE;
$msg_erreur = '';
//
if (isset($_POST['envoyer'])) {
    if (empty($_POST['login'])) {
        $erreur = FALSE;
        $msg_erreur = 'Veuillez saisir votre login.';
    }
    else {
        $login = $_POST['login'];
    }
    //
    // ... etc ...
}
//
$onload = '';
if ($erreur === TRUE && !empty($msg_erreur)) {
    $onload = 'onload="alert(\'ERREUR : '.$msg_erreur.'\')"';
}
 
 
 
// PARTIE HTML (formulaire)
?>
<html>
<head>
 
</head>
<body <?php echo $onload; ?>>
 
<form>
... etc ...
</form>
</body>
</html>
Pas du tout testé, de même que c'est un principe de base.
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]
RunCodePhp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/12/2010, 18h58   #10
Membre Expert
 
Inscription : septembre 2010
Messages : 1 233
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 1 233
Points : 1 553
Points : 1 553
Citation:
Envoyé par RunCodePhp Voir le message
Ensuite, pour déclencher quelque chose en Javascript lors du chargement de la page, il faut utiliser l'évènement onload au niveau du body.
Oui c'est beaucoup plus propre que de reporter le js en bas de page.

Pour compléter un peu, je dirai cependant que le onload dans la balise body risque fort de ne pas fonctionner si une autre fonction js a utilisé précédemment ce même évènement.
Pour ceux que cela intéresse, une solution :
Code :
1
2
3
4
5
6
7
8
9
function addLoadListener(func) { 
  if (window.addEventListener) { 
    window.addEventListener("load", func, false); 
  } else if (document.addEventListener) { 
    document.addEventListener("load", func, false); 
  } else if (window.attachEvent) { 
    window.attachEvent("onload", func); 
  } 
}
ABCIWEB est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h05.


 
 
 
 
Partenaires

Hébergement Web