begin process at 2012 05 27 16:34:11
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Chaîne de caratère

 > ADRESSE ABSOLUE DE LA PAGE EN COURS, AVEC VARIABLES $_GET

ADRESSE ABSOLUE DE LA PAGE EN COURS, AVEC VARIABLES $_GET


 Description

Bonjour à tous ;)
Ceci est une petite fonction servant à retourner l'adresse absolue de la page en cours avec les variables passé en GET.
Tout est expliqué dans les commentaires du code.

Source

  • <?php
  • /*
  • * Ceci est un fichier pour tester la fonction PHP adresse_absolue(), cette
  • * fonction permet de retourner l'adresse absolue de la page en cours avec les
  • * variables passé en $_GET.
  • */
  • //On test la fonction sans exclure de variables $_GET et en les affichant
  • echo '<h3 style="color:blue">'. adresse_absolue(true, "").'</h3>';
  • //*********************************************************************************
  • /**
  • *Cette fonction permet de retourner l'adresse absolue de la page en cours avec les
  • * variables passé en $_GET.
  • *
  • * @param <boolean> $avec_get
  • * Ici il faut mettre "true" si vous voules l'adresse absolue avec les variables
  • * $_GET, "false" pour obtenir juste l'adresse absolue
  • *
  • * @param <Array> $array_exclure_get
  • * Si vous voulez exclure des variables $_GET dans l'adresse absolue renseignez
  • * ici un ARRAY avec les clef à exclure, par exemple vous avez la variable
  • * $_GET['pseudo'] qui rentre dans votre page mais que vous ne la voulez pas,
  • * alors vous ferez comme ceci:
  • * --------------------------------------------------
  • * $array[0]="pseudo";
  • * echo adresse_absolue($array, true);
  • * --------------------------------------------------
  • * mettre une chaine de caractère vide si vous ne voulez pas interdire de
  • * variables GET:
  • * --------------------------------------------------
  • * echo adresse_absolue("", true);
  • * --------------------------------------------------
  • * @return <String>
  • * chaine de caractères contenant l'adresse absolue de la page en cour.
  • */
  • function adresse_absolue($avec_get,$array_exclure_get) {
  • //on crées l'adresse absolue sans les variables $_GET
  • $url="http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];
  • $i=0;//compteur de boucle
  • //si on veut les variable $_GET
  • if($avec_get) {
  • //on initialise la chaine de carctères qui vas contenir tous les paramètres
  • //passé en GET ex: "pseudo=dariumis&connecte=1".
  • $param="";
  • //on récupère les clef de l'array $_GET
  • $array_clef_get=array_keys($_GET);
  • //pour chaque valeurs passé en GET
  • foreach ($_GET as $v) {
  • //on initialise un booléen pour voir si vous avez interdit la variable
  • //en cours passé en GET
  • $interdit=false;
  • //on teste si vous avez interdit des variables en cours passé en GET
  • if(is_array($array_exclure_get)) {//si vous en avez interdit
  • //on parcour le tableau d'interdiction
  • foreach ($array_exclure_get as $v2) {//pour chaque variables interdit
  • //on la teste avec la clef de la variable GET en cours
  • if($v2==$array_clef_get[$i]) {//si la variables en cour est interdit
  • //on initialise le booléen d'interdiction a "true"
  • $interdit=true;
  • //on a fini le teste, donc on sort de la boucle
  • break;
  • }
  • }
  • }
  • //on regarde si vous avez interdit la variables passé en GET
  • if(!$interdit) {//si vous ne l'avez pas interdit
  • //on écrit dans $param la clef de la variable GET en cours et sa valeur
  • $param.=$array_clef_get[$i]."=".$v."&";
  • }
  • //on incremente le compteur avant de passer à la prochaine Variable GET
  • $i++;
  • }
  • //on enlève le dernier "&" des paramètres
  • $param=preg_replace("#&$#", "", $param);
  • if($param!="") {//si il y a des paramètres GET à écrire
  • //alors, on les écrits
  • $url.="?".$param;
  • }
  • }
  • return $url;//on retourne le résultat
  • }
  • ?>
