IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP Discussion :

Form vers variables session


Sujet :

ASP

  1. #1
    Membre habitué Avatar de Goltar
    Homme Profil pro
    Eternel Etudiant Curieux
    Inscrit en
    Mars 2011
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Eternel Etudiant Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mars 2011
    Messages : 216
    Points : 137
    Points
    137
    Par défaut Form vers variables session
    Bonjour,
    J'aurai besoin d'un petit coup de main.
    J'essaie désespérément de transférer les valeurs introduites dans un formulaire vers des variables session avant de le soumettre. Sans succès !
    je fait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <input name="Nom" 
           id="Nom"
           type="text" 
           class="TxtNorm10" 
           value="" 
           size="41" 
           onblur=<% Session("Nom") = Request.Form("Nom") %>/>
    Quelqu'un pourrait-il me dire, quel est la méthode correcte?
    D'avance merci

  2. #2
    Modérateur
    Avatar de roro06
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    1 480
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 480
    Points : 1 978
    Points
    1 978
    Par défaut
    Bonjour

    oula ! mélange des genres, là ...

    au plus simple : il faut soumettre ton formulaire, et c'est dans la page de traitement de ton formulaire que tu peux affecter tes variables de session. N'oublions pas que cela se fait sur le serveur, le code HTML que tu montres se passe sur le navigateur


    N'oubliez pas de consulter les FAQ ASP et les cours et tutoriels ASP

    " La vie c'est quelque chose de très fort et de très beau.... La vie appartient a tous les vivants. It's both a dream and a feeling. C'est être ce que nous ne sommes pas sans le rester. La vie c'est mourir aussi....Et mourir c'est vraiment strong...c'est rester en vie au delà de la mort...Tous ceux qui sont morts n'ignorent pas de le savoir."
    (J.C. VanDamme, humoriste et philosophe belge . A moins que ce ne soit l'inverse ...)

    Chuck Norris comprend JC Van Damme.

  3. #3
    Membre habitué Avatar de Goltar
    Homme Profil pro
    Eternel Etudiant Curieux
    Inscrit en
    Mars 2011
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Eternel Etudiant Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mars 2011
    Messages : 216
    Points : 137
    Points
    137
    Par défaut
    Oops !
    Bon j'essaie d'adapter.
    Mon formulaire est en POST et application/x-www-form-urlencoded en passant les variables (?Nom=(Request.form("Nom")& Prenom = (Request.form("Prenom")
    Il insère bien mon formulaire dans ma BDD puis est redirigé vers une page résultat.
    Dans celle-ci je récupère les deux variables de l'url pour les mettre dans des variables session:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <%
    If (Session("Nom") <> "") Then 
    Session("Nom") = Request.QueryString("Nom")
    End If
    If (Session("Prenom") <> "") Then 
    Session("Prenom") = Request.QueryString("Prenom")
    End If
    %>
    Je tente d'afficher celle-ci par
    Mais nada, vide de chez vide ! rien ne s'affiche
    Normal?

  4. #4
    Membre habitué Avatar de Goltar
    Homme Profil pro
    Eternel Etudiant Curieux
    Inscrit en
    Mars 2011
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Eternel Etudiant Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mars 2011
    Messages : 216
    Points : 137
    Points
    137
    Par défaut
    Je crois avoir trouvé une solution plus simple.
    Je vais populer un champs de ma db avec (Session.SessionID)
    Et récupérer le recordset via (Session.SessionID) de l'autre côté.

  5. #5
    Modérateur
    Avatar de roro06
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    1 480
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 480
    Points : 1 978
    Points
    1 978
    Par défaut
    Attention !

    Si un formulaire est en POST, tu récupère tes données par Request.Form
    en GET, il faut utiliser Request.Querystring.

    Je pense que ton erreur est là.


    N'oubliez pas de consulter les FAQ ASP et les cours et tutoriels ASP

    " La vie c'est quelque chose de très fort et de très beau.... La vie appartient a tous les vivants. It's both a dream and a feeling. C'est être ce que nous ne sommes pas sans le rester. La vie c'est mourir aussi....Et mourir c'est vraiment strong...c'est rester en vie au delà de la mort...Tous ceux qui sont morts n'ignorent pas de le savoir."
    (J.C. VanDamme, humoriste et philosophe belge . A moins que ce ne soit l'inverse ...)

    Chuck Norris comprend JC Van Damme.

  6. #6
    Membre habitué Avatar de Goltar
    Homme Profil pro
    Eternel Etudiant Curieux
    Inscrit en
    Mars 2011
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Eternel Etudiant Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mars 2011
    Messages : 216
    Points : 137
    Points
    137
    Par défaut
    Merci Roro !
    J'ai résolu le problème en travaillant avec le sessionId, ce qui en définitive est plus propre et ça fonctionne !

    Maintenant je peux populer mes variables de sessions en faisant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <%
    Session.Contents("Nom") = (AskLic.Fields.Item("Nom").Value)
    Session.Contents("Prenom") = (AskLic.Fields.Item("Prenom").Value)
    Session.Contents("ID") = (AskLic.Fields.Item("Pkz_Visiteur").Value)
    %>
    Par contre je m'interroge sur l'acessibilité des variables sessions.

    En fait je pensais compléter un fichier asp qui me sert comme corps d'un mail que je veux envoyer.

    j'inclus ce fichier par le script suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Const ForReading = 1, ForWriting = 2, ForAppending = 8
    Dim fso, f, FichTXT
    FichTXT = Server.MapPath("Mail.asp")
     
     
    Set fso = CreateObject("Scripting.FileSystemObject")
    'Open the file for reading
    Set f = fso.OpenTextFile( FichTXT, ForReading)
    'The ReadAll method reads the entire file into the variable BodyText
    BodyText = f.ReadAll
    'Close the file
    f.Close
    le fichier est mis en page et je voulais completer certaines parties tel que

    Mr le nom du client, le prénom
    par le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <p class="TxtNorm10">Mr <%= Session("Nom") %>, <%= Session("Prenom") %></p>
    Mais ce ne doit pas être la bonne façon de le faire car le mail envoyé est bien complet sauf les champs qui devraient être complétés. !!!

  7. #7
    Membre habitué Avatar de Goltar
    Homme Profil pro
    Eternel Etudiant Curieux
    Inscrit en
    Mars 2011
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Eternel Etudiant Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mars 2011
    Messages : 216
    Points : 137
    Points
    137
    Par défaut
    Je suppose que comme la page ASP est simplement lue pour être incorporée, elle n'est pas interprétée et que c'est pour ça que les variables ne sont pas populées avec les valeurs correctes.

    Mais comment faire en sorte qu'elles le soient?

  8. #8
    Membre expérimenté
    Avatar de kaiser59
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    1 264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 1 264
    Points : 1 350
    Points
    1 350
    Par défaut
    Citation Envoyé par Goltar Voir le message
    Oops !
    Bon j'essaie d'adapter.
    Mon formulaire est en POST et application/x-www-form-urlencoded en passant les variables (?Nom=(Request.form("Nom")& Prenom = (Request.form("Prenom")
    Il insère bien mon formulaire dans ma BDD puis est redirigé vers une page résultat.
    Dans celle-ci je récupère les deux variables de l'url pour les mettre dans des variables session:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <%
    If (Session("Nom") <> "") Then 
    Session("Nom") = Request.QueryString("Nom")
    End If
    If (Session("Prenom") <> "") Then 
    Session("Prenom") = Request.QueryString("Prenom")
    End If
    %>
    Je tente d'afficher celle-ci par
    Mais nada, vide de chez vide ! rien ne s'affiche
    Normal?
    Salut,

    Un peu normal que Session("Nom") ne vaut rien puisse que tu lui dis après envoi du formulaire que si celui ci est différent de rien alors session("Nom") = request.querystring("Nom")
    A quel moment tu as attribué une valeur à Session.... jamais donc forcement toujours vide.

    Essaye ceci qui marchera
    Code asp : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    'Contrôle que mon formulaire envoie bien une information pour mon champ "Nom"
    If request.querystring("Nom") <> "" then
     'Si vrai alors session nom prendra la valeur du champ Nom
      Session("Nom") = request.querystring("Nom")
    end if

    N'oublie pas que tu récupère les valeurs avec "request" et selon la method POST (form) ou GET (querystring) lors de l'envoie d'un formulaire
    Ne dites pas Java pour dire Javascript ! Ces deux codes n'ont rien à voir ! // Essayez d'expliquer, de la façon la plus claire possible votre problème. // Parfois une image vaut mieux qu'un long discours

    FAQ ASP

  9. #9
    Membre habitué Avatar de Goltar
    Homme Profil pro
    Eternel Etudiant Curieux
    Inscrit en
    Mars 2011
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Eternel Etudiant Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mars 2011
    Messages : 216
    Points : 137
    Points
    137
    Par défaut
    Merci pour ta réponse Kaiser.

    Regarde sur le post n°6
    J'ai laissé tombé le passage de paramètres par URL.

    Dans ma page avec le formulaire je récupère la SessionID que je stocke dans ma db.
    A la page suivante je récupère mon recordset avec la même SessionID.

    Et je popule mes variables session avec celui-ci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <%
    Session.Contents("Nom") = (AskLic.Fields.Item("Nom").Value)
    Session.Contents("Prenom") = (AskLic.Fields.Item("Prenom").Value)
    Session.Contents("ID") = (AskLic.Fields.Item("Pkz_Visiteur").Value)
    %>
    Cette partie la fonctionnes très bien, et mes variables sessions sont bien populées. (Je les affichent dans cette page).

    Mais en fin de page j'essaie d'envoyer mon mail en mettant comme corps une autre page ASP (mise en forme) mais j'essaie de personnaliser celle-ci en mettant le nom et prénom du client. (Et là ça coince)!

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 32
    Points : 37
    Points
    37
    Par défaut
    Dans ton template de mail, à la place de <%=session("nom")%> .... tu mets par exemple !nom!, et au moment où tu affectes le contenu du fichier, tu utilises la méthode replace en asp.

    Quelque chose comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    BodyText = Replace(BodyText,"!nom!",Session.Contents("Nom"))

  11. #11
    Membre habitué Avatar de Goltar
    Homme Profil pro
    Eternel Etudiant Curieux
    Inscrit en
    Mars 2011
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Eternel Etudiant Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mars 2011
    Messages : 216
    Points : 137
    Points
    137
    Par défaut
    Yesss ! Merci sNOOtch
    Cela fonctionne très bien !
    Je fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <%
    'These constants are defined to make the code more readable
    Const ForReading = 1, ForWriting = 2, ForAppending = 8
    Dim fso, f, FichTXT
    FichTXT = Server.MapPath("mail.asp")
    Set fso = CreateObject("Scripting.FileSystemObject")
    'Open the file for reading
    Set f = fso.OpenTextFile( FichTXT, ForReading)
    'The ReadAll method reads the entire file into the variable BodyText
    BodyText = f.ReadAll
    'Close the file
    f.Close
      BodyText = Replace(BodyText,"!Nom!",Session.Contents("Nom"))
      BodyText = Replace(BodyText,"!Prenom!",Session.Contents("Prenom"))
      BodyText = Replace(BodyText,"!Ref!",Session.Contents("ID"))
    %>
    Problème résolu !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2003] Public Variable (Form vers Form)
    Par PopsBoston dans le forum VBA Access
    Réponses: 5
    Dernier message: 19/05/2011, 22h16
  2. [1.x] utilisation variables sessions dans les class form
    Par xamxamle dans le forum Symfony
    Réponses: 5
    Dernier message: 16/03/2011, 16h50
  3. Comment affecter des variables d'une form vers un data report
    Par juldace dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 31/07/2008, 23h31
  4. valeur d une variable d'un form vers un autre
    Par barhili04 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 17/05/2007, 12h51
  5. Sessions et Form vers la même page ?
    Par mindover280 dans le forum Langage
    Réponses: 6
    Dernier message: 14/03/2007, 01h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo