Forum ZitePLUS

La communauté des utilisateurs du CMS ZitePLUS

Vous n'êtes pas identifié(e).

#1 28/11/2010 23:50:49

Michel
Membre
Inscription : 08/10/2010
Messages : 9

Perte de valeur lors de l'envoi d'un formulaire.

Bonsoir,

Nouveau utilisateur de ziteplus.

J'ai créé une page formulaire mais lors de l'envoi,  les valeurs arrivent  vides  dans la page de traitement.
Ce formulaire fonctionne parfaitement sur d'autre site.

Url d'où le formulaire est visible (utilisez Firefox)

http://www.gitedesorres.fr/lycee/zitepl … 1290965618
dois-je utiliser get au lieu de post ou autre ....

Auriez vous une idée.


le code ci-dessous

<?php
include "cryptographp.fct.php";
$max = 5000000;
$taille_upluad=900000;
if ($_POST['envoi']=="oui")
{
if (chk_crypt($_POST['code']))
     {$code="ok" ;}
     else {$code="non_ok" ; $envoi="non";}
}
$nom=trim($nom);
$expediteur=trim($expediteur);
$tel=trim($tel);
$raison=trim($raison);
$sujet=trim($sujet);
$message=trim($message);
$code=trim($code);

if ($code=="ok" and $_POST['envoi']=="oui" )
{
 $envoi="non";
 $rep_sature=0;
 $message_envoye=0;
 $poids_image=0;

echo " nom $mon<br/>";
  echo " expéditeur $expediteur<br/>";
   echo " tel $tel<br/>";
    echo " rason $raison<br/>";
     echo " sujet $sujet<br/>";
      echo " message $message<br/>";


include "../formulaire/envoie_formulaire_upluad.php" ;


$mail_ok="oui";
}
if ( $message_envoye!=1)
{

?>
    
<div align="center">
    
<table border="0" width="500" id="feuille" >
    <tr>
        <td>
<div align="center">

<table border="0" width="490" id="table3" cellpadding="5">
    <tr>
        <td>
        <p align="center"><font size="4">Formulaire de contact de Projets de classe </font></p></td>
    </tr>
    <tr>
        <td>
<form  enctype="multipart/form-data"   name="Form"   action=""  method="post" onSubmit="return validation(this)" >

<input type="hidden" name="envoi" value="oui"/>
<div align="left">
    <table border="0" width="100%" id="table2">
    <tr>
        <td width="102">Votre Nom<br />ou  Pseudo:</td>
        <td>
        <input onchange="this.value=this.value.trim()" type="text" class="formulaire" name="nom" size="47" value="<?php echo$nom?>" maxlength="22"/></td>
    </tr>
</table>
</div>

<p align="left">Votre E-mail:       
<input onchange="this.value=this.value.trim()" type="text" class="formulaire" name="expediteur" size="47"  value="<?php  echo$expediteur?>"  maxlength="82"/></p>
                    
<p align="left">Votre Tel.*:  
 
<input onchange="this.value=this.value.trim()" type="text" class="formulaire" name="tel" size="15" value="<?php echo$tel?>" maxlength="14"/>     forme: xx.xx.xx.xx.xx  </p>
<p align="left">Raison du mail:     
<select size="1" name="raison" class="formulaire" >
<option>Contactez l administrateur</option>
<option>Participation</option>
<option>Devenir partenaire</option>
<option>Autre raison</option>
</select></p>
<p align="left">Objet du message : 
<input onchange="this.value=this.value.trim()" type="text" class="formulaire" name="sujet" size="44" value="<?php echo$sujet?>" maxlength="65"/></p>
<input type="hidden" name="verif" value="" />
<p align="left">Message  de 300 caractères maximum.     
Il reste <input type="text" class="formulaire" name="nbcar" size=5/>  
caractères.<br />
   
<textarea  onchange="this.value=this.value.trim()"  rows="7" class="formulaire" name="message"  cols="52" onKeyPress="compter(this.form)"><?php echo$message?></textarea>
</p>
<label align="left">
Fichier joint*  <?php $taille_up=$taille_upluad/1000; echo $taille_up?>Ko  maximum: <a href="#" class="info"><img border="0" src="../formulaire/savoir.jpg" alt=" question" width="15" height="15"/><span>Tout fichier peut être joint (<?php $taille_up=$taille_upluad/1000; echo $taille_up?>Ko maximun). Si vous en avez plusieurs refaites l opération autant de fois que nécessaire. Soyez patient lors du chargement.</span></a><br />
   
<input  class="formulaire"  type="file" name="fupload" size="46"/>
</label>
<div align="center">
    <table border="0" width="81%" id="table4">
        <tr>
            <td align="center">
<?php 
dsp_crypt(0,1);
?>
Recopier le code:<br><input class="formulaire"  type="text" name="code">
<?php
if ($code=="non_ok") echo "<br /> <div  class=\"erreur\"> Erreur dans le code </div>";
?>

                        </td>
        </tr>
    </table>
</div>
<p align="center">
<input class="formulaire" type="submit" value="Envoyer" name="B1"/>

</p>
</form>
</td>
    </tr>
</table>
* Facultatif </div></td>
    </tr>
</table>
</div>

<?php
;}
?>

Merci pour votre aide

Hors ligne

#2 29/11/2010 20:02:26

jpg
Administrateurs
Inscription : 19/11/2008
Messages : 2 086
Site Web

Re : Perte de valeur lors de l'envoi d'un formulaire.

Bonsoir,

Le code est partiel .... et long ... difficile de voir ce qui cloche ...

à première vue, la seule chose qui me saute au yeux, c'est le action=""
de la ligne <form  enctype="multipart/form-data"   name="Form"   action=""  method="post" onSubmit="return validation(this)" >
D'habitude on met quelque chose wink

a+
Jean-Paul

Hors ligne

#3 29/11/2010 22:15:22

Michel
Membre
Inscription : 08/10/2010
Messages : 9

Re : Perte de valeur lors de l'envoi d'un formulaire.

Merci pour ta réponse,

Le  action ""  remplace  action="<?php $PHP_SELF; ?>" cela fonctionne puisque elle  boucle sur elle même, mais les valeurs sont vides !! le script fonctionne, je l'utilise sur le site, cela est visible à l'adresse ci-dessus.

J'ai fait des essais, si j'envoie le formulaire hors de zite les valeurs sont sauves, si je fait un self les valeurs sont perdues.
Je pense (j'en suis pas sur) que le fait que les valeurs passent pas la classe zite elles sont écrasées.

Hors ligne

#4 29/11/2010 22:35:30

michael79
Membre
Lieu : Bruxelles, Belgique
Inscription : 23/07/2008
Messages : 422

Re : Perte de valeur lors de l'envoi d'un formulaire.

il vaut mieux récupérer les variables dans $_POST et même faire des strip_tags, stripslashes etc

exemple:

$nom=trim(strip_tags(stripslashes(@$_POST['nom'])));

ZiteCMS rocks !

Hors ligne

#5 29/11/2010 23:37:08

Michel
Membre
Inscription : 08/10/2010
Messages : 9

Re : Perte de valeur lors de l'envoi d'un formulaire.

merci Michael, ce traitement se fait dans  :    include "../formulaire/envoie_formulaire_upluad.php" ;

J'ai trouvé une partie!  la récupération de la variable via @$_post se fait dans la page incluse ci-dessous si l'on fait cette récupération avant l'inclusion ça marche. je sais pas pourquoi mais ça marche.

    $nom = $_POST['nom'];
    $expediteur = $_POST['expediteur'];
    $tel = $_POST['tel'];
    $raison = $_POST['raison'];
    $sujet = $_POST['sujet'];
    $message = $_POST['message'];

include "../formulaire/envoie_formulaire_upluad.php" ;

Par contre pour l'upluad  le fichier téléchargé est vide.

Je crois qu'il faut aussi le traiter avant  avec des outils de type  @$_FILES.

Je vais essayer.

Si vous avez des idées je suis preneur.

Dernière modification par Michel (29/11/2010 23:37:47)

Hors ligne

#6 30/11/2010 01:49:52

michael79
Membre
Lieu : Bruxelles, Belgique
Inscription : 23/07/2008
Messages : 422

Re : Perte de valeur lors de l'envoi d'un formulaire.

Michel a écrit :

merci Michael, ce traitement se fait dans  :    include "../formulaire/envoie_formulaire_upluad.php" ;

J'ai trouvé une partie!  la récupération de la variable via @$_post se fait dans la page incluse ci-dessous si l'on fait cette récupération avant l'inclusion ça marche. je sais pas pourquoi mais ça marche.

    $nom = $_POST['nom'];
    $expediteur = $_POST['expediteur'];
    $tel = $_POST['tel'];
    $raison = $_POST['raison'];
    $sujet = $_POST['sujet'];
    $message = $_POST['message'];

include "../formulaire/envoie_formulaire_upluad.php" ;

Par contre pour l'upluad  le fichier téléchargé est vide.

Je crois qu'il faut aussi le traiter avant  avec des outils de type  @$_FILES.

Je vais essayer.

Si vous avez des idées je suis preneur.

C'est bien ça $_FILES
avec move_uploaded_file et le nom temporaire du fichier

A+

Michael


ZiteCMS rocks !

Hors ligne

#7 30/11/2010 20:30:51

Michel
Membre
Inscription : 08/10/2010
Messages : 9

Re : Perte de valeur lors de l'envoi d'un formulaire.

D'accord avec toi Michaël, mais je suis obligé de changer trop de chose sur le traitement du formulaire et comme ce formulaire est reprit dans les autres pages du site (Zite n'est que la partie présentation) cela m'oblige à avoir deux formulaire ect …
Je détourne le problème, je met le formulaire hors la classe Zite.