<?php
/*
 * Ceci est un fichier pour tester la fonction PHP adresse_absolue(), cette
 * fonction permet de retourner l'adresse absolue de la page en cours avec les
 * variables passé en $_GET.
 */

//On test la fonction sans exclure de variables $_GET et en les affichant
echo '<h3 style="color:blue">'. adresse_absolue(true, "").'</h3>';


//*********************************************************************************
/**
 *Cette fonction permet de retourner l'adresse absolue de la page en cours avec les
 * variables passé en $_GET.
 *
 * @param <boolean> $avec_get
 *      Ici il faut mettre "true" si vous voules l'adresse absolue avec les variables
 *      $_GET, "false" pour obtenir juste l'adresse absolue
 *
 * @param <Array> $array_exclure_get
 *      Si vous voulez exclure des variables $_GET dans l'adresse absolue renseignez
 *      ici un ARRAY avec les clef à exclure, par exemple vous avez la variable
 *      $_GET['pseudo'] qui rentre dans votre page mais que vous ne la voulez pas,
 *      alors vous ferez comme ceci:
 *      --------------------------------------------------
 *      $array[0]="pseudo";
 *      echo adresse_absolue($array, true);
 *      --------------------------------------------------
 *      mettre une chaine de caractère vide si vous ne voulez pas interdire de
 *      variables GET:
 *      --------------------------------------------------
 *      echo adresse_absolue("", true);
 *      --------------------------------------------------

 * @return <String>
 *     chaine de caractères contenant l'adresse absolue de la page en cour.
 */
function adresse_absolue($avec_get,$array_exclure_get) {
    //on crées l'adresse absolue sans les variables $_GET
    $url="http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];
    $i=0;//compteur de boucle
    //si on veut les variable $_GET
    if($avec_get) {
        //on initialise la chaine de carctères qui vas contenir tous les paramètres
        //passé en GET ex: "pseudo=dariumis&connecte=1".
        $param="";
        //on récupère les clef de l'array $_GET
        $array_clef_get=array_keys($_GET);
        //pour chaque valeurs passé en GET
        foreach ($_GET as $v) {
            //on initialise un booléen pour voir si vous avez interdit la variable
            //en cours passé en GET
            $interdit=false;
            //on teste si vous avez interdit des variables en cours passé en GET
            if(is_array($array_exclure_get)) {//si vous en avez interdit
                //on parcour le tableau d'interdiction
                foreach ($array_exclure_get as $v2) {//pour chaque variables interdit
                    //on la teste avec la clef de la variable GET en cours
                    if($v2==$array_clef_get[$i]) {//si la variables en cour est interdit
                        //on initialise le booléen d'interdiction a "true"
                        $interdit=true;
                        //on a fini le teste, donc on sort de la boucle
                        break;
                    }
                }
            }
            //on regarde si vous avez interdit la variables passé en GET
            if(!$interdit) {//si vous ne l'avez pas interdit
                //on écrit dans $param la clef de la variable GET en cours et sa valeur
                $param.=$array_clef_get[$i]."=".$v."&";
            }
            //on incremente le compteur avant de passer à la prochaine Variable GET
            $i++;
        }
        //on enlève le dernier "&" des paramètres
        $param=preg_replace("#&$#", "", $param);

        if($param!="") {//si il y a des paramètres GET à écrire
            //alors, on les écrits
            $url.="?".$param;
        }
    }
    return $url;//on retourne le résultat
}
?>



 Sources du même auteur

