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 : 19666
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

{Flash} CARROUSEL MENU FLASH AS3 2012
Un carrousel pouvant servir de menu, les images sont cliquables(à essayer avec les timbres présentés...

{Flash} CLASS IMAGE ET IMAGEEVENT
Extention de Bitmap ne chargeant qu'un seul et unique fichier pour toutes les références faisant app...

{PHP} CREATED SOME TINY URL
Voici une petit bout de code pour convertir une longue url en mini url. Ce code permet: - de créer...

{Visual Basic, VB6, VB.NET, VB 2005} LES DIFFÉRENTS TYPES DE RACCOURCIS EN VBS
'-------------------------------------------------------------------- ' Script de création de racco...

{PHP} VÉRIFICATION DES URL VALIDE AVEC PHP
script vérifiant si une URL pointe vers une page vraiment valable. il affiche les status des pages(4...

{Javascript / DHTML} RÉCUPERER LES VARIABLES $_GET
Permet aux amateur de PHP d'utiliser $_GET et la fonction isset() pour tester et récupérer les varia...

{PHP} REDIRECTION D'URL
Redirection d'url simple avec base de donnée Petit script facile à adapter à son site web. il va...

{C# / C#.NET} MONITHOR - SERVER MONITORING APPLICATION
Application effectuant des requêtes http à des adresses que l'utilisateur fournit. Cette applicat...

{PHP} CACHER SES LIENS DE L'URL
Suite à une discussion sur le forum je propose une solution à la question ' cacher ses liens de l'ur...

{PHP} LISTER DES LIENS / URLS DEPUIS UN TEXTE
Ce code va repérer dans un texte tous les liens sous la forme http://... Ils seront listés et forma...