Merci de votre aide.

Bravo pour votre script.

Je reviendrai, j'ai d'autres petites questions.

A+

Michel

Hors ligne

#8 01/12/2010 00:49:35

michael79
Membre
Lieu : Bruxelles, Belgique
Inscription : 23/07/2008
Messages : 422

Re : Perte de valeur lors de l'envoi d'un formulaire.

Michel a écrit :

D'accord avec toi Michaël, mais je suis obligé de changer trop de chose sur le traitement du formulaire et comme ce formulaire est reprit dans les autres pages du site (Zite n'est que la partie présentation) cela m'oblige à avoir deux formulaire ect …
Je détourne le problème, je met le formulaire hors la classe Zite.

Merci de votre aide.

Bravo pour votre script.

Je reviendrai, j'ai d'autres petites questions.

A+

Michel

Tu peux toujours faire une petit boucle pour définir toutes les variables $_POST

$postvars =  @$_POST;
if( !is_array( $postvars ) ) $postvars = array();
foreach( $postvars as $name => $val ) eval( '$' . $name . ' = "' . addslashes( $val ) . '";' );

ou un truc du genre...
mais ce type de codage n'est vraiment pas sûr.

A+

Michael


ZiteCMS rocks !

Hors ligne

#9 01/12/2010 20:10:51

Michel
Membre
Inscription : 08/10/2010
Messages : 9

Re : Perte de valeur lors de l'envoi d'un formulaire.

Bonsoir Michaël,

Merci de t'intéresser à nom problème mais comme je l'ai dit j'ai mis le formulaire en externe comme cela je peux l'appeler de l'ensemble du site et je n'aurai qu'un script de formulaire.
En effet le site et un patchwork de script libre, perso, bricolé.

Je reviendrai car j'ai des questions.

Merci

Michel

Hors ligne

Pied de page des forums