Aller au contenu
biomax

Récupération des variables d'une URL

Noter ce sujet :

Recommended Posts

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.

Partager ce message


Lien à poster
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']

Partager ce message


Lien à poster
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") ;)

Partager ce message


Lien à poster
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.

Partager ce message


Lien à poster
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...

Partager ce message


Lien à poster
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

???

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant

×
×
  • Créer...