[RESOLU] passage de parametres via formulaire en mem tps qu'un upload

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] passage de parametres via formulaire en mem tps qu'un upload

Re: passage de parametres via formulaire en mem tps qu'un up

par ybezier » 07 sept. 2012, 14:53

Bon, heureusement que j'ai posté ce pb à la rubrique PHP_Debutant !!!!
Je récupère toutes les données comme je veux maintenant.
Un peu débutant sur ce coup là...

Merci beaucoup
Yvo

Re: passage de parametres via formulaire en mem tps qu'un up

par xTG » 07 sept. 2012, 13:55

$_POST est un array, donc var_dump($_POST) ;)

Re: passage de parametres via formulaire en mem tps qu'un up

par ybezier » 07 sept. 2012, 13:28

Ok... en tout cas merci d'avance pour ces précieuses informations.

Donc,

Dans mon script "getfile.php", je fais afficher :

<?php
echo "$post : ".$_POST;
?>

A l'éxécution, rien ne s'affiche.

J'ai essayé aussi les input "hidden" mais rien non plus.
En fait, dans la barre d'adresse, j'ai bien les variable mais les 2 dernières (celles pilotées par le formulaires) n'ont pas leur valeur

"ma barre d'adresse quand getfile est exécuté ...getfile.php?identifiant=durand444&document_typ=200&document_com=&carte=

Merci d'avance

Re: passage de parametres via formulaire en mem tps qu'un up

par Mazarini » 07 sept. 2012, 13:16

Je ne vois pas de test sur $_POST['envoi'] dans le script getfile.php qui est appeler par le formulaire.

Dans le fichier devis.php, il y a bien un test sur $_POST['envoi'], mais il n'a aucun rapport avec le formulaire qui le précède. Je pense que tu as zappé que PHP génère un fichier html en réponse à une demande du client ; tout devis.php est traité et ensuite la page est affiché. Le code après la fermeture du formulaire </form> n'attend pas la réponse de l'utilisateur mais s'exécute dans la foulée.

Pour la solution : à tu essayé les input hidden que je t'ai suggéré.

Re: passage de parametres via formulaire en mem tps qu'un up

par ybezier » 07 sept. 2012, 11:21

En fait, j'ai l'impression que quand je valide mon formulaire, le script ne passe pas dans la condition :

if (isset($_POST['envoi']))

Comme tu le dis, Possible que les variables get ne soit pas compatible avec "multipart/form-data"

Pour vérifier, j'ai vire dans ma balise <form.... la chaine : "enctype="multipart/form-data""
et comme par magie, je récupére bien mes variable. mais l'upload ne se fait évidement plus !!!

je boucle !!

Re: passage de parametres via formulaire en mem tps qu'un up

par Mazarini » 07 sept. 2012, 11:15

Alors ajoutes <input type="hidden" name="XXX" value="YYY"> dans le formulaire pour chaque variable à transmettre et récupère les valeurs avec $_POST.

Possible que les variables get ne soit pas compatible avec "multipart/form-data"

Re: passage de parametres via formulaire en mem tps qu'un up

par ybezier » 07 sept. 2012, 11:05

Bonjour,

Merci pour cette réponse.

Non, je ne vois rien dans la barre d'adresse.
Sans vouloir abuser, je te file mes 2 scripts, j'avoue que j'en perd mon latin...

Programme avec le formulaire (devis.php)

Code : Tout sélectionner