Source avec Zip Source avec une capture VOIR QUI VISITE VOTRE SITE
Source avec Zip Source avec une capture MYPHPCOM 2.1: SYSTÈME DE COMMENTAIRE PHP/MYSQL
Source avec Zip Source avec une capture [POO] FENÊTRE D'ALERTE AVEC DES DIV.
Source avec Zip Source avec une capture [POO] MENU XHTML HORIZONTAL EXTENSIBLE (MENUEXTENSIBLEX.PHP)
Source avec Zip Source avec une capture [POO] OBJET CONVERTISSANT UN NOMBRE DE SECONDES EN DIFFÉRENT...

 Sources de la même categorie

Source avec Zip CLASSE D'OBJET DE RECHERCHE DE MOTS DANS DES TABLEAUX ET/OU ... par 8Tnerolf8
RÉCUPÉRER LES MINIATURES D'UNE VIDÉO YOUTUBE par tefa24600
Source avec Zip Source avec une capture CONVERTISSEUR DE NOMBRES EN TEXTE par macruz
Source avec Zip Source avec une capture CODAGE TEXTE >HTML, ISO, SPECIALCHARS, URL ET DECODAGE par Salva9473
LISTER DES LIENS / URLS DEPUIS UN TEXTE par gmni

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture GESTIONNAIRE D'ELEVES OU CARNET D'ADRESSE AVEC EXPORT XLS par cod57
FONCTION GET EN PHP : RECUPERER UNE PAGE SUR UN SITE DISTANT par nax333
MIGAPROXY : PROXY EN PHP COMPILABLE AVEC BAMCOMPILE par qbasic
Source avec Zip UTILISATION DU WEB SERVICE DE MAP24 POUR LA CORRECTION D'ADR... par RyoSensei
Source avec Zip SNMP : RECHERCHE D'ADRESSE MAC SUR UN RÉSEAU DE SWITCH par mole

Commentaires et avis

Commentaire de phpAnonyme le 30/10/2011 23:31:36

1- Adresse absolue ? donc faut pas utiliser GET en dure, mais bien ce qui semble avoir été passé en paramètres. GET peut être ajouter/modifier/supprimer en dure dans le script; tu peux te trouver avec des données non passé en URL => conséquence en autres boucles supplémentaires, etc, etc
2- Pas besoin de faire deux boucles pour ça
3- Pas assez de protection sur les superGlobal $_SERVER
4- Tu te compliques trop la vie notamment avec ton compteur de boucle...


/*
$displayVars = boolean, affichage ou non des valeurs passés en paramètres
$excludeVars = array or boolean false, valeurs à exclure  
*/
function parsor($displayVars = true, $excludeVars = false)
{
$Uri='http://'.htmlspecialchars($_SERVER['HTTP_HOST'], ENT_COMPAT, 'UTF-8').htmlentities($_SERVER['PHP_SELF']);
$parsed_url = parse_url( htmlentities($_SERVER['REQUEST_URI']) );

if(!$displayVars OR empty($parsed_url['query']))
return $Uri;
if(!$excludeVars Or !is_array($excludeVars))
return $Uri.'?'.$parsed_url['query'];

$set_url = '';
$tempA = explode('&', $parsed_url['query']);
if(sizeof($tempA))
{
foreach($tempA AS $keyA => $valA)
{
$tempB = explode('=', $valA);
if(!in_array($tempB[0], $excludeVars))
$set_url .= (!empty($set_url) ? '&' : '').$tempB[0].'='.$tempB[1];

}
}
return $Uri.'?'.(empty($set_url) ? $parsed_url['query'] : $set_url);
}

Commentaire de phpAnonyme le 30/10/2011 23:37:36

#Remplacer :
$parsed_url = parse_url( htmlentities($_SERVER['REQUEST_URI']) );

#Par :
$parsed_url = parse_url( strip_tags($_SERVER['REQUEST_URI']) );

Commentaire de TychoBrahe le 31/10/2011 15:52:48

Salut,

