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 :

variable se vide !?


Sujet :

ASP

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mai 2004
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 42
    Points : 36
    Points
    36
    Par défaut variable se vide !?
    Bonjour,

    J'ai un problème dont la solution me retirerai un tronc d'arbre du pied.

    J'ai une page asp qui affiche un tableau depuis une base sql server grace à une procedure stockée...
    Cette procédure stockée prend en paramètre le contenu d'un champ text d'une page précedente par une methode post...

    Au premier chargement, tout va bien, le paramètre est bien pris en compte et tout est bien affiché...
    MAIS sur cette page je fais appel à une autre procédure stockée qui m'insert un nouvel élement dans mon tableau et cette procédure a également besoin de ce paramètre pour l'inserer comme il faut.

    Mais quand je recharge la page pour l'insertion, le paramètre qui marchait avant a disparu et j'ai une erreur qui me réclame ce paramètre...

    Pourtant, j'ai déclaré une variable de session qui prend la valeur de ce paramètre mais elle se vide quand je recharge la page...

    Suis assez clair ? Y a un truc qui m'échappe en tous cas...

    PS: Je sais pas encore comment on appelle des procédures stockées à partir d'un clic sur un bouton et donc mes procédures s'exécutent en même temps que ma page... ( oui c'est naze ) Si un aimable gourou de l'asp pouvait me filer un coup de main, je lui érigerai un temple...

  2. #2
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 99
    Points : 118
    Points
    118
    Par défaut Re: variable se vide !?
    je ne suis pas un gourou, mais je vais essayer de t'aider.
    tu as biens dit que la variable session se vide dans tu passe une page a une autre
    solution(pas sure): vas dans outils/option internet/confidentialite/avancé
    coché la case ignoré..... et toujour autorise les cookies dela session

    pour executer ps, il faut simplement recharger la page asp

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mai 2004
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 42
    Points : 36
    Points
    36
    Par défaut
    He bien merci mais malheuresement ca ne fonctionne pas...
    Vraiment je capte pas pourquoi...

    Je lui déclare ma variable de session au premier chargement et après en théorie si je ne m'abuse je peut utiliser cette variable depuis toutes les pages de mon site...mais la je la perd dès que je change de page.

    Cette variable est instanciée par un formulaire, ca vient peut être de là...mais si on peut pas faire ca, c'est très con...

  4. #4
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 99
    Points : 118
    Points
    118
    Par défaut
    Oui la variable session est visible sur toute les pages pendant la durée de la session.
    ton histoire est vraiment bizarrrrrrr.
    tu es sure que
    -tu n'es pas reintialisé la variable session.
    -la confidentialité IE est bien configuré
    sinon ce n'est pas possible, c possible de montrer un peu tes codes sources, ça me semble tres bizzarrr

  5. #5
    Nouveau membre du Club
    Inscrit en
    Mai 2004
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 42
    Points : 36
    Points
    36
    Par défaut
    voici le code de la seconde page, celle qui utilise la procedure avec un parametre :

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    <%@ Language=VBScript %>
    <%OPTION EXPLICIT
     
    	CONST adParamInput = 1
    	CONST adParamReturnValue = 4 
    	CONST adCmdStoredProc = 4
    	CONST adInteger = 3
    	CONST adVarChar = 200
     
    	DIM strConn, cnVisite, cmVisite, nomEtude
     
    	Session&#40;"nom_etude"&#41; = Request.Form&#40;"nomEtude"&#41;
    	nomEtude=Session&#40;"nom_etude"&#41;
     
    	SET cnVisite= Server.CreateObject&#40;"AdoDB.Connection"&#41;
    	strConn = "Provider=SqlOleDB; Server=***;Database=***;User ID=***;Password=***"
     
    	cnVisite.Open strConn
     
     
    	DIM cmSelectVisite, p_nomEtude	
    	SET cmSelectVisite = Server.CreateObject&#40;"AdoDB.Command"&#41;
    	cmSelectVisite.CommandType=adCmdStoredProc
    	cmSelectVisite.CommandText="selectVisite"
    	cmSelectVisite.ActiveConnection=cnVisite
     
    	SET p_nomEtude = cmSelectVisite.CreateParameter&#40; "@nomEtude", adVarChar, adParamInput, 50, nomEtude&#41;
     
    	cmSelectVisite.Parameters.Append p_nomEtude
     
     
     
    	DIM strSql, rsVisite2
     
    	SET rsVisite2=cmSelectVisite.execute
     
    %>
     
     
    <HTML>
    <HEAD>
    <META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0" ><BR>
    </HEAD>
    <BODY>
    <BR>
    <BR>Vous travaillez sur l'étude = <%= nomEtude%>
    <BR>
    <BR>
    <H3 align=center>Liste des Visites</H3>
    <BR>
    <TABLE Width="80%" Align="center" bgcolor="#e0e0ff" rules="all" bgcolor="black">
    		<TR>
    			<TH>Numéro de visite</TH>
    			<TH>Libellé de la visite</TH>
    		</TR>
     
     
    		<% DO UNTIL rsVisite.EOF %>
    			<TR>
    				<TD Align="middle"><%= rsVisite&#40;"ID_Visite"&#41; %></TD>
    				<TD Align="middle"><%= rsVisite&#40;"Lib_Visite"&#41; %></TD>
    			</TR>
    		<% rsVisite.MoveNext
    			LOOP
    		%>
    	</TABLE>	
    <BR><BR>
    <BR>
    Ajouter une nouvelle visite &#58; 
    <BR>
    Nom de la visite <FORM name="newVisite" action="visite.asp">
    <input type="text" name="nomVisite" value="<nom de la visite>">
    <input type="submit" value="valider">
     
     
    </FORM>
    <P>&nbsp;</P>
     
    </BODY>
    </HTML>
    Ca marche une première fois mais quand j appuie sur le submit pour ajouter une nouvelle visite et donc que je lui dit de me recharger la page, il me dit qu'il lui manque le paramètre @Etude qui normalement est donnée par la variable de session instanciée par le formulaire... Je sais pas si tu vois ce que je veux dire...

    Voila le code de ma procéédure "selectVisite"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    CREATE PROCEDURE selectVisite &#40;
    	@nomEtude varchar&#40;20&#41; 
    &#41;  AS BEGIN
    SELECT Lib_Visite, ID_Visite, Lib_Etude FROM VISITE  WHERE Lib_Etude=@nomEtude;
     
    END
    GO
    Voila...

  6. #6
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 99
    Points : 118
    Points
    118
    Par défaut
    la page visite.asp c'est lui meme?

  7. #7
    Nouveau membre du Club
    Inscrit en
    Mai 2004
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 42
    Points : 36
    Points
    36
    Par défaut
    oui c'est la page visite celle que j ai mis...
    Elle se recharge en fait... Je sais pas si ca se fait...

  8. #8
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 99
    Points : 118
    Points
    118
    Par défaut
    Donc c'est normal que la variable session se vide, parce qu'elle se initialise.
    je t'explique
    tu as recuperé la variable Request.Form("nomEtude") qui vient de la page précedente avec la methode post, jusqu'a la c'est normal parce que la page precedente contient un champ nomEtude

    apres tu as a fait un reload, la probleme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Session&#40;"nom_etude"&#41; =Request.Form&#40;"nomEtude"&#41;
     nomEtude=Session&#40;"nom_etude"&#41;
    Request.Form("nomEtude") = vide

    j'espere que mon explication est claire

    solution:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <FORM name="newVisite" action="visite.asp"> 
    <input type="text" name="nomVisite" value="<nom de la visite>"> 
    <input type="hidden" name="nomEtude" value="<%= nomEtude%>">
    <input type="submit" value="valider">

  9. #9
    Nouveau membre du Club
    Inscrit en
    Mai 2004
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 42
    Points : 36
    Points
    36
    Par défaut
    j vais essayer ca demain...

    merci en tous cas...

  10. #10
    Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2004
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2004
    Messages : 61
    Points : 56
    Points
    56
    Par défaut
    Autre chose que tu peux faire, et qui est plus simple qu'utiliser un champ caché :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <%
    if isEmpty&#40;Session&#40;"nomEtude"&#41;&#41; then
        Session&#40;"nom_etude"&#41; =Request.Form&#40;"nomEtude"&#41;
    end if
    %>
    Comme ça, tu n'écrase pas ta variable de session, et tu évites de pourrir ton formulaire avec des champs cachés : les champs cachés, ça passe quand il y a seulement deux ou trois variables à garder, mais imagine avec une vingtaine ou une quarantaine...
    On s'amuse de rien en vieillissant, on vieillit quand on ne s'amuse plus.

  11. #11
    Nouveau membre du Club
    Inscrit en
    Mai 2004
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 42
    Points : 36
    Points
    36
    Par défaut
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaaaaaaaaaaaaaaaah !!!!

    Ca marche !!!
    En tous cas ca en a l'air...

    Merci beaucoup à tous les deux...

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

Discussions similaires

  1. [SQL] affecter la valeur SQL NULL si la variable est vide
    Par marie4449 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 28/03/2007, 19h44
  2. pb redirection constante, variable session vide
    Par ben_skywalker dans le forum Langage
    Réponses: 6
    Dernier message: 14/02/2007, 17h43
  3. [PostgreSQL] Initialisation de variable numérique à vide
    Par civodultrebor37 dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 11/01/2007, 16h31
  4. Tester si une variable est vide
    Par christel1982 dans le forum ASP
    Réponses: 13
    Dernier message: 13/09/2006, 12h01
  5. [VB6]Les variables se vide sans aucun raison !
    Par themik dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 23/03/2006, 20h59

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