<?php $identifiant = $_GET['username']; echo "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n"; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html> <head> <title> BALI EMOTION - Voyage à Bali - Séjour à Bali - Agence de voyage Bali - Ile des dieux - envoi devis </title> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <meta name="robots" content="follow,index"> <meta http-equiv="Content-Language" content="fr"> <meta name="Description" content="Baliemotion - Organisation de séjour personnalisé à Bali, lombok, java, sulawesi, nusa lembongan"> <meta name="Keywords" content="voyage a bali, sejour a bali, sejour privatif a bali, sejour privatif a lombok, sejour privatif a bali, lombok, sejour privatif a bali , lombok, java, sulawesi, voyage de noce, voyage a bali en circuit individuel a bali, circuit privatif a bali "> <meta name="Author" content="BaliEmotion - Yvonnick BEZIER"> <meta name="google-site-verification" content="iVfrGyHv08ITjzOTilxr4evDv3AvnhccT0HhQoui-gY" /> <script language="JavaScript1.2" src="html/pages/outils/saisie_date_calendrier.js"></script> <?php $langue="french"; $repertoire=getcwd(); chdir('/homepages/32/d335722865/htdocs/baliemotion'); $wpath="html/pages/outils/"; $wtemplate="template.css"; $path_template="template/bali_emotion/css/"; $bymenu=1; $height_grande_image="190"; if (strlen($repertoire) > 43) { $wtemplate="template_jumi.css";} ?> <link rel="stylesheet" href="http://www.baliemotion.com/templates/system/css/system.css" type="text/css" /> <link rel="stylesheet" href="http://www.baliemotion.com/templates/system/css/general.css" type="text/css" /> <link rel="stylesheet" type="text/css" href="http://www.baliemotion.com/templates/bali_emotion/css/<?php echo $wtemplate ; ?>" media="screen" /> <?php $indice_image=-1; ?> <body> <?php // Debut de l'affichage de l'entete de la page du // // connexion à la base de données // include ("/homepages/32/d335722865/htdocs/baliemotion/html/pages/equate/connexion.php"); // ?> <table> <tr> <td> <table> <tr> <td colspan="4"> <h1>Bali Emotion - Envoi de devis au client</h1> </td> </tr> <tr><td><HR WIDTH="762" size="8" color="#4667af"></td></tr> </table> </td> </tr> </table> <form action="getfile.php?identifiant=<?php echo $identifiant; ?>&document_typ=200&document_com=<?php echo $commentaire_devis; ?>&carte=<?php echo $cartographie_devis; ?>" enctype="multipart/form-data" method="post"> <?php if (isset($_POST['envoi'])) { // // verification du formulaire // // Debut de la recupration des variables à partir de $_POST $commentaire_devis = isset($_POST['commentaire_devis']) ? $_POST['commentaire_devis'] : ''; $cartographie_devis = isset($_POST['cartographie_devis']) ? $_POST['cartographie_devis'] : ''; // // Fin de la recupration des variables à partir de $_POST // $nb_erreur ='0'; ?> <hr style="color:#116F0C" /></hr> <?php // } if(isset($_POST['reset'])) { $_POST=''; } if (!isset($_POST['envoi']) or $nb_erreur=='1' ) //and (isset($_POST['reset']) or !empty($_POST))) { ?> <table width="500"><tr><td>&nbsp;</td></tr></table> <hr style="color:#116F0C" /></hr> <?php $req="SELECT id, contact, mail FROM bal_client WHERE id ='$identifiant' order by id"; $ret=mysql_query ($req) or die (mysql_error ()); while ($row = mysql_fetch_row ($ret) ) { $identifiant= $row[0]; $contact= $row[1]; $mail =$row[2]; } ?> <hr style="color:#116F0C" /></hr> <?php // // Fin Affichage de l'entete de la page du formulaire // // Début Controle de $_POST // ?> <fieldset> <table width="800"> <tr> <td width="205" valign="top"> Sélectionner le devis du client : </td> <td> <input type="file" name="uploadFile"> <input type="hidden" name="MAX_FILE_SIZE" value="85000" /> </td> </tr> </table> <table> <tr> <td width="205" valign="top">Commentaire sur ce devis</td> <td colspan="2"> <textarea name="commentaire_devis" cols="70" rows="1"><?php $commentaire_devis;?></textarea> </td> </tr> </table> <table> <tr> <td width="205" valign="top">Cartographie Google</td> <td colspan="2"> <textarea name="cartographie_devis" cols="70" rows="4"><?php $cartographie_devis;?></textarea> </td> </tr> </table> <strong>Pour executer ce formulaire<input type="submit" class="verif" name="envoi" value="Envoyer" /> &nbsp;<input type="submit" class="verif" name="reset" value="Reinitialiser" />&nbsp;&nbsp;Pour annuler ce mail et recommencer une nouvelle saisie</strong> </td></tr> </table> </fieldset> </form> <table> <?php } ?> <tr><td>&nbsp;</td></tr> </table> </body> </html>
Programme appelé (getfile.php)

Code : Tout sélectionner