Et si par exemple on utilise du https ou du ftp on fais comment ? Ha tu vous retourne une fausse url...
Sinon je n'ai que survolé car la quantité de commentaires inutiles (et bourrés de fautes) ainsi que la grosse lourdeur du code m'a un peu découragé. Allez, avec juste quelques fonctions sur les tableaux tu économises un grand nombre de lignes et fais maigrir ton code de 70% minimum. Comme l'a dit phpAnonyme avant moi : tu te compliques la vie !

Commentaire de emilia123 le 07/11/2011 07:08:04

Bonjour,

Voici un petit "tips" qui peut servir assez souvent surtout dans la concaténation comme ici.
Ici :
  # //on enlève le dernier "&" des paramètres
  # $param=preg_replace("#&$#", "", $param);
ou meme ici, dans le commentaire de "phpAnonyme":
  $set_url .= >>>>(!empty($set_url) ? '&' : '')<<<<....;

On peut tout simplement utiliser l'une des 3 fonctions suivantes (en fonction de la situation):
- trim(...)
- ltrim(...)
- rtrim(...)
Peu de gens savent que l'on peut passer, à ces fonctions, un paramètres supplémentaires indiquant la liste des caractères à supprimer en fin et/ou début de chaine.
$param=preg_replace("#&$#", "", $param);
devient simplement :
$param=rtrim($param, '&');
Du coup on n'est pas obligé de faire des tests à chaque boucle. On ajoute à chaque boucle sans se poser de question, et on fait un trim à la fin pour supprimer les éléments aux extrémités.

EM

Commentaire de phpAnonyme le 08/11/2011 02:05:16

#rtrim()
Je connais, c'est surtout qu'il fallait y penser ! Il y a des tas de fonctions qui se ressemblent...
Après cela ne joue pas de manière significative sur les performances sur code. Donc bon à savoir pour certains peut-être, mais pas grand intérêt sur le fond du problème avec le code d'origine.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Paramètres via adresse [ par Galmiza ] Salut,Quand on tape un mot dans google exemple "recherche", on est envoy&#233; &#224; une page nomm&#233;e comme ci-dessous:http://www.google.fr/searc généralités CURL [ par grosteack ] Bonjour jeunes gens ! Voilà, J'essaye d'ouvrir une page qui passe des variables avec la méthode GET donc :http://www.site.com/?var1=...&var2=...&.... générer erreur 404 [ par phoenyx ] j'aimerais pouvoir g&#233;n&#233;rer une erreur 404le but est d'interdir l'acc&#232;s &#224; certains r&#233;petoires en faisant croire qu'ils n'exist affichage page [ par cobrachris ] Bonsoir,J'ai mis en place un certain design grace &#224; include.voici un bout de code de ma page index:&lt;div style="position: absolute; width: 621; découper une Adresse URL [ par kangoo75 ] Bonjour, j'aimerais savoir comment r&#233;cuperer les parametres d'une URL d'une page courante ( c'est &#224; dire la page ou je lance le script), par Fonction include() et paramètres GET ? [ par killer19 ] Bonjour. J'aimerais savoir s'il y a un moyen d'appeler une page php en lui transmettant des param&#232;tres GET, sans passer par un lien. Je m'expliqu probleme $GET [ par texas77 ] Bonsoir,j'expose mon probl&#233;me :j'ai une page index.htm :&lt;code&gt;&lt;div&gt;&lt;form method="GET" action="/applet/chat.html"&gt;&lt;fieldset&g Destination de GET en FTP php ... [ par RaelRiaK ] Bonjour,J'ai un probléme avec les fonctions GET ftp de php! En effet, elles demandent en parametres l'adresse du fichier source à telecharger, et l'ad Probelem pagination [ par hlimaiem ] Limaiem heykel,Bonjour, ma page web contient beaucoup d'enregistrement donc j'ai du les couper sur plusieurs page mais bon la pagination que j'ai fait Problème : Notice: Undefined index [ par dalma101 ] Salut, je recode mon site dont voici un morceau de la première page "index.php" :    &lt;body&gt;        &lt;div id="main"&gt;            &lt;div id="


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,889 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales