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.NET Discussion :

Envoyer une variable asp.net vers une page php


Sujet :

ASP.NET

  1. #1
    Débutant   Avatar de SonnyFab
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    498
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 498
    Points : 213
    Points
    213
    Par défaut Envoyer une variable asp.net vers une page php
    Bonjour à tous,
    Mon problème est assez difficile à concevoir, j'étais dans le forums en php on m'a renvoyé ici ( j'étais surement indésirable ) bref voilà

    Voila j'ai une page qui contient une variable en asp.net (le login d'une application web après connexion:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%=Lang.Server["VT_VEHICLETRACKER_LOGGEDINASUSER"]%>:&nbsp;<asp:Label Font-Bold="true" ID="LabelLogedinUser" runat="server"></asp:Label>
    en même temps j'ai un lien vers une page php où j'aimerais envoyer cette variable via l'url par exemple.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <li><a href="http://www.monlien.com/admin/index.php">Admin</a>
    J'aimerais faire un truc de se genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    www.monlien.com/admin/index.php?nid=".<%=Lang.Server["VT_VEHICLETRACKER_LOGGEDINASUSER"]%>."
    Mais je sais pas si ça pourrait marcher.

    Es ce possible? Si oui pouvez-vous me donner des idées s'il vous plait?

    Merci d'avance

  2. #2
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Bonjour,

    C'est possible, mais pour cela il faut vérifier que ta variable Lang.Server[""] soit déclarée comme Protected dans ton code behind.

    Ensuite, il suffit de faire attention aux guillemets dans la page ASPX, et le lien devra ressembler à ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <a href='page.php?nid=<%=Lang.Server["VT_VEHICLETRACKER_LOGGEDINASUSER"]%>'>texte du lien</a>

  3. #3
    Débutant   Avatar de SonnyFab
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    498
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 498
    Points : 213
    Points
    213
    Par défaut
    Voila après des tests apparemment cela passe dans l'url c'est déja ça. merci

    Mais il s'avèrent que c'est un label ce que je cherche à envoiyer:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <asp:Label Font-Bold="true" ID="LabelLogedinUser" runat="server"></asp:Label>
    donc lorsque je mets cela dans mon lien:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <li><a href='http://www.monsite.com/admin/index.php?nid=<% =LabelLogedinUser.text %>'><%Response.Write("Admin"); %></a></li>
    J'obtiens cette erreur:
    Description : Une erreur d'application s'est produite sur le serveur. Les paramètres d'erreur personnalisés actuels pour cette application empêchent l'affichage à distance des détails de l'erreur de l'application (pour des raisons de sécurité). Cependant, ils peuvent être affichés par les navigateurs qui s'exécutent sur l'ordinateur serveur local.

    Détails: Pour permettre l'affichage des détails de ce message d'erreur spécifique sur les ordinateurs distants, créez une balise <customErrors> dans un fichier de configuration "web.config" situé dans le répertoire racine de l'application Web en cours. Attribuez ensuite la valeur "off" à l'attribut "mode" de cette balise <customErrors>.
    Merci de me guider je crians un peu de modifer la web.config parce que l'application est un peu sensible

  4. #4
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Pas la peine d'utiliser un Response.Write() pour écrire le texte de ton lien. Ceci suffit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <li><a href='http://www.monsite.com/admin/index.php?nid=<%=LabelLogedinUser.Text %>'>Admin</a></li>
    Ensuite, pour récupérer le texte du Label, il faut vérifier que ce Label est bien déclaré en Protected. En gros, tu dois avoir ceci dans ton code behind :
    (C#)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public class _Default
    {
        protected Label monLabel;
    }
    (VB)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Public Class _Default
        Protected monLabel As Label
    End Class
    Est-ce que cela fonctionne ?

  5. #5
    Débutant   Avatar de SonnyFab
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    498
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 498
    Points : 213
    Points
    213
    Par défaut
    C'est là où le bas blesse Matt07, il n'ya pas de code behind dans le repertoire du site du moins qui porte le nom du fichier comme ça.

    Voici l'extrait de l'entete d'une page index par exemple mais meme en fesant une recherchce de index.aspx.cs je ne retrouve pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <%@ Page Language="C#" AutoEventWireup="true" EnableViewStateMac="false" Inherits="GpsGate.VehicleTracker.WebUI.Index" CodeBehind="Index.aspx.cs" ResponseEncoding="utf-8" %>
    <%@ Register Src="WebControls/LoginControl.ascx" TagName="LoginControl" TagPrefix="Franson" %>
    J'ai vu 4 fichiers c# mais aucuns d'eux n'avaient ces noms.
    Ou c'est sa configuration? L'aspx et moi c'est pas vraiment ça

  6. #6
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Hmmh, pourtant ça doit figurer quelque part. Il y a 2 cas de figure :

    1 - Ton Label est dans une Page (.asPx)
    Dans ce cas, cette déclaration doit figurer en principe dans le fichier nomDeTaPage.aspx.designer.cs

    2 - Ton Label est dans un UserControl (.asCx)
    Dans ce cas, cette déclaration doit figurer en principe dans le fichier nomDeTonUserControl.ascx.designer.cs

    Pour voir ce fichier, il faut soit passer par l'explorateur Windows, soit cliquer sur le bouton "Afficher tous les fichiers" dans le volet de la solution dans Visual Studio.

    Autre info importante, si ton Label est dans un UserControl, mais que ton lien est directement dans la Page aspx, tu ne pourras pas récupérer la valeur de ton Label comme ça ...

    Le plus simple serait que tu nous fasses un copier coller de ton code (avec juste l'essentiel de ce qui nous intéresse ici) pour qu'on voit comment tout ça est organisé.

  7. #7
    Débutant   Avatar de SonnyFab
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    498
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 498
    Points : 213
    Points
    213
    Par défaut
    Ok on va aller en douceur pour que j'arrive à vous suivre
    Il y'a bizarrement 3 fichiers intéressants. Admin.aspx, Vehicle.aspx, Vehicle.master

    Dans Admin.aspx en entete on a:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <%@ Page Language="C#" AutoEventWireup="true" ValidateRequest="false" Inherits="GpsGate.VehicleTracker.WebUI.Admin" EnableViewState="true" MasterPageFile="Vehicle.master" CodeBehind="Admin.aspx.cs" ResponseEncoding="utf-8" %>
     
    <%@ Register Src="WebControls/TrackRecorderSettingsControl.ascx" TagName="TrackRecorderControl" TagPrefix="Franson" %>
    <%@ Register Src="WebControls/DeviceMappingManagerControl.ascx" TagName="DeviceMappingManagerControl" TagPrefix="Franson" %>
    <%@ Register Src="WebControls/DeviceManagerControl.ascx" TagName="DeviceManagerControl" TagPrefix="Franson" %>
    <%@ Register Src="WebControls/EventRuleSetupControl.ascx" TagName="EventRuleControl" TagPrefix="Franson" %>
    <%@ Register Src="WebControls/TagManagerControl.ascx" TagName="TagManagerControl" TagPrefix="Franson" %>
    <%@ Register Src="WebControls/UserTagControl.ascx" TagName="UserTagControl" TagPrefix="Franson" %>
    <%@ Register Src="WebControls/ViewManagerControl.ascx" TagName="ViewManagerControl" TagPrefix="Franson" %>
    <%@ Register Src="WebControls/MarkerSettingsControl.ascx" TagName="MarkerSettingsControl" TagPrefix="Franson" %>
    <%@ Register Src="WebControls/ErrorControl.ascx" TagName="ErrorControl" TagPrefix="Franson" %>
    Puis plus loinle label qui m'interresse:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    	<td style="padding-right:10px; vertical-align:middle; text-align:right">
    				<%=Lang.Server["VT_VEHICLETRACKER_LOGGEDINASUSER"] %>:&nbsp;<asp:Label ID="LabelLogedinUser" runat="server" Font-Bold="true"></asp:Label>
    				<%=Lang.Server["VT_VEHICLETRACKER_LOGGEDINAPPLICATION"]%>:&nbsp;<asp:Label Font-Bold="true" ID="LabelLogedinApp" runat="server"></asp:Label>
    				- <asp:Label ID="LabelVersion" runat="server"></asp:Label>
    			</td>
    Puis le fichier .master (celle qui contient mon lien) en entete
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%@ Master Language="C#" AutoEventWireup="true" Inherits="GpsGate.VehicleTracker.WebUI.VehicleTrackerMaster" CodeBehind="Vehicle.master.cs" %>
    Puis le fichier vehicle.aspx en en tete:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <%@ Page Language="C#" AutoEventWireup="true" EnableViewStateMac="false" Inherits="GpsGate.VehicleTracker.WebUI.VehicleTracker" MasterPageFile="Vehicle.master" CodeBehind="Vehicle.aspx.cs" ResponseEncoding="utf-8" %>
    <%@ Register Src="WebControls/DeviceCommandControl.ascx" TagName="DeviceCommandControl" TagPrefix="Franson" %>
    <%@ Register Src="WebControls/GeofenceManagerControl.ascx" TagName="GeofenceManagerControl" TagPrefix="Franson" %>
    Puis y figure la partie qui m'interresse:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <asp:Label Font-Bold="true" ID="LabelLogedinUser" runat="server"></asp:Label>
    J'insiste qu'il n'ya pas de fichier qui porte aspx.cs

    Alors là je dois avouer que moi meme je suis à la boure

  8. #8
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Merci pour ces détails ! Il manque encore une info : où se situe le lien contenant l'URL à laquelle tu veux rajouter le contenu du Label ?

  9. #9
    Débutant   Avatar de SonnyFab
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    498
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 498
    Points : 213
    Points
    213
    Par défaut
    C'est moi qui te remercie Matt07 ben je pense te l'avoir dis
    Puis le fichier .master (celle qui contient mon lien) en entete
    dans ce fichier j'ai quelque part
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <li><a href="http://www.monlien.com/Admin/index.php">Admin</a></li>
    <li>
    <asp:LinkButton ID="LinkButtonLogout" runat="server" OnClientClick="if (typeof(vtMain) !== 'undefined') vtMain.vTracker.getVehicleManager().stop();" OnClick="LinkButtonLogout_Click">							</asp:LinkButton>
    						            </li>
    Je ré-insiste il n'ya pas de fichier *.aspx.cs dans ce repertoire ou qui porte le meme nom que ces fichiers

  10. #10
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Ah oui exact, j'ai du passer dessus trop rapidement

    Bon donc le problème vient du fait que, en gros pour chaque page de ton projet, il y a une classe différente. Dans ton cas, on a une classe 'Admin', une classe 'VehicleTracker' et une classe 'VehicleTrackerMaster'.

    Le Label dont tu veux récupérer le contenu est déclaré au sein de la classe 'Admin' (puisqu'il est sur la page Admin.aspx).
    Le lien figure quant à lui dans la classe 'VehicleTrackerMaster'.

    Donc les 2 ne peuvent pas 'communiquer' directement.

    Si tu n'a pas de fichier *.aspx.cs, est-ce que tu as par exemple :
    - Admin.cs
    - VehicleTracker.cs
    - VehicleTrackerMaster.cs
    quelque part ?

    Au niveau des solutions qui s'offrent à toi, personnellement j'en vois 2.

    Solution 1 :

    Tu crées dans ton code behind une méthode permettant de 'remonter' l'arborescence des controls jusqu'à la MasterPage, puis de redescendre jusqu'à trouver ton lien (ce sera plus facile en donnant un ID à ton lien).

    Niveau code, ça donnerait quelque chose du genre :

    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
     
    public Label FindMonLabel(String nomDuLabelATrouver)
    {
        VehicleTrackerMaster master = (VehicleTrackerMaster)base.Parent.Parent...;
        if (master != null)
        {
            ContentPlaceHolder masterCPH = (ContentPlaceHolder)master.FindControl("ContentPlaceHolderIDContenantLeLabel");
            if (masterCPH != null)
            {
                  ' ...
                  ' Etc. jusqu'à trouver le fameux Label
                  ' On calle un return monLabel; pour finir
            }
        }
    }
    Solution 2 :

    Dans ta classe 'Admin', tu ajoutes une variable avec une accessibilité public ou static (à vérifier, je ne sais plus laquelle permettra de récupérer la valeur dans un bloc de code ASPX). Cette variable contiendra le texte du Label, par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    partial class Admin
    {
        public string maVar;
     
        protected void Page_Load(Object sender, EventArgs e)
        {
            ...
            this.maVar = this.MonLabel.Text;
        }
    }
    Ensuite dans ton lien, tu pourras afficher le texte que tu veux, via un code du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <a href='....php?nid=<%=Admin.maVar %>'>Admin</a>
    Autres pistes :

    Il y a d'autres solutions. Si par exemple ton souhait est de mettre le nom de l'utilisateur actuellement identifié, et que ta solution utilise les fonctionnalités de gestion des utilisateurs fournies par ASP.NET, dans ce cas tu peux directement récupérer cette info en mettant dans ton lien un truc du genre <%=User.Name %> (je n'ai pas en tête le code précis).

    Idem si par exemple tu es dans un contexte SharePoint, tu peux également récupérer facilement le nom de l'utilisateur...

  11. #11
    Débutant   Avatar de SonnyFab
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    498
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 498
    Points : 213
    Points
    213
    Par défaut
    Ouh lala tu vas me refaire lire l'asp.net
    Ok je me lance je te renvoie mes resultats.

    Merci pour la patiente c'est très sympa

  12. #12
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Pas de soucis si je peux filer un coup de main

    En tout cas, avant d'aller t'embêter avec les Solutions 1 ou 2, vérifie bien que tu n'aies pas une solution plus simple à ta disposition, comme suggéré dans la partie 'Autres solutions' de mon dernier post !

    Pour ce faire, regarde par exemple dans ta classe 'Admin', comment est bindé ton Label ? D'où proviennent les infos ?

Discussions similaires

  1. Intégrer une application asp.net dans une page html
    Par ralf91 dans le forum ASP.NET
    Réponses: 0
    Dernier message: 04/10/2013, 10h56
  2. Réponses: 2
    Dernier message: 14/09/2010, 16h39
  3. Récupérer une variable ASP.NET en Javascript
    Par zooffy dans le forum ASP.NET
    Réponses: 6
    Dernier message: 20/03/2008, 09h34
  4. Réponses: 3
    Dernier message: 06/09/2006, 09h06
  5. [ASP.NET]Passer une variable
    Par WELCOMSMAIL dans le forum ASP.NET
    Réponses: 4
    Dernier message: 21/04/2006, 09h38

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