Les Snippets

Connexion

Manipuler les paramètres passés dans l'URL

Niveau requis pour utiliser/comprendre cette source : 1 ( Débutant )
Créé le 31/03/2006 08:44:29 et initié par bultez [Liste]
Date de mise à jour : 31/03/2006 11:48:21
Vue : 8685
Catégorie(s) : Chaîne de caractères, Divers, Web
Langages dispo pour ce code :
- Javascript
- VB6, VBA



Langage : Javascript
Date ajout : 31/03/2006
Posté par bultez [Liste]
DateMAJ : 31/03/2006

function PrmUrl()
{
 var prm = new Array();
 var tmp = unescape(window.location.search).substr(1).split("&");
 var inter;
 for ( i=0; i<tmp.length; i++)
 {
  inter=tmp[i].indexOf("=");
  if ( inter>=0 )
    {
     prm[tmp[i].substr(0,inter)]=tmp[i].substr(inter+1)
    }
  else {
     prm[tmp[i]]="";
    }
 }
 return prm;
}

/*============================================================
  appel : $_GET=PrmUrl();
  après on utilise $_GET["variable"] comme en PHP.
  exemple test.htm :
<script type="text/javascript" src="PrmUrl.js"></script>
<script type="text/javascript">
if ( window.location.search )
  { // des paramètres dans l'URL existent.
   var $_GET=PrmUrl();
   var tmp= "-----------------------\r\n"+
      "exemple par leur noms :\r\n"+
      "-----------------------\r\n"+
      "\tp1 = "+$_GET["p1"]+"\r\n"+
      "\tp2 = "+$_GET["p2"]+"\r\n"+
      "------\r\n"+
      "tous :\r\n"+
      "------\r\n";
   for ( var n in $_GET )
   {
    tmp+="\t"+n+" = "+$_GET[n]+"\r\n";
   }
   alert (tmp) ;
  }
else { // s'appelle lui-même en passant des paramètres dans l'URL.
   location.href="test.htm?p1=v1&p2=v2&p3=trois&prm4&cinq=exemple";
  }
</script>
====================================================*/

Langage : VB6 , VBA
Date ajout : 05/01/2008
Posté par PCPT [Liste]
'   RETOURNE TOUS LES PARAMS  ET VALEURS DANS UN TABLEAU BI-DIMENSIONNEL
Function GetParamsAndValues(ByVal sUrl As String) As String()
'   necessite la fonction  'GetValueParam'
    If LenB(sUrl) Then
'       on cherche le  ?
        Dim iPos As Integer
        iPos = InStr(1, sUrl, "?")
        If iPos Then
'           trouvé, on ne split que les  arguments
            Dim asParam() As String
            asParam = Split("&" Right$(sUrl, Len(sUrl) - iPos), "=")
'           on  nettoie/formate
            Dim As Integer, iCount As Integer
            iCount = 0
            For i = To UBound(asParam)
                iPos = InStrRev(asParam(i), "&")
                If iPos Then
                    asParam(i) = Right$(asParam(i), Len(asParam(i)) - iPos)
                    If Len(asParam(i)) Then iCount = iCount + 1
                Else
                    asParam(i) = vbNullString
                End If
            Next i
'           résultats? on crée  le tableau de retour et enregistre les valeurs
            If iCount Then
                Dim asRes() As String
                ReDim asRes(To iCount - 1,  0 To 1)
                iCount = -1
                For i = To UBound(asParam)
                    If Len(asParam(i)) Then
                        iCount = iCount + 1
                        asRes(iCount, 0) = asParam(i)
                        asRes(iCount, 1) = GetValueParam(sUrl,  asParam(i))
                    End If
                Next i
'               retour / nettoyage
                GetParamsAndValues = asRes
                Erase asRes
                Erase asParam
            End If
        End If
    End If
End Function
'
'   RETOURNE LA VALEUR D'UN PARAM
Function GetValueParam(ByVal sUrl As String, ByVal sParam As String) As String
    GetValueParam = vbNullString
