[ Resolu - Merci ] FORM et Include

HTML5, CSS3, Javascript, support des mobiles... Que penser de votre site ? Vous manquez d'informations pour la construction d'un site qui puisse s'afficher correctement partout ? C'est un problème simple, un peu complexe ? Venez ici !
lpgc
Lézard à collerette
Messages : 259
Inscription : 16 juil. 2006, 01:02

[ Resolu - Merci ] FORM et Include

Message par lpgc »

bonjour, :D

Comment récupérer une FORM dans un include ??

Je travaille en ASP mais le problème est sûrement identique en PHP

j'ai une page A.htm avec un formulaire <form method="POST" action="B.asp">

B.asp contient du javascript construit à partir de C.asp et des infos provenant de A.htm
<script src="C.asp" language="JavaScript" type="text/javascript"></script>

Comment récupérer dans C.asp la form de A.htm ??

le Request.Form("5000_lignes") fonctionne très bien dans B.asp mais pas dans C.asp

Merci beaucoup pour votre aide
Christian

PS. Le problème est sûrement identique si on essaie de récupérer une form A dans un include C de B ??

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.7) Gecko/20060909 Firefox/1.5.0.7
Dernière modification par lpgc le 22 nov. 2006, 10:07, modifié 1 fois.
Benoit
Administrateur
Messages : 4894
Inscription : 19 juil. 2003, 10:59

Message par Benoit »

Je ne comprends pas tout :)

Bon, on a A.htm qui contient un formulaire, dont le traitement côté serveur est assuré par B.asp. Jusque là, ça va.

Mais alors tu as C.asp qui génère du JavaScript (pour le contrôle des entrées du formulaire depuis A ?) si j'en crois ta ligne

Code : Tout sélectionner

<script src="C.asp" language="JavaScript" type="text/javascript"></script>
Je ne comprends pas l'intérêt de générer du JavaScript dynamiquement, ce n'est pas le même pour tout le monde ?

Je ne suis pas sûr, mais j'ai l'impression que tu t'emmêles les pinceaux avec les types de fichiers, et la distinction entre ce qui se passe sur le client et sur le serveur.
♫ Li tens s'en veit, je n'ai riens fais ;
Li tens revient, je ne fais riens. ♪
lpgc
Lézard à collerette
Messages : 259
Inscription : 16 juil. 2006, 01:02

Message par lpgc »

bonjour, :D

:idea: que ce soit des includes ou du javascript... l'intérêt est immense

Je prends l'exemple du javascript en postulat duquel il est préférable d'utiliser
du javascript externe : <script src="xxx.js"></script>
plutôt que du javascript interne à la page :

Code : Tout sélectionner

<head>
<script type="text/javascript">
....
</script>
</head>
dans A.htm l'internaute entre une liste de ses films dans une form et précise son pseudo
la FORM est transmise à B.asp
et au niveau serveur je recherche les films correspondant à la liste
et je renvoie en javascript
donc dans C.asp .... ( C.js si vous préférez mais comme çà tourne sur le serveur c'est de l'asp produisant du javascript )
la table des images correspondant à la liste entrée dans la Form

Je pourrais très bien faire
<script src="xxx.asp?form=..."></script>
mais je ne veux pas que le pseudo soit visible dans la source
donc j'espérais transmettre directement la form :?: :?:

Merci :D
Christian

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.8) Gecko/20061025 Firefox/1.5.0.8
martin
Varan
Messages : 1074
Inscription : 21 janv. 2004, 16:23

Message par martin »

lpgc a écrit : Je prends l'exemple du javascript en postulat duquel il est préférable d'utiliser
du javascript externe : <script src="xxx.js"></script>
plutôt que du javascript interne à la page
lpgc a écrit :Je pourrais très bien faire
<script src="xxx.asp?form=..."></script>
mais je ne veux pas que le pseudo soit visible dans la source
donc j'espérais transmettre directement la form :?: :?:
Tu as bien compris, soit tu appelles ton script js dynamique en lui passant des paramètres GET, soit tu génères ton javascript dynamiquement dans la page en cours, en interne. Pas d'autres solutions.

