OVH Cloud OVH Cloud

Formulaire popup

6 réponses
Avatar
Pierre
Bonjour à toutes et à tous,

J'ai un problème lié à l'ouverture d'un formulaire à partir d'une
instruction javascript.

J'ai deux fichiers sur mon serveur:

- Formulaire.php
- Récup_Données.php

Quand je lance le fichier Formulaire.php directement, c'est-à-dire :

http://mon_serveur/Formulaire.php

il s'ouvre dans une fenêtre de la dimension du navigateur, je remplis
les cases et quand j'appuie sur le bouton "Valider", mes données sont
correctement transmises au fichier Récup_Données.php

Par contre, si je lance ce même formulaire avec une instruction
javascript : window.open(...), la fenêtre du formulaire s'ouvre dans une
fenêtre flottante, je remplis les cases mais cette fois, quand je clique
sur le bouton "Valider", les données ne sont plus transmises au fichier
Récup_Données.php.

Vous avez des idées du pourquoi du comment ?

Merci de votre aide.

Pierre.

6 réponses

Avatar
ASM

- Formulaire.php
- Récup_Données.php

si je lance ce même formulaire avec une instruction
javascript : window.open(...),


du genre :
machin=window.open('Formulaire.php,'','width00,height00,scrollbars=1');
?

la fenêtre du formulaire s'ouvre dans une
fenêtre flottante, je remplis les cases mais cette fois, quand je clique
sur le bouton "Valider", les données ne sont plus transmises au fichier
Récup_Données.php.

Vous avez des idées du pourquoi du comment ?


tu es certain de ton coup ?
comment sais-tu que les données ne sont pas transmises ?

Normalement, le Récup_Données.php ( *sans accent svp !* )
doit se charger dans ton popup

sauf à avoir prévu autre chose ?
ou à avoir un anti-virus ou Norton-truc qui bloque qque chose ?


--
Stephane Moriaux et son [moins] vieux Mac

Avatar
Pierre


- Formulaire.php
- Récup_Données.php

si je lance ce même formulaire avec une instruction javascript :
window.open(...),



du genre :
machin=window.open('Formulaire.php,'','width00,height00,scrollbars=1');
?

la fenêtre du formulaire s'ouvre dans une fenêtre flottante, je
remplis les cases mais cette fois, quand je clique sur le bouton
"Valider", les données ne sont plus transmises au fichier
Récup_Données.php.

Vous avez des idées du pourquoi du comment ?



tu es certain de ton coup ?
comment sais-tu que les données ne sont pas transmises ?


Parce que je vois rien dans la fenêtre de récupération.

Normalement, le Récup_Données.php ( *sans accent svp !* )


les accents c'est juste pour les explications.

doit se charger dans ton popup

sauf à avoir prévu autre chose ?
ou à avoir un anti-virus ou Norton-truc qui bloque qque chose ?





Ben voilà le formulaire (Fpass.php) :


<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html;
charset=ISO-8859-1">
<title>
Votre identification
</title>
</head>
<body>
<small>
<span style="font-family: Verdana;">
Entrez votre
identifiant et votre mot de passe pour vous connecter &agrave;
votre base de donn&eacute;e.
<br>
<br>
<form action="NoFe.php" method="get" name="Acces">
Nom de connexion :
<input size="30" name="NC">
&nbsp;&nbsp;
<br>
<br>
Mot de passe : &nbsp; &nbsp; &nbsp;
<input maxlength="8" size="30" name="MP" type="password">
<br>
<br>
<center>
<table style="width: 80%; text-align: left; margin-left:
auto; margin-right: auto; font-family: Verdana;" border="0"
cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td>
<input onclick="top.close()" name="Valider"
value="Valider" type="submit">
</td>
<td style="text-align: right;">
<input name="Annuler" value="Annuler" type="reset">
</td>
</tr>
</tbody>
</table>
</center>
<br>
</form>
</span>
</small>
</body>
</html>



et la feuille de récupération et .. lancement en popup (NoFe.php) :


<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<script></script>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="content-type">
<title>
NoFe
</title>
</head>
<?
if (isset($_GET['NC']))
{
$NC = $_GET['NC'];
echo "$NC<br>";
}
if (isset($_GET['MP']))
{
$NC = $_GET['MP'];
echo "$NC<br>";
}
?>
<body>
<script type="text/javascript">
function NF()
{
;
H0;
X=(screen.width-L)/2;
Y=(screen.height-H)/2;
F1 = window.open("Fpass.php", "Identification", "width="+L+",
height="+H+", left="+X+", top="+Y);
}
</script>
<img onclick="NF()" style="width: 16px; height: 16px;" alt=""
src="../Bt1.gif">
</body>
</html>


Si vous voyez ce qui cloche.

Merci de votre aide.

Pierre


Avatar
ASM




Parce que je vois rien dans la fenêtre de récupération.

Si vous voyez ce qui cloche.


j'ai rien trop compris !
comme l'impression que les 2 fichiers se mordent la queue
l'un appelant toujours l'autre

y cloche que tu fais les choses à l'envers.

Je ferais qque chose comme
page du formulaire
qui, à ce que je comprends est dans fenêtre principale
et qui doit se fermer au lancement du popup

donc on lance la récup dans la cible nommée 'verif'
cette cible est celle prévue dans le script du popup
prévu dans le formulaire, le popup étant lancé au submit

fichier de départ Fpass.php :
<html>
<script type="text/javascript">
h = (sreen.height-200)/2;
g = (sreen.width-416)/2;
function pop() {
truc=window.open('','verif',',height0,scrollbars=1');
truc.moveTo(g,h);
truc.onload = function() { opener.close(); };
}
</script>
<form action="NoFe.php" method="get" name="Acces"
target="verif" onsubmit="pop();">
Nom : <input type= text name="NC"
Pass : <input type=password name="MP">
<input type=submit value="OK">
</form>
</html>

fichier d'arrivée NoFe.php :
<html>
<?
$NC = ''; $MP = '';
if(!empty($_GET['NC']))
{
$NC = $_GET['NC'];
echo "$NC<br />";
}
if(!empty($_GET['MP']))
{
$MP = $_GET['MP'];
echo "$MP<br />";
}
?>
<a href="la_suite.php?NC=<?=$NC?>&amp;MP=<?=$MP?>">
<!-- bravo ! la discrétion du mot de passe ! -->
<img style="width: 16px; height: 16px; border: 0;" alt="" src="../Bt1.gif">
</a>
</html>

Bon ! là si le password est faux on est dans le KK non ?
et il n'est pas certain du tout que le navigateur accepte
de fermer l'opener ...

Maintenant, la fenêtre d'origine (opener) pourrait ne pas être fermée
et le popup après vérif pourrait y relancer la page suivante
méritée après le login bien compliqué.

--
Stephane Moriaux et son [moins] vieux Mac


Avatar
Pierre





Parce que je vois rien dans la fenêtre de récupération.



Si vous voyez ce qui cloche.



j'ai rien trop compris !
comme l'impression que les 2 fichiers se mordent la queue
l'un appelant toujours l'autre

y cloche que tu fais les choses à l'envers.

Je ferais qque chose comme
page du formulaire
qui, à ce que je comprends est dans fenêtre principale
et qui doit se fermer au lancement du popup

donc on lance la récup dans la cible nommée 'verif'
cette cible est celle prévue dans le script du popup
prévu dans le formulaire, le popup étant lancé au submit

fichier de départ Fpass.php :
<html>
<script type="text/javascript">
h = (sreen.height-200)/2;
g = (sreen.width-416)/2;
function pop() {
truc=window.open('','verif',',height0,scrollbars=1');
truc.moveTo(g,h);
truc.onload = function() { opener.close(); };
}
</script>
<form action="NoFe.php" method="get" name="Acces"
target="verif" onsubmit="pop();">
Nom : <input type= text name="NC"
Pass : <input type=password name="MP">
<input type=submit value="OK">
</form>
</html>

fichier d'arrivée NoFe.php :
<html>
<?
$NC = ''; $MP = '';
if(!empty($_GET['NC']))
{
$NC = $_GET['NC'];
echo "$NC<br />";
}
if(!empty($_GET['MP']))
{
$MP = $_GET['MP'];
echo "$MP<br />";
}
?>
<a href="la_suite.php?NC=<?=$NC?>&amp;MP=<?=$MP?>">
<!-- bravo ! la discrétion du mot de passe ! -->
<img style="width: 16px; height: 16px; border: 0;" alt=""
src="../Bt1.gif">
</a>
</html>

Bon ! là si le password est faux on est dans le KK non ?
et il n'est pas certain du tout que le navigateur accepte
de fermer l'opener ...

Maintenant, la fenêtre d'origine (opener) pourrait ne pas être fermée
et le popup après vérif pourrait y relancer la page suivante
méritée après le login bien compliqué.

J'ai pas réussi à faire marcher. Je vais persister.


Merci.

Pierre.



Avatar
ASM

fichier de départ Fpass.php :

fichier d'arrivée NoFe.php :

J'ai pas réussi à faire marcher. Je vais persister.



comment se fait-ce ?
chez moi çà fonctionne
(aux petites erreurs près de centrage du popup)

on a le popup avec :
- le nom
- le pass (en clair)
- un bouton pour continuer

Reste à savoir ce que tu veux en faire ...

Je pense que le popup arès les vérifs doit faire continuer dans
la fenêtre principale du dessous
car il n'est pas permis de la fermer via JavaScript

voici correctifs des fichiers

==== NoFe.php ===== (popup) ====== <html style="text-align:center">
<title>Recuperation</title>
<script type="text/javascript">
function devant() {
if(opener.focus) self.focus();
go=setTimeout('devant()',200);
}
onload = devant; // pour avoir le popup toujours devant
</script>
<h1>NoFe.php</h1>
<?
$NC = ''; $MP = '';
if(!empty($_GET['NC']))
{
$NC = $_GET['NC'];
echo "Nom = $NC<br />";
}
if(!empty($_GET['MP']))
{
$MP = $_GET['MP'];
echo "Pass = $MP<br />";
}
?>
bouton pour envoyer dans fenetre principale :<br />
<a href="la_suite.php?NC=<?=$NC?>&amp;MP=<?=$MP?>"
onclick="opener.location=this.href;self.close();">
<!-- bravo ! la discrétion du mot de passe ! -->
<img style="width: 16px; height: 16px; border: 0;"
alt="" src="../Bt1.gif"> CONFIRMER
</a>
</html>

===== Fpass.htm ====== (page de départ) ===== <html>
<style type="text/css">
p { text-align: center }
</style>
<script type="text/javascript">
h = (screen.height-200)/2;
g = (screen.width-416)/2;
function pop() {
truc=window.open('','verif',',height0,scrollbars=1');
truc.moveTo(g,h);
}
</script>
<form action="NoFe.php" method="get" name="Acces"
target="verif" onsubmit="pop();">
<p>Nom : <input type= text name="NC"
<p>Pass : <input type=password name="MP">
<p><input type=submit value="OK">
</form>
</html>

--
Stephane Moriaux et son [moins] vieux Mac


Avatar
Pierre
Bonjour à toutes et à tous,

J'ai un problème lié à l'ouverture d'un formulaire à partir d'une
instruction javascript.

J'ai deux fichiers sur mon serveur:

- Formulaire.php
- Récup_Données.php

Quand je lance le fichier Formulaire.php directement, c'est-à-dire :

http://mon_serveur/Formulaire.php

il s'ouvre dans une fenêtre de la dimension du navigateur, je remplis
les cases et quand j'appuie sur le bouton "Valider", mes données sont
correctement transmises au fichier Récup_Données.php

Par contre, si je lance ce même formulaire avec une instruction
javascript : window.open(...), la fenêtre du formulaire s'ouvre dans une
fenêtre flottante, je remplis les cases mais cette fois, quand je clique
sur le bouton "Valider", les données ne sont plus transmises au fichier
Récup_Données.php.

Vous avez des idées du pourquoi du comment ?

Merci de votre aide.

Pierre.


Merci à tous pour votre patience et vos explications. Je m'en vais
changer d'air pendant 15 jours.

Bonnes fêtes à toutes et à tous.