Fonction header() avec passage de paramêtres?
jerome
-
jerome -
jerome -
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: https://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
;)
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: https://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
;)
A voir également:
- Fonction header() avec passage de paramêtres?
- Fonction si et - Guide
- Parametres de mon ordinateur - Guide
- Paramètres dns - Guide
- Passage qwerty azerty - Guide
- Le bon coin mon compte parametres - Guide
1 réponse
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
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
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 +