Sur le fait qu'il soit préférable d'utiliser du javascript externe, lié, je trouve cela faux avec du javascript généré dynamiquement. Que gagnes tu à part de potentiels problèmes de cache ? Cache qui au contraire est gagnant avec un js "statique".
La séparation du contenu et des comportements est une bonne chose (et je suppose que c'est ce que tu pensais), mais elle peut être conservée en plaçant le script généré dynamiquement dans le head de la page.
lpgc
Lézard à collerette
Messages : 259
Inscription : 16 juil. 2006, 01:02

Message par lpgc »

merci pour la réponse rapide :D
Tu as bien compris, soit tu appelles ton script js dynamique en lui passant des paramètres GET, soit tu génères ton javascript dynamiquement dans la page en cours, en interne. Pas d'autres solutions.
Je pensais que c'était possible avec un POST...
en fait c'est plus pour le passage du mot de passe de la form
que pour le pseudo que le GET n'est pas l'idéal
<script src="xxx.asp?pseudo=...&pwd=xxx"></script>

:idea: C'est vrai que je pourrais crypter le mot de passe au niveau serveur pour qu'il soit légèrement moins visible

pour obtenir quelque chose du style
B.asp : pwd = Request.Form("pwd") : pwd_crypte = Crypte(pwd)
<script src="C.asp?pseudo=...&pwd=pwd_crypte"></script>
et dans C.asp pwd_crypte = Request.QueryString("pwd") : pwd = Decrypte(pwd_crypte)

:o C'était plus simple avec directement pwd = Request.Form("pwd") dans C.asp
Que gagnes tu à part de potentiels problèmes de cache ?
C'est relativement gênant d'avoir toutes les images dans le code B.asp...
même généré dynamiquement pour ne sélectionner que le nécessaire
çà prend beaucoup de place
et ce n'est pas pratique en cours de développement

Code : Tout sélectionner

<script language="javascript">
  var ajpeg = new Array(435);  ( çà pourrait être quelques milliers )
  ajpeg[1] = "com/Z2415.jpg";ajpeg[2] = "aven/BAC2082.jpg";...
Merci
Christian

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.8) Gecko/20061025 Firefox/1.5.0.8
martin
Varan
Messages : 1074
Inscription : 21 janv. 2004, 16:23

Message par martin »

lpgc a écrit : C'est relativement gênant d'avoir toutes les images dans le code B.asp...
même généré dynamiquement pour ne sélectionner que le nécessaire
çà prend beaucoup de place
et ce n'est pas pratique en cours de développement

Code : Tout sélectionner

<script language="javascript">
  var ajpeg = new Array(435);  ( çà pourrait être quelques milliers )
  ajpeg[1] = "com/Z2415.jpg";ajpeg[2] = "aven/BAC2082.jpg";...
rien ne t'empêche d'avoir un include côté serveur pour gérer uniquement cette partie, i.e. dans B.php un include 'myJavascript.php'; , et myJavascript.php génère le script désiré...
lpgc
Lézard à collerette
Messages : 259
Inscription : 16 juil. 2006, 01:02

Message par lpgc »

:oops: Je crois pas que ce soit la bonne solus

çà ne fait qu'1 an que je fais un peu de programmation Web
mais pour moi un include que ce soit en ASP ou en PHP...
C'est assembler côté serveur plusieurs pages ASP ou des morceaux de pages
en une seule page qui sera envoyée côté client

Et comment vous faites pour passer les données de la FORM aux includes... :idea:

Sont il capables eux de faire dans l'include asp : pwd = Request.Form("pwd") ?

Code : Tout sélectionner

The #include Directive
You can insert the content of one ASP file into another ASP file before the server executes it, with the #include directive. The #include directive is used to create functions, headers, footers, or elements that will be reused on multiple pages.
On aurait donc dans B.asp quelque chose du style
<!--#include file="C.asp"-->
avec C.asp capable de récupérer la FORM de A.html

EN FAIT : C'est le quelque chose capable de récupérer la FORM que j'ai besoin

Merci
Christian

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.8) Gecko/20061025 Firefox/1.5.0.8
Asumbaa
Tyrannosaurus Rex
Messages : 2411
Inscription : 08 déc. 2004, 20:07

Message par Asumbaa »

Salut,

J'ai l'impression qu'il te manque des infos de base sur les formulaires...
Quand tu as un formulaire <form action="toto.asp"...>, à la validation du formulaire les saisies de l'utilisateur sont transmises à ta page toto, que ce soit avec la méthode GET (dans l'adresse) ou avec la méthode POST.

Dans les deux cas, tu traites ensuite ces informations dans ton code ASP/PHP, côté serveur. En ASP je ne sais pas, mais en PHP les données saisies se retrouvent dans la variable globale $_POST (ou $_GET avec la méthode GET).

Nul besoin de les traiter en Javascript à ce moment là, si tu utilises du js ce sera avant de transmettre les infos à ta page toto, par exemple pour vérifier une syntaxe mail ou autre (attention ce genre de vérifications doit se faire aussi côté serveur).

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1) Gecko/20061010 Firefox/2.0
martin
Varan
Messages : 1074
Inscription : 21 janv. 2004, 16:23

Message par martin »

Faire un include n'est rien d'autre qu'insérer une portion de programme dans un autre, comme si son contenu était présent dans ce programme appelant.

En php par exemple, A.php :

Code : Tout sélectionner

<?php
a = 1;
a = a + 1;
echo a;
?>
fait exactement la même chose que A2.php :

