WampServer

Apache, PHP, MySQL on Windows 

 
  • Accueil forum
  • Retour à WampServer
  • presentation
  • Download
  • Addons
  • Formations
  • Alter Way

 
Voir le sujet: Précédent•Suivant
Aller à : Liste des Forums•Liste des messages•Nouvelle discussion•Recherche•Connexion•Imprimer la vue
Problème action formulaire
Envoyé par: Touriste (---.dclient.lsne.ch)
Date: 27 August 2009 à 12:18

Hello les gens, je me suis inscrit sur ce site en espérant que vous pouvez m'aider sur le problème suivant.

Je l'ai déjà soumis à commentcamarche.net mais il n'y a pas eu de résolutions.

voici le soucis :

J'ai un problème avec mes "actions" du formulaires.

je prend l'exemple de mon formulaire dont le lien se présente sous cette forme :

" http:// localhost/Fuegotec/pages/admin_produits.php?idProd=Aj " ( sans l'esapce après http:// )

cette page a pour fonction d'ajouter un produit de la société dans la base de données.

Ma méthode consiste à, lorsque j'appuie sur le bouton "envoyer", qu'il soit redirigé sur cette même page.

Et que je fais un test "if(isset($_POST["btnAjouterProduit"])), il appelle une fonction allant tester les valeurs entrés dans le formulaire qui est dans une autre page.

Je met donc dans les paramètre de mon formulaire : action="admin_produits.php?idProd=Aj"

mais, et c'est ici que vous intervenez ^^, il me met le message suivant :

[pikanus.net]

je comprend pas. J'ai essayé comme ceci :

en mettant simplement un lien qui n'a pas de "id" get, (action="admin_produits.php"winking smiley la redirection fonctionne, mais bien entendu, le traitement ne se fait pas puisque le formulaire ne le redirige pas sur la bonne page.

en faisant avec "document.href" de javascript
en faisant avec "$_SERVER["PHP_SELF"];

je ne sais pas comment faire. Pourtant lors d'un de mes travaux précédent, cela fonctionnait à merveille. Même s'il y avait un " ?id " dans le lien ...

J'en ai donc conclu que ça doit être une configuration de Wamp qui n'est pas paramétré selon mon envie.

Si ça peut aider, le problème est exactement pareil sur IE 6 que sur Firefox (dernière version. je sais plus laquelle c'est)

La version du wamp que j'utilise est le 2.0

En vous remerciant d'avance,
je vous souhaite une bonne après-midi

Touriste

Options: Répondre•Citer ce Message
Re: Problème action formulaire
Envoyé par: Otomatic (---.fbx.proxad.net)
Date: 27 August 2009 à 15:13

Bonjour,

"admin_produits.php?idProd=Aj" se teste avec $_GET['idProd'], pas avec $_POST['idProd']. Éventuellement, vous pourriez utiliser $_REQUEST['idProd'] qui cumule, entre autres, GET et POST.

Options: Répondre•Citer ce Message
Re: Problème action formulaire
Envoyé par: OlivierW (---.fbx.proxad.net)
Date: 27 August 2009 à 21:45

Salut,

Otomatic, Touriste a "idProd" dans son URL mais tente de récupérer "btnAjouterProduit" avec $_POST.

Touriste, tu ne pourrais pas mettre un exemple de ton code pour voir ce que tu fais ? Dans ton formulaire, tu as method="post" ? Sinon, suit les recommandations d'Otomatic.

À part ça, méfies-toi de "commentcamarche pas net"... leur forum est modéré par des gamins qui n'y connaissent rien en informatique et qui tentent d'installer des virus sur les PCs des utilisateurs qui ont des problèmes.

Olivier

PC Tuning - Olivier LLAMBI, photographe à Marseille
O2 Graphics, votre agence web à Saint-Etienne

Options: Répondre•Citer ce Message
Re: Problème action formulaire
Envoyé par: Touriste (---.dclient.lsne.ch)
Date: 28 August 2009 à 08:08

Hello, merci olivier pour le conseil, je ne savais pas concernant commentçamarche smiling smiley

alors voici le bout de code en question :

//Si l'id correspond au clic d'ajouter un produit
if($_GET["idProd"] == "Aj"winking smiley
{
// On affiche le formulaire adéquat
print('
<br>
<form action="admin_produits.php?idProd=Aj" name="frm_ProduitsAjout" method="post" enctype="multipart/form-data">
<table width="400" border="0" align="center">
<tr>
<td><div align="right" class="StyleContenuGras" >Modèle :</div></td>
<td><input name="txtModeleProd" size="30" type="text" /></td>
</tr>
<tr>
<td><div align="right" class="StyleContenuGras">Descriptif en français :</div></td>
<td><textarea name="txtDescriptionFrProd" cols="33" rows="2"></textarea></td>
</tr>
<tr>
<td><div align="right" class="StyleContenuGras">Descriptif en allemand :</div></td>
<td><textarea name="txtDescriptionDeProd" cols="33" rows="2"></textarea></td>
</tr>

etc...

</table>
</form>

//Si le bouton "Ajouter" a été appuyé
if(isset($_POST["btnAjouterProd"]))
{
//Variables prenant les valeurs du formulaire
$Modele = addslashes($_POST["txtModeleProd"]);
$DescriptifFr = addslashes($_POST["txtDescriptionFrProd"]);
$DescriptifDe = addslashes($_POST["txtDescriptionDeProd"]);
$DescriptifIt = addslashes($_POST["txtDescriptionItProd"]);
$DescriptifEn = addslashes($_POST["txtDescriptionEnProd"]);
$Categorie = $_POST["lstCategorieProd"];
$Nouveau = $_POST["chxNouveauProd"];

//Utile que pour la partie modification du produit
$IDModifProd = "0";

//Permet d'identifier la page d'ajout à la page de modif lors du traitement final du formulaire
$idPage = "Ajout";

//Appel de la fonction du traitement des comptes d'admin
TraiterProduits($IDModifProd, $Modele, $DescriptifFr, $DescriptifDe, $DescriptifIt, $DescriptifEn, $Categorie, $Nouveau, $idPage);
} //if


Voilà. Le formulaire, et la récupération des variables lors du clic sur le bouton.

J'ai essayé un tas d'autres façons pour ce qui est du chemin, et quand j'en mettais un sans le "?idProd" la redirection fonctionnait mais pas le traitement puise que l'appel au traitement se fait à la page contenant l'idProd.

Ce que je ne comprend pas, c'est que lorsque je travaillais aux cours avec wamp server, se problème n'est pas apparu. Je me suis donc dit, que c'est peut être un paramètre de wamp server à changer



J'ai pas encore essayé ta méthode Otomatic. J'essaierais cet après-midi, mais je doute que ce soit la résolution de mon problème

Options: Répondre•Citer ce Message
Re: Problème action formulaire
Envoyé par: toumimi (---.115.116-78.rev.gaoland.net)
Date: 28 August 2009 à 11:33

Salut,

Si tu utilises php5.3, alors il se pourrait que ce soit un bug qui fait planter Apache avec la fonction mysql_close...
Vérifies que tu utilises bien un paramètre avec la fonction..
<?php
$link = mysql_connect('ip','user','password');
mysql_close($link)
?>

Florian

WampServer Patch (Screenshots)
Topic EN : www.wampserver.com
Topic FR : www.wampserver.com

Options: Répondre•Citer ce Message
Re: Problème action formulaire
Envoyé par: OlivierW (---.fbx.proxad.net)
Date: 28 August 2009 à 12:26

Salut,

J'ai pas encore testé ton code, mais vu que tu as method="post", tout semble correctde ce côté là.
Testes d'abord ce que t'as indiqué toumimi, c'est bien possible que ce soit ça (j'oublie tout le temps ce bug...).

Par contre, j'ai quelques remarques par rapport à ton code smiling smiley
1) prends toujours l'habitude de vérifier que l'utilisateur ne t'envoi pas n'importe quoi... en utilisant les fonctions filter_*() de PHP
Exemple :
if ( isset()===false ) {
exit('Traiter l\'erreur correctement');
}

$idProd = filter_var($_GET["idProd"], FILTER_SANITIZE_STRING);

//TOUJOURS utiliser "===" et pas "==",
//"===" permet aussi de tester que le type est le même des deux côtés (dans ce cas : 'string')
//pour l'instant je n'ai jamais rencontré de cas où j'avais besoin de "=="
if($idProd === "Aj"winking smiley {
echo 'OK';
}

Le même test, mais pour un int :
if ( filter_var($_GET['id'], FILTER_VALIDATE_INT) === false ) {
exit('Traiter l\'erreur correctement');
}

$id = (int)filter_var($_GET['id'], FILTER_SANITIZE_NUMBER_INT);

if ( $id === 3 ) {
echo 'OK';
}


2) ne pas utiliser addslashes, tu vas galérer et te retrouver avec des slashes partout sur ton site (voir n°3). utiliser les fonctions filter_* ( et en particulier filter_var() ) qui t'encoderas ' en &#39; et " en &#34;
De plus filter_var permet de valider les adresses mail, utiliserd es regex,...

3) si tu fais un nouveau site, ne JAMAIS utiliser les fonctions mysql_* ou mysqli_*, utiliser PDO ( [fr.php.net] ) à la place. ça t'éviteras les problèmes liés à addslashes + ça t'éviteras les injections SQL (chercher sur Google si tu ne sais pas ce que c'est).

4) tu dis "lorsque je travaillais aux cours avec wamp server", tu suis des cours de programmation ? et ton prof ne t'apprend pas les bonnes pratiques ? Dis lui de ma part qu'il ne mérite certainement pas d'être prof si en 2009 il n'apprend pas à ses élèves à utiliser entre autres PDO et filter_*. et s'il n'apprend pas les bases de la sécurité à ses élèves.
C'est grâce à des mecs comme ça qu'il y a pleins d'applications bugguées, mal coddées et qui sont ensuite attaquées par des pirates ou des bots.
Sécuriser ton code, c'est la base de tout, sinon ça ne sert à rien de faire un site web dynamique :-/ (ou alors tu auras surement des problèmes)

Olivier winking smiley

PC Tuning - Olivier LLAMBI, photographe à Marseille
O2 Graphics, votre agence web à Saint-Etienne

Options: Répondre•Citer ce Message
Re: Problème action formulaire
Envoyé par: Touriste (---.dclient.lsne.ch)
Date: 28 August 2009 à 12:49

Hello,

merci énormément toumimi, c'était bien ça qui ne jouait pas ^^

ohlala, quel soulagement smiling smiley


Merci beaucoup, Olivier, je ne connaissais pas le "filter" je vais y jeter un oeil dessus.

C'est vrai que la sécurité sur un site web dynamique c'est super important. Merci beaucoup, je vais scruter tout ça, modifier la structure de mes pages

smiling smiley

Bon week-end, Byye

Touriste

Options: Répondre•Citer ce Message


Aller à : Liste des Forums•Liste des messages•Recherche•Connexion
Désolé, seuls les utilisateurs connectés peuvent envoyer des messages dans ce forum.
Cliquer ici pour se connecter

design by jidePowered by Alter Way get firefoxget PHP