ASP: demande.la forme n'est pas le retour de la valeur?
J'ai formulaire ci-dessous,
<form action="contact_us.asp" method="post" enctype="multipart/form-data" name="form1" id="form1">
<input name="firstname" type="text" id="firstname" size="30" />
<input name="lastname" type="text" id="lastname" size="30" />
<input type="submit" name="submit" id="submit" value="Submit" />
</form>
Mais quand je suis en train d'essayer d'obtenir la valeur de ces variables post dans mon fichier ASP contact_us.asp ensuite, il retourne vide. Le Code est ci-dessous:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
</head>
<%
Dim FirstName, LastName, Email, Message
FirstName = request.form("firstname")
LastName = request.form("lastname")
response.write(FirstName & "OK")
%>
Son retour seulement "OK" pour moi. rien dans la variable Message?
S'il vous plaît aidez-moi et dites-moi quel est le problème ici?
- ? il n'y a pas de
<input name="message"/>
(ouemail
d'ailleurs) dans le HTML ci-dessus. - Quand j'enlève
enctype="multipart/form-data"
HTML <de> tag puis son travail d'amende et de retourner une valeur. - Si vous n'avez pas besoin de faire de l'upload de fichiers vous pouvez supprimer enctype="multipart/form-data"
- Avez-vous bouton soumettre? Ou de montrer comment la force de la méthode POST?
- oui, Il a une "soumettre" bouton HTML. J'ai ajouté le code dans la question. Veuillez vérifier!
- Oui je l'ai fait pour le faire fonctionner. Mais je veux juste savoir si nous avons ajouté
enctype="multipart/form-data"
à notre forme alors, comment allons-nous récupérer les valeurs de simples champs de texte.
Vous devez vous connecter pour publier un commentaire.
ASP classique ne prend pas en charge
multipart/form-data
. C'est une surprise de base de carence, même pour une langue de l'ASP âge vénérable, mais qu'est-ce que tu vas faire à ce sujet, le passage à ASP.NET? (Oui? oh. bien de ne jamais l'esprit, alors.)Si vous ne faites pas l'upload de fichiers, il est plus facile juste pour coller avec la valeur par défaut
enctype
(qui estapplication/x-www-form-urlencoded
). Le seul avantage demultipart/form-data
est que vous pouvez mettre les uploads de fichier en elle. (Théoriquement, il aurait aussi l'avantage que vous pouvez spécifier l'encodage des caractères définitivement. Mais aucun navigateur ne fait que.)Si vous avez besoin de gérer
multipart/form-data
en ASP Classique, vous devrez analyser la demande entrante corps, vous-même, de le diviser en champs et les valeurs. Ou plutôt, plus généralement, utiliser une bibliothèque existante de le faire*.Que la bibliothèque sera généralement fournir des interfaces distinctes pour la lecture des fichiers téléchargés et les autres valeurs d'un formulaire. Cela remplace complètement l'utilisation de l'ASP Classique
Request.Form
interface. Exactement où vous pouvez trouver cela dépend de la bibliothèque de votre choix. Cela signifie que si vous voulez avoir une forme qui peut répondre soitenctype
aussi, vous avez pour vérifier le type et l'utilisation de l'une des deux interfaces différentes.*: Il y a des charges. pour exemple. Je ne suis pas approuvant l'une de ces en tant que tel... ni de réellement analyser multipartites correctement, conformément à la norme, et les deux semblent un peu laxiste sur le nom de fichier de la sécurité (jamais stocker un fichier soumis par l'utilisateur, le nom du fichier. d'urgence de la sécurité!). Mais cela semble être comparable à l'évolution pour télécharger des scripts ASP. Au moins, contrairement à beaucoup, ils ne demandent pas de l'argent pour eux.
J'ai trouvé en supprimant
enctype
complètement (qui par défaut estapplication/x-www-form-urlencoded
) à partir de la balise form quiRequest.Form("SomeInputTagId")
a bien fonctionné avecmethod="post"
. Je n'ai pas besoin d'installer un tiers des lecteurs. Espérons que cette aide.Ne pas utiliser
enctype="multipart/form-data"
De le supprimer à partir du code et voir si cela fonctionne. Le
form-data enctype
est utilisé pour le téléchargement de données, par exemple les fichiers d'image. Vous avez besoin d'accéder à la forme des éléments de façon légèrement différente si vous utilisez cetteenctype
.Si vous êtes le téléchargement de données, puis de l'ASP objet que vous utilisez (par exemple
ASP Upload
) auront des fonctions pour accéder à des champs de formulaire.Request.form("")
l'habitude de travailler.De l'accès au formulaire de valeurs le long des lignes de:
Vous aurez besoin de lire la documentation sur les objets.