<?php $identifiant = $_GET['identifiant']; $document_typ = $_GET['document_typ']; $document_com = $_GET['document_com']; $carte=$_GET['carte']; ?> <?php echo "identifiant : ".$identifiant; echo "document_typ : ".$document_typ; echo "document_com : ".$document_com; echo "carte : ".$carte ; ?> <html> <head> <title>Transfert du fichier</title> </head> <body> <?php // // chargement données client // include ("/homepages/32/d335722865/htdocs/baliemotion/html/pages/equate/connexion.php"); $req = "SELECT * FROM bal_client WHERE contact = '$identifiant' order by id";; $ret=mysql_query ($req) or die (mysql_error ()); $i=0; while ($row = mysql_fetch_row ($ret) ) { // chargement des infos dans l'equate include ("/homepages/32/d335722865/htdocs/baliemotion/html/pages/equate/equ_bal_client.php"); } // ----------------------------------------------------------------------------- // ----------------------------------------------------------------------------- // // Déclaration des identifiants FTP $ftp_serveur='ftp.baliemotion.com'; $ftp_user_name='u59441134'; $ftp_user_pass='tator_070512'; // Initialisation de la connexion $conn_id = ftp_connect($ftp_serveur); // Identification $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); // Transfert du fichier de mon disque dur vers le répertoire où est lancé mon script.'/files/' if ( move_uploaded_file($_FILES['uploadFile'] ['tmp_name'], "files/{$_FILES['uploadFile'] ['name']}") ) //"/baliemotion/crm/upload_tmp/{$_FILES['uploadFile'] ['name']}") ) { echo "Le fichier vient est transféré avec succès"; } else { echo "Un problème est apparu pendant le transfert"; } // stockage du nom du fichier uploader $fichier=$_FILES['uploadFile'] ['name']; //echo "fichier : ".$fichier; // open the folder that have the file ftp_chdir($conn_id, '/baliemotion/crm/fonctions/devis/files/'); // rename the file - Déplacement du fichier upload vers le répertoire /baliemotion/ //ftp_rename($conn_id, $fichier, '/baliemotion/'.$fichier); ftp_rename($conn_id, $fichier, '/baliemotion/html/pages/espace_client/durand444/'.$fichier); // // ------------------------------------------------------- // ------------------------------------------------------- // // Maj table bal_client_document // $req = "INSERT INTO bal_client_document "; $req = $req. "( contact, document_typ, document_cod, document_dat, document_com, carte ) "; $req = $req. " VALUES('$identifiant', '$document_typ','$fichier','".date("Y-m-d")."','$document_com','$carte')"; mysql_query($req); $last_id=mysql_insert_id(); // // ------------------------------------------------------- // ?> <script type="text/javascript"> <!-- //window.close(); --> </script> </body> </html>

Merci pour ta précieuse aide.
Yvo

Re: passage de parametres via formulaire en mem tps qu'un up

par Mazarini » 07 sept. 2012, 08:19

Bonjour,

Est ce que les variables apparaissent dans la barre d'adresse ?

Au pire, tu peux les mettre dans un input de type hidden et les récupérer dans $_POST.

passage de parametres via formulaire en mem tps qu'un upload

par ybezier » 06 sept. 2012, 23:38

Bonjour,

DAns un script PHP, j'ai un formulaire qui me permet de :
- Sélectionner un fichier à télécharger
- 4 zones de saisie

Mon problème est que mon uptload fonctionne très bien mais impossible de récupérer dans mon script "getfile.php" les 4 variables passées par la méthode POST
Dans mon script getfile.php,j'utilise les instruction suivantes pour récupérer mes 4 paramètres :
<?php
$identifiant = $_GET['identifiant'];
$document_typ = $_GET['document_typ'];
$document_com = $_GET['document_com'];
$carte=$_GET['carte'];
?>

Quelqu'un a-t-il une idée ?


Ci-dessous l'instruction de mon formulaire.

Code : Tout sélectionner

<form action="getfile.php?identifiant=<?php echo $identifiant; ?>&document_typ=200&document_com=<?php echo $commentaire_devis; ?>&carte=<?php echo $cartographie_devis; ?>" enctype="multipart/form-data" method="post">
Merci d'avance.
Yvo