Aller au contenu

include et passage de variable dans l'URL


Sujets conseillés

Posté

Bonjour,

L'exécution de la ligne suivante s'avère impossible, je devinne (assez) vaguement pourquoi, mais je ne trouve pas de parade, quelqu'un pourrait-il m'expliquer ce qui se passe, et qu'elle serait la parade pour le résulat désiré : appel de page par du code PHP avec passage de paramètres dans l'URL.

$mavar="1";

include_one("ma_page.php?mavar=$mavar");

(l'erreur dit que la page est introuvable, bien que le système renvoit bien : ma_page.php?mavar=1 ; sans le passage de var la ligne s'exécute bien)

Merci, Nils.

Posté

Pourtant, ça devrait marcher, c'est donc que ma_page.php n'existe pas, tout simplement !

Posté

maleureusement si, mais, autre chose:

ma_page.php appelle par include ma_page_form.php qui appelle par <action> ma_page_traitement.php qui rappelle par include ma_page.php

ce serait cette boucle qui pose problème peut-être ?

Posté

LoL, donne les bouts de script STP, ca sera plus clair, on est le soir la :D

Posté

Bonjour,

D'abord tu doit parler de la fonction include_once c'est bien ca ?

Ensuite, l'appel comme tu dis ne se fait pas de cette maniere.

Un include sert a mettre un bout de code ecrit dans un fichier, dans un autre fichier.

Lorsque tu fait un include 'mapage.php" ce n'est pas du tout comme si tu tape l'adresse du script dans un navigateur.

Donc la solution consite a faire :

$mavar = 1;
include_once("mapage.php");

et à faire en sorte que le script de mapage.php utilise bien la variable $mavar :)

Posté

oula.. oui, vraiment fatigué moi !! :D

Effectivement :fou: jvais me prendre ma semaine de congés :P

Posté

Voici la boucle de mes 3 pages:

// page : admin_page_href_creer-services.php
<?
// récupération de date_resa et de autonum_QR de la page précédente.
$autonum_QR = $_GET["autonum_QR"];
$date_resa = $_GET["date_resa"];

// récupération des coordonnées du réservant par autonum_QR.
// récupération de la réservation à la date $date_resa.
// récupération des services existants pour cette demande de réservation par num_enreg_IR.
?>
<html<head></head><body>
<?php
include_once("admin_form_inc_creer-services.php");
?>
</body></html>

<!-- page : admin_form_inc_creer-services.php-->
<!-- affichage du réservant-->
<!-- affichage de la réservation-->

<? // affichage des services existants?>

<form name="ajout_dun_service" action="admin_proc_act_ajout-service.php?autonum_IR=<?echo $row_IR -> autonum_IR;?>" method="post">
<!--saisie des datas-->
<input type="submit" name="enregistrer" value="Enregistrer">
</form>

//page : admin_proc_act_ajout-service.php
<?
$num_enreg_IR = $_GET ["autonum_IR"];

// récupération des datas du formulaire: $_POST[];
// mise à jour de la base;

$autonum_QR="3"; //pour test
$date_resa="2"; //pour test
//include_once("admin_page_href_creer-services.php"); ligne qui marche, mais pas de var.
include_once("admin_page_href_creer-services.php?autonum_QR=$autonum_QR&date_resa=$date_resa"); //ligne qui marche pas
?>

Voilà, merci Sarc.

Posté

Merci Titag, bon, entre temps, à la demande de Sarc, j'ai mis des bouts du code.

En effet, je comprends bien qu'un include sert à inclure !, mais alors comment appeler une nouvelle fois ma première page, dans la dernière (la 3ième) ?

Je crois que j'ai un serpent qui se mord la queue là !

Posté

echo $row_IR -> autonum_IR

Quelle est cette variable ?

Si tu as juste un formulaire, moi je te conseille d'utiliser une fonction plutôt...

function formulaire(arg)
{
...
}

Déjà, pas besoin de l'inclure... Ensuite, ton forum il se redirige vers la même page, et tu teste ton $_POST, s'il est non vide c'est que le formulaire a été validé...

Bref, si le script est pas trop gros, tu peux tout faire en une seule page :D

Posté

Dans ton 3e script, il faut que tu rajoutes une variable :

$from_include="YES";

Dans le premier script, au lieu de :

$autonum_QR = $_GET["autonum_QR"];
$date_resa = $_GET["date_resa"];

tu mets

if (@$from_include=="YES"){
$autonum_QR = $_GET["autonum_QR"];
$date_resa = $_GET["date_resa"];
}

Posté

Hello Nico,

Ok, en fait, c'est bien ce que j'avais auparavant, un peu sous une autre forme. Mais un bug me donnait systématiquement le dernier enregistrement dans $date_resa dans un certain cas de figure... C'est pour ça que j'ai voulu passer $date_resa et $autonum_IR dans l'url, pour garder la bonne valeur, mais je vais réfléchir à une autre solution vu que ça n'est pas possible par un include.

Mais en fait, tu me confirmes donc que je peux écrire un truc du genre le serpent qui se mord la queue, ça gène pas. mais je crains de quand même perdre le contenu de $autonum_IR et $date_resa, bon, je vais tester tout ça avec des échos ...

l'@ sert a cacher les messages du système ?, pourquoi l'utiliser ici ? => if (@$from_include=="YES"), je crois que j'ai trouvé => au premier passage la variable n'existe pas encore !

un grand merci à tous, à+, nb. :)

Posté

Dans le second, tu n'inclus rien, tu fais juste un formulaire qui pointe vers.. Mais ce n'est pas un include.[sTOP]

Dans le premier, tu inclus le second, [sTOP]

Dans le troisieme, tu inclus le premier, qui inclus le second [sTOP]

Où est le serpent qui se mord la queue ?

Il aurait pu se mordre la queue, si tu avais fais un include du troisieme dans le second, par exemple, là la boucle aurait été infinie, mais ca bug très vite dans ces cas là.

Pour ce qui est de ton formulaire, tu ne devrais pas mettre les variables

dans l'url, mais comme données du formulaire. Ils seraient passé par la méthode POST, qui est à mon avis plus 'sympa'. Elle ne laisse pas voir les variables dans la barre d'adresse. Pour ce qui est de récupérer les variables après, au lieu de $_GET[truc], tu fais $_POST[truc].

Pour le _AT_ c'est pour que les messages d'alerte/d'erreur ne s'affichent pas. Je te l'ai mis, parce qu'en fonction de la config. du serveur, ca aurait pu te générer une erreur. Mais tu peux l'enlever.

Voilà.

Posté

ok, je comprends, effectivement, le second casse la boucle !

Et au deuxième tour, ma nouvelle première page est crée par mon troisième qui appelle mon premier. C'est vrai, ça marche sans accros.

Merci.

Bon, je viens de tester, je passe dans l'<action> de mon deuxième, mes deux variables récalcitrantes pour les avoir dans mon troisième, et ça marche quand mon premier est rappelé, j'ai bien le bon contenu dans mes 2 vars, c'est tout ce qui manquait.

merci(bis) (as-tu vu mon autre post dans le salon ?)

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...