Rechercher : dans
Par :

Fonction header() avec passage de paramêtres?

Dernière réponse le 26 mai 2006 à 14:45:29 jerome, le 24 mai 2006 à 16:51:49 
 Signaler ce message aux modérateurs

Bonjour,

je conçois actuellement une interface admin en php et j'ai un soucis avec la fonction header() !

J'ai un bouton dans un formulaire qui lorsque l'on clique dessus renvoie vers une autre page mais avec passage de paramêtre.

Je m'explique : pour simplifier il s'agit de l'affichage d'une fiche, et en fonction de la présence ou non d'image à cette fiche, ma page .php n'est pas la même...

Donc, j'ai un script qui identifie le type de fiche et ensuite un bouton qui permet à l'utilisateur de passer d'un type à l'autre (exemple : la fiche 1 est sans image, l'utilisateur veut mettre une image à cette fiche). Ce passage du type "fiche avec image" --> "fiche sans image et vice versa se fait donc via un bouton :

<input .... onclick="<?php nomdemafonction() ?>" >

et la fonction php nomdemafonction() fait appel à une fonction header() qui en principe fonctionne ainsi :

header("Location: http://www.page.com/");

seul hic, je veux afficher la page en relatif donc pas de http://... et il y a des paramêtres dans le lien donc voilà le bordel que j'ai généré et qui bien sûr ne fonctionne pas :

function nomdemafonction() {
$page = "modifnewscol1.php?VARcol1ID=".$row_col1['IDcol1']."&VARnombloc=BLOC".$_GET['VARnombloc'];
$page .= (strpos($page, '?')) ? "&" : "?";
header(sprintf("Location: %s", $page));

}

Info : ici, VARcol1ID est l'identifiant de la table concerné qui doit être égale à l'identifiant de la fiche affiché à l'écran (je ne connais donc pas cette valeur, elle est variable et issu d'un jeu d'enregistrement, déclaré plus haut...)
Et VARnombloc=BLOC".$_GET['VARnombloc']; correspond à un passage de valeur d'URL....

Si, un esprit éclairé pouvait m'aider à me sortir de ce trouble profond, je lui en serais très reconnaissant, je parcours des tas de forum et j'aimerais savoir si quelqu'un parmi vous a réussi à faire fonctionner un header avec passage de paramêtre...

Merci par avance pour votre aide

;)

Meilleures réponses pour « fonction header() avec passage de paramêtres? » dans :
[Windows XP] Libérer 20% de la bande passante VoirComment faire ? Par défaut, Windows XP Pro réserve 20% de la bande passante de la connexion à Internet en cas de congestion réseau à l'aide d'un outil appelé "Planificateur de paquets". (Lire l'article: mythes xp reserve 20 de la bande passante...
Configurer son modem Sagem F@st 800 VoirModem USB Sagem F@st 800 Pas toujours simple de faire fonctionner et de paramétrer sa connexion internet sous Linux, quand on est équipé d'un modem USB. Alors avant de vous arracher tous les cheveux, lisez ce qui suit......
Tableur - Les fonctions mathématiques VoirLes fonctions standards Méthode description ABS() Cette méthode renvoie la valeur absolue d'un nombre, il renvoie donc le nombre s'il est positif, son opposé (positif) s'il est négatif IMPAIR(valeur) Cette méthode renvoie la valeur...
Langage C - Les fonctions VoirLa notion de fonction On appelle fonction un sous-programme qui permet d'effectuer un ensemble d'instructions par simple appel de la fonction dans le corps du programme principal. Les fonctions permettent d'exécuter dans plusieurs parties du...

1

crabs, le 24 mai 2006 à 22:00:53

Salut,

Encore un mélange entre ce que sait faire javascript et ce que fait php. Voici
le principe de la vie d'une page sur un navigateur :
- le php génére le code de la page qui sera affichée sur le navigateur en
s'exécutant sur le serveur WEB
- la page est disponible sur le navigateur
- l'internaute par ses interaction déclenche les traitements javascript, les
GET (classiquement sur des éléments 'a' en utilisant l'attribut href ) ou les
POST (classiquement les scripts en attribut 'action' des éléments form). Ces
traitements sont exécutés sur l'ordinateur qui lance le navigateur (dans les
cas d'utilisation normale).

Bien évidement, le javascript peut faire des redirections (window.location),
des requettes GET ou POST sur un serveur WEB (HTTP request).

Essaies d'appliquer ces étapes de la vie de ta page, et tu te rendras comptes que
'nomdemafonction()' n'est jamais exécutée (si elle est inscrite dans la page
au moyen d'un echo) ou qu'elle est exécuté lors de la génération de la page
si elle est inclu hors des balises <?php et ?>, dans tous les cas jamais sur
un onclick.

Dans le premier cas, tu auras une erreur JS, dans le second il y a eu un
message d'erreur PHP (vérifies tes logs).

Perso j'utilise assez souvent header() et je passe sans problème des arguments.

Dans ton cas, je remplacerai le bouton par un lien classique (élément a) et je
mettrai directement l'url de la page avec ses arguments dans l'attribut href.

Pour ton problème d'url relative qu'il faut écrire en absolue, regardes la
fonction relative2absolute() (ligne 47) sur cette page :
http://ccazajus.free.fr/3DEV/04_WEB_EVENT/SOURCE/LIB_util_php.php
Utilisation :
$url_absolue = relative2absolute( $url_relative ) ;

A+, crabs ..., I think Slackware sounds better than 'Microsoft,'
-- Patrick Volkerding - founder and maintainer of Slackware

Répondre à crabs

2

 jerome, le 26 mai 2006 à 14:45:29

Merci Crabs pour ton aide !!!!

Je suis passé en lien a href en fait juste après avoir poser ma question sur le forum, car idiot de rester avec un gros bouton quand un lien bien présenté suffit ! Et en a href ça marche nickel

merci pour ton aide, cela m'éclaire un peu !

a +

Répondre à jerome
Collection CommentÇaMarche.net