'    validité de la demande
    If (Not Len(sUrl) = 0And (Not Len(sParam) = 0) And (InStr(1, sParam,  "&") = 0And (InStr(1, sParam, "=") = 0Then
'       on cherche le  ?
        Dim iPos As Integer
        iPos = InStr(1, sUrl, "?")
        If iPos Then
'           trouvé, on ne récupère que les arguments et on facile  la recherche
            sUrl = "&" Right$(sUrl, Len(sUrl) - iPos) & "&"
            iPos = InStr(1, sUrl, "&" & sParam & "=")
            If iPos Then
'               trouvé? on retourne de cette position jusqu'au  prochain arg
                iPos = iPos + Len(sParam) + 2
                GetValueParam = Mid$(sUrl, iPos, InStr(iPos + 1,  sUrl, "&") - iPos)
            End If
        End If
    End If
End Function

'
' EXEMPLE  D'UTILISATION
'
Private Sub Form_Load()
    Const URL1 As String "www.test.com/index.php?p1=v1&p2=v2&p3=trois&prm4&cinq=exemple&=quoi&=oui&dernier=enfin"
    Const URL2 As String "http://www.abcdef.com/abc.abc?abc=abcd://abc.abcdef.abc/abc/abc_/xxxx.abc&carte=yyyy"
'   TOUS LES PARAMS / VALEURS DE LA PREMIèRE  URL
    Dim As Integer, RET() As String
    RET = GetParamsAndValues(URL1)
    For i = To UBound(RET)
        Debug.Print "PARAM : '" & RET(i, 0) & "'      VALEUR :  '" & RET(i, 1) & "'"
    Next i
'   PARAMS NOMMéS ('ABC' et  'CARTE') DE LA 2e URL
    Debug.Print GetValueParam(URL2, "abc")
    Debug.Print GetValueParam(URL2, "carte")
End Sub

Remarque :
la première url contient volontairement des paramètres incorrects pour montrer la récupération d'arguments valides

Snippets en rapport avec : Request, Paramètre, Url



Codes sources en rapport avec : Request, Paramètre, Url

{Visual Basic, VB6, VB.NET, VB 2005} ENCODER UNE URL EN UTF8 DEPUIS WORD
Si on veut créer des URL correctes dans Word, il est nécessaire d'encoder convenablement tout ce qui...

{Visual Basic, VB6, VB.NET, VB 2005} URL2DOWN ACTIVEX _ COMPOSANT DÉDIÉ AU TELECHARGEMENT HTTP
URL2DOWN ACTIVEX _ COMPOSANT DÉDIÉ AU TELECHARGEMENT HTTP AVEC OU SANS PROXY ;) ---------------...

{Javascript / DHTML} ANALYSER & RÉCUPÉRER LES VARIABLES DE L'URL
Comme d'autres l'ont déjà fait, il faut analyser la chaine de l'URL pour les mettre dans un tableau ...

{C# / C#.NET} RÉCUPÉRER L'URL EN COURS DANS VOS NAVIGATEURS (INTERNET EXPLORER, FIREFOX, OPERA)
Cette source permet de récupérer l'URL de la page affichée dans les navigateurs ouverts. L'URL en co...

{SQL} SQL SERVER - TRANSMISSION D'UN PARAMETRE A VALEURS MULTIPLES
Il est souvent nécessaire de transmettre un nombre variable de paramètres à une procédure stockée. C...

{JAVA / J2EE} REDIRECTION D'URL ET TRANSMISSION DE COOKIES
Ce programme donne des exemples de gestion des redirections d'url ainsi que de transmission de cooki...

{JAVA / J2EE} TELECHARGER UN FICHIER A PARTIR D'UNE URL
Cette classe permet de récupéré un fichier sur un site internet ou sur un serveur interne. ca peut ê...

{Javascript / DHTML} PASSATION DE VALEURS ENTRE FENÊTRES HTML
Le code de steveurcle http://www.javascriptfr.com/codes/MODAL-PAGE-APPELANTE_34989.aspx m'a donnée l...

{Python} TELECHARGEUR DE VIDEO (YOUTUBE)
Bonsoir a tous ceci est mon second code python il permet de telecharger une video sur youtube il...

{PHP} HTTP_BUILD_QUERY() POUR PHP 4
Version PHP 4 de la fonction http_build_query() disponible sous PHP 5 et ma foi bien pratique... .. ...