Passage de param

Signaler
Messages postés
188
Date d'inscription
mercredi 9 avril 2003
Statut
Membre
Dernière intervention
10 août 2009
-
Messages postés
17
Date d'inscription
mardi 23 novembre 2004
Statut
Membre
Dernière intervention
25 mai 2005
-
Help !!!

Voilà, j'ai deux pages en asp.net :

- 1 qui contient un champ textbox definit comme ca :



- l'autre qui contien au chargement de la page le code suivant :

dim var as string = Request.Form("Txt_rqt")



Malheureseument val ne se remplit pas du texte contenu dans "Txt_rqt"
de l'autre page... Pourtant j'ai bien vérifié, mon formulaire est en
mode "post"..; Comment faire ? Parce que apparament le passage en
methode GEt de parametre est limité en nombre de caractères ( et g
besoin de passer de très longue chaine, style des requetes SQL ).

Merci de me répondre

8 réponses

Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
T'es vraiment serieux quand tu dis que tu veux passer les requetes SQL par une méthode post ou get ?

car si c'est le cas, j'ose meme pas imaginer le nombre de trou de securité que t'as dans ton site :p es tu au courant, qu'avec une requete SQL, on peut envoyer le contenu de la bdd par mail ? puis formater etc... ?

Un conseil, considere toujours le client comme un méchant, tu dois toujours pensé que le client va faire le truc impossible que t'as pas trouvé necessaire de gerer. LE CLIENT EST UN PIRATE !!!

une fois ces choses dites, oublie tout tes reflexes d'asp, ne change pas la page vers laquelle est redirigé aprés le post, laisse la sur le server, tu recupereras ainsi ta variable en faisant

dim var as string = tct_rq.text

puis aprés tu redirige, response.redirect("tapage.aspx") ou alors server.transfer("tapage.aspx") dans le second cas tu gardes tes variables dans le head de la requete, donc t'auras accés au request.form("txt_rqt")

mais fais gaffe niveau secu, de nos jours c'est primordial.


<HR>
Cyril - MCP ASP.net
Webmaster de : Hoshimi.CodeS-SourceS.fr
Messages postés
188
Date d'inscription
mercredi 9 avril 2003
Statut
Membre
Dernière intervention
10 août 2009

lol ben en fait j'ai un systeme d'autentification : on ne pe pas
acceder a des pages si on c pas logger, et si on a pas un certain
niveau d'autorisation... donc cote securité en fait c bon....

par contre j'ai pas bien compris ton systeme.... tu pourrais me faire un tout petit exemple ou meme juste un petit schema?

merci
Messages postés
1642
Date d'inscription
samedi 6 novembre 2004
Statut
Modérateur
Dernière intervention
28 avril 2011
2
Salut



jesusonline a juste voulu dire qu'en ASP.Net on ne récupère plus le contenu des formulaires avec le bon vieux Request.Form !!



Tu as un TextBox qui s'appelle "Txt_rq" et donc un bouton avec un onclick="Button_Click".

Et dans ton code tu as donc une Sub nommée Button_Click :



Sub Button_Click (Sender As Object, E As EventArgs)

Dim var As String

var = Txt_rq.Text

'et donc tu récupères le contenu du champ texte dans "var" !!

End Sub



(je me demande d'ailleurs à quoi peu bien servir le Request.Form() maintenant...)

j'espère que c'est bien expliqué...

(un seul dernier conseil : onblie tout ce que tu as vu en ASP3 !!! quans tu passes au .net )


Nurgle
C'est une grande folie que de vouloir être sage tout seul !
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
Nurgle ==> Request.Forms sert beaucoup plus qu'on peut l'imaginer

dès que tu veux faire quelques chose de correcte avec un peu de js sans vouloir allonger le code html et ni faire 15postback le request.form sert enornement :o à ce propos regarde ma derniere source à propos du ClientCallBack ou tu auras beau faire me.drop2.selecteditem, il va planter car dans sa tete et c'est vrai le drop est vide, car on l'a remplis via javascript ... donc un request.forms et le tour est reglé :)

Sinon c'est clair que dans ton cas, il ne faut pas utiliser request.forms meme en .net 2 ou il est plus aisé de mettre l'action du form sur une autre page, on aura des solutions bien plus pratiques.

En ce qui concerne le problème de secu, je continuerais à dire que ce n'est pas une bonne solution, certe l'accès est protéger, mais c'est quand meme pas une bonne solution :p sauf si tu as un parser derriere qui va analyser ta requete SQL avant de l'envoyer ...

Mais bon, il est preferable d'eviter, c'est pour moi une question de principe car en pratique meme si personne ne vas jamais essayé de faire quelque chose de méchants sur ton site, tu peux trés bien oublier un truc qui permet a "n'importe qui" de se connecter en tant qu'admin sur le site ...

Juste un exemple, sur ce site, meme en tant qu'admin on ne peut absolument rien supprimer, donc meme si quelqu'un arrive à recuperer le login d'un admin, il ne pourra rien faire sur CS au pire desactiver des sources que n'importe quelle autre admin peut ractiver ...

tout ca pour te dire qu'il vaut mieux eviter le passage de requete sql :)


<HR>
Cyril - MCP ASP.net
Webmaster de : Hoshimi.CodeS-SourceS.fr
Messages postés
17
Date d'inscription
mardi 23 novembre 2004
Statut
Membre
Dernière intervention
25 mai 2005

J'ai un problème similaire à celui-ci.

J'ai un formulaire dont je voudrai faire passer les données dans un pop up, en cliquant sur un bouton.
Comment puis-je procéder ?

Voici le code quand j'appuie sur le bouton.

Private
Sub BtnImprimerFeuille_Click(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles BtnImprimerFeuille.Click


Body.Attributes.Add("onload", "window.open('ReportImpression.aspx','','left=5,top=10,width=780,height=600,scrollbars=yes');")



End
Sub

La page appelée fait une mise en page avec les données transférées. Je pensais les récupérer par un Request.Form, mais ça ne fonctionne pas.
Je débute en ASP.Net, donc je suis un peu paumé. J'ai plus l'habitude de l'ASP.
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
avec un request.form c'est normal par contre tu pourras dans ce cas recuperer tes données en javascript.

this.opener.document.getElemenById("tonchamp").value ou un truc du genre.

Mais va plutot sur www.javascriptfr.com pour ton cas.


<HR>
Cyril - MCP ASP.net
Webmaster de : Hoshimi.CodeS-SourceS.fr
Messages postés
17
Date d'inscription
mardi 23 novembre 2004
Statut
Membre
Dernière intervention
25 mai 2005

En utilisant Server.Transfert, ça marche nickel. Seulement, j'aimerais afficher ça dans un popup, ou une nouvelle fenêtre.
Messages postés
17
Date d'inscription
mardi 23 novembre 2004
Statut
Membre
Dernière intervention
25 mai 2005

C'est assez particulier, dans mon cas.
La page ReportImpression.aspx crée en fait un fichier PDF.

voici comment j'utilise le Request.Form :


MyTemplate.Elements.Add(
New ceTe.DynamicPDF.PageElements.Label(Request.Form("TextBox1"), 30, 90, 240, 50, ceTe.DynamicPDF.Font.Courier, 10))