Jump to content

Récupération des variables d'une URL


biomax

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.

Link to post
Share on other 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']

Link to post
Share on other 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.

Link to post
Share on other 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...

Link to post
Share on other 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

???

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...