Aller au contenu

Récupération des variables d'une URL


biomax

Sujets conseillés

Dans un script en php, j'affiche une série d'annonces, et pour chaque annonce je crée un formulaire qui permet de modifier une des ses caractéristiques

if($caract == "oui")

{echo "<form ACTION='XXXphp?action=retirer&id=$id' METHOD='POST'><input type='submit' NAME='accueil' VALUE='retirer'></form>" ;

}

if($caract == "non")

{echo "<form ACTION='XXXX.php?action=afficher&id=$id' METHOD='POST'><input type='submit' NAME='accueil' VALUE='afficher'></form>" ;

Le problème est que le fichier destination (qui est le même que celui d'origine) ne récupère et n'affiche pas les valeurs des variables "action" et "id". Il n'est par conséquent pas capable d'executer la requète MySQL.

Merci de m'aider.

Lien vers le commentaire
Partager sur d’autres sites

C'est que php est configuré pour ne pas permettre les variables globales...

Remplace if($action) par if($_POST['action']) et fais de même pour la variable id, à remplacer par $_POST['id']

Dan

PS: je vois que ces variables sont transmises par la méthode GET alors que ton formulaire utilise la méthode POST.

Essaie de changer la méthode du formulaire en GET, ou utilise $_GET['action']

Lien vers le commentaire
Partager sur d’autres sites

Crée un fichier PHP operations.php par exemple et tu passes tes données "action" et "id" dans des champs cachés (type="hidden") ;)

+1

C'est effectivement comme ça qu'il faut passer les paramètres, plutôt que dans l' "action" du form.

Lien vers le commentaire
Partager sur d’autres sites

Bon alors je rajoute le script en début de fichier qui est censé récupérer les valeurs des variables "action" et "id" :

if ($action == "afficher")

{

$instruction="UPDATE ad SET accueil = 'oui' WHERE siteid = $id";

$res=mysql($datab, $instruction);

}

if ($action == "retirer")

{

$instruction="UPDATE ad SET accueil = 'non' WHERE siteid = $id";

$res=mysql($datab, $instruction);

}

Pouvez-vous SVP me dire ce que je dois exactement écrire dans le formulaire, et dans ce petit script, parce que là je galère...

MERCI BEAUCOUP

En plus sur une autre partie de mon site j'utilise la même méthode et cela fonctionne...

Ici c'est une modification d'un script de petites annonces, donc je comprendspa spourquoi cela ne fonctionne pas içi...

Lien vers le commentaire
Partager sur d’autres sites

Vous dites qu'il est préférable de passer des données de page en page en utilisant "hidden" plutôt qu'en les faisant passer par l'URL ?

Il est donc préférable de mettre ceci, c'est ça ?

<input type="hidden" name="id" value="$id">
<input type="hidden" name="action" value="retirer">

et ensuite de les récupérer grâce à :

$id=$_POST['id'];
$action=$_POST['action'];

N'est-il pas préférable de les passer par l'URL de les récupérer par $_GET[''] et de masquer l'URL grâce aux headers afin que cela affiche

www.monsite.com

au lieu de

www.monsite.com?id=$id&action=retirer

???

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

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



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