Transmition des arguments vers une page dans une frame

Contenu du snippet

L'autre jour, je crée une page avec des frame et dans l'une de ces frames se trouve une page php chargée de traiter les paramètres d'un formulaire. Problème, la page faisant partie d'une frame, c'est la page "parent" qui reçoit les info et ne les redistribue pas.
J'ai donc fait ce petit bout de code que l'on viendra mettre en tout début de page avant la balise HTML. Le code se charge de récuperer toutes les valeurs avec leurs noms respectifs, et de les concatener dans une chaine de caractères que l'on peut ainsi inclure dans l'URL de la page dans la frame.
!!!ATTENTION: ce source pour sous débutant ne s'applique pas au traitement des arguments complexes de type array, ou objet...
Il est destiné à manipuler des arguments de type text et numéraire.
example: test.php?num_tel=0000000000&ref=abcdefg&type_annonce=1&type_bien=2
Il manque cruellement un contrôle des données pour ne traiter que les arguments du type attendu (cf. source de kankrelune dans son post du 14/12/2006)

Source / Exemple :


<?php
/*
$_GET, $_POST: tableaux contenant toutes les valeurs en provenance d'un formulaire ou d'une injection manuelle dans l'URL
params: chaine de caractères pouvant être collée au bout de l'URL du document dans la frame

  • /
$params = ""; // initialisation de la chaine de caractère if (!empty($_GET)) { // on verifie s'il y a des valeur dans $_GET reset($_GET); // on s'assure que le pointeur interne est bien au début $params = "?" . key($_GET) . "=" . current($_GET); // on traite le premier argument ("?") next($_GET); // on deplace le pointeur interne sur l'élément suivant while (list($key, $val) = each($_GET)) { $params .= "&" . $key . "=" . $val; // puis séquencielement le reste du tableau } } if (!empty($_POST)) { // on verifie s'il y a des valeur dans $_POST reset($_POST); // on s'assure que le pointeur interne est bien au début // si $params est vide, c'est que $_GET etait vide donc le premier élément de $_POST devra avoir "?" if ($params == "") $params = "?" . key($_POST) . "=" . current($_POST); // avec "?" else $params .= "&" . key($_POST) . "=" . current($_POST); // avec "&" next($_POST); // on deplace le pointeur interne sur l'élément suivant while (list($key, $val) = each($_POST)) { $params .= "&" . $key . "=" . $val; // puis séquencielement le reste du tableau } } ?> <HTML> <HEAD> </HEAD> <BODY> <FRAMESET cols="250,250,*"> <FRAME src="mapage1.php<?php echo params; ?>"> <--! transmition des paramètres --> <FRAME src="mapage2.php"> <FRAME src="mapage3.php"> </FRAMESET> </BODY> </HTML>

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.