Code : Tout sélectionner

<?php
a = 1;
include 'B.php';
echo a;
?>
avec B.php :

Code : Tout sélectionner

<?php
a = a + 1;
?>
Si tu sais récupérer tes champs de formulaire dans A.asp, tu peux les traiter dans l'include B.asp...
lpgc
Lézard à collerette
Messages : 259
Inscription : 16 juil. 2006, 01:02

Message par lpgc »

:oops: .... un peu oublié comment fonctionnaient les includes

pour recap : en ASP : Aasp.asp ( cliquer pour tester )

Code : Tout sélectionner

<%
a = 1
%>
<!--#include file="Basp.asp"-->
<%= a %>
Basp.asp

Code : Tout sélectionner

<%
a = a + 1
%>
La grosse différence entre l'ASP et le PHP
c'est que l'include est une instruction PHP alors que l'include ASP est de l'html
en PHP A.php ( cliquer pour tester )

Code : Tout sélectionner

<?php
$a = 1;
include 'B.php';
echo $a;
?>

Code : Tout sélectionner

<?php
$a = $a + 1;
?>
Ce que j'aurais besoin :!: ( je crois que le principe n'est pas le même que les includes )
A.htm ( cliquer pour tester )

Code : Tout sélectionner

	<form method="POST" action="B.asp">
	  bonjour, votre pseudo est : 
      <input type="text" value="lpgc" name="pseudo" size="11">
	  <input type="submit" value="Envoyer" name="B1"><input type="reset" value="Rétablir" name="B2">
	</form>
B.asp

Code : Tout sélectionner

<%
pseudo=Request.Form("pseudo")
%>

<html>

<head>
	<title>Page B.asp</title>
	<script src="C.asp?pseudo=<%=pseudo%>" language="JavaScript" type="text/javascript"></script>
</head>

<body>

	Le pseudo  
<script type="text/javascript">
	document.write(pseudo)
    </script>
</body>

</html>
C.asp

Code : Tout sélectionner

<%
pseudo=Request.QueryString("pseudo")
Response.ContentType = "text/javascript"
%><!--
var pseudo = 'sur Geckozone est <%=pseudo%>';
//-->
Mon problème est partiellement résolu

Si le volume d'information qui peut être transféré par un GET est aussi important que celui d'un POST :?:

autrement dit SI ma FORM contient 5000 lignes puis je faire par un GET :
C.asp?envoi=5000 lignes

:roll: Mais je trouve quand même dommage de ne pouvoir récupérer directement la FORM de A.htm dans C.asp
Je reste persuadé que çà doit être possible... mais je sais pas comment :?:

Merci :D
Christian

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.8) Gecko/20061025 Firefox/1.5.0.8
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Message par calimo »

lpgc a écrit :Je pensais que c'était possible avec un POST...
en fait c'est plus pour le passage du mot de passe de la form
que pour le pseudo que le GET n'est pas l'idéal
<script src="xxx.asp?pseudo=...&pwd=xxx"></script>
Euh… tu es vraiment sur d'avoir besoin de tout ça côté client ? :shock:

Un mot de passe, tu le reçois, tu le mets dans une session (= côté serveur), si possible "brouillé" (!= chiffré, et certainement pas crypté :lol: ) par exemple avec sha1 ou à la rigueur md5, mais en aucun cas tu ne le renvoies d'une quelconque manière à l'utilisateur. Jamais. Interdit, prohibé, forbidden, verboten, vietato, prohibido, en chinois, latin, dauphin ou jupitérien, tout ce que tu veux, mais par pitié, pas ça ! :-|

Si tu as besoin de faire ça, c'est qu'il y a un problème de conception quelque part :wink: (et qu'il va falloir qu'on en sache un peu plus sur ce que tu fais).


PS : encore une fois, je ne pense pas que javascript soit réellement nécessaire pour gérer un mot de passe… javascript c'est pour des "petits plus" une fois que tout fonctionne bien. Ce serait plus simple pour toi si tu te concentrais sur le côté serveur et que, pour l'instant, tu oubliais le côté client et le javascript, parce que tu es vraiment en train de tout mélanger :wink:

Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.8.1) Gecko/20061010 Firefox Firefox/2.0
lpgc
Lézard à collerette
Messages : 259
Inscription : 16 juil. 2006, 01:02

Message par lpgc »

bonjour Calimo :D
Euh… tu es vraiment sur d'avoir besoin de tout ça côté client ? :shock:
Je crois bien :!: ... Je dois importer une liste de titre dans ma DVDthèque


j'ai donc une 1ère page où on colle les titre = A.htm ( voir Image A.htm )

ensuite coté serveur j'essaie de retrouver dans la DB une équivalence aux films que je place dans un tableau = B.asp
On clique sur la ligne du tableau pour rechercher un autre films dans la liste du haut
Mais que ce soit le tableau OU la liste du haut : je dois montrer l'image du Film ( onmouseMOVE pour le tableau et onCLICK sur la liste )
( voir Image B.asp )

Et enfin un programme D.asp Fait les mises à jour en BD =
Création de la DVDthèque d'un utilisateur à partir d'une liste de Films

Désolé pour les images... pour le moment tout est en test en local

Cordialement
Christian

PS
tu le mets dans une session (= côté serveur)
Les variables de session sont fournies chez tout les hébergeurs :?:


Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.8) Gecko/20061025 Firefox/1.5.0.8
Benoit
Administrateur
Messages : 4894
Inscription : 19 juil. 2003, 10:59

Message par Benoit »

lpgc a écrit :

Code : Tout sélectionner

<script src="C.asp?pseudo=<%=pseudo%>" language="JavaScript" type="text/javascript"></script>

Code : Tout sélectionner

<script type="text/javascript">
	document.write(pseudo)
    </script>
OK, je vois pourquoi tu crois avoir besoin de générer ton JavaScript dynamiquement, mais ce n'est pas vrai :)

En fait, imaginons que tu veuilles vraiment faire un traitement en JavaScript (pas simplement afficher une variable que tu connais déjà..; sinon tu le ferais en ASP) tu devrais simplement déclarer des fonctions dans ton JavaScript, et passer les éventuelles variables en paramètres à ces fonctions. Mais pas besoin de les passer en paramètre au script complet et le forcer à être généré complètement au lieu de rester gentiment dans le cache.
♫ Li tens s'en veit, je n'ai riens fais ;
Li tens revient, je ne fais riens. ♪
lpgc
Lézard à collerette
Messages : 259
Inscription : 16 juil. 2006, 01:02

Message par lpgc »

bonjour Benoit :D

.... :? Axiome : j'ai une connaissance suffisante du Web que pour être conscient de ce qui tourne sur le serveur ( asp, php, ... )
et ce qui trourne sur le client ( html, javascript, ... )
MEME si c'est pas vrai semblerait il

:arrow: :arrow: EN SE BASANT SUR ( cette Image B.asp )
:?: :?: Comment faites vous pour réaliser ce genre de page :?: :?:

pour rappel : Un internaute donne une liste quelconque de titres de Films
( de 1 à 5000 Titres de films ) Maximum 15.000 DVD existant
+ son pseudo et son password

Et il faut mettre cette liste dans une table et montrer l'image correpondante
dès que la souris se place sur une ligne du tableau

:!: :!: Hors de question de ramener en html 5000 images... temps de chargement des images !

Merci pour l'expertise :D
Christian

PS. Sorry... j'ai l'impression d'avoir présenter plusieurs problèmes

Ma seule question initiale était :
Comment passer cette FORM au script serveur qui produit du javascript
<script src="C.asp?form=<%=cette_FORM%>" language="JavaScript">

avec pour sous question solutionnée par Calimo
Comment ne pas voir dans la source le password
<script src="C.asp?form=<%=cette_FORM..pseudo...password..5000 films..%>" language="JavaScript">
:arrow: Utiliser une variable de scession pour garder sur le serveur le mot de passe
:!: Surtout ne pas le renvoyer sur le client... çà j'ai compris ! :D
:?: Est ce que tout les hébergeurs permettent d'utiliser des variables de scession :?:

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.8) Gecko/20061025 Firefox/1.5.0.8
lpgc
Lézard à collerette
Messages : 259
Inscription : 16 juil. 2006, 01:02

Message par lpgc »

bonjour, :D

je viens de faire mon 1er test sur le serveur pour 400 films
et çà fonctionne plutôt pas mal 8-)

Merci à tous pour l'aide...çà m'a beaucoup aidé :D :D

Résolu en utilisant des variables de session en écriture dans B.asp
et en lecture dans C.asp

Merci
Christian

PS pour Calimo
: j'ai lu sur w3schools que les variables de session étaient transmises
dans des cookies côté client... j'ai peut être mal compris... j'suis pas bon en Anglais
The Session object
When you are working with an application, you open it, do some changes and then you close it. This is much like a Session. The computer knows who you are. It knows when you start the application and when you end. But on the internet there is one problem: the web server does not know who you are and what you do because the HTTP address doesn't maintain state.

ASP solves this problem by creating a unique cookie for each user. The cookie is sent to the client and it contains information that identifies the user. This interface is called the Session object.

The Session object is used to store information about, or change settings for a user session. Variables stored in the Session object hold information about one single user, and are available to all pages in one application. Common information stored in session variables are name, id, and preferences. The server creates a new Session object for each new user, and destroys the Session object when the session expires.
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.8) Gecko/20061025 Firefox/1.5.0.8
Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 4 invités