Page 1 sur 1

Multiple envoie vide avec formulaire en php

Posté : 28 févr. 2013, 20:50
par Aiglichon
Bonjour à tous, j'ai un gros problème qui perciste sur mes formulaires. Tout fonctionnait mais du jour au lendemain j'ai eu ce problème sur tous mes formulaires malgré différents hébergeur. En fait le problème est que quand j'envoi une donnée, elle s'envoie bien mais accompagné de plusieurs autres données vide. Quand je quitte la page de validation du formulaire ça r'envoie encore une fois des données vide.

J'espere que vous pourrez me débugger car je ne trouve pas du tout le problème...

Voici mon formulaire:
<form class="well" name="form_new" method="post" action="valid_new_com.php">
 
                        <p>
                            <b>Votre nom : </b> <input name="name" type="text" size="112">
                        <p/>
 
                        <p>
                            <b>Commentaire :</b> <textarea id="message2" name="comment" cols="80" rows="10" style="vertical-align:top;"></textarea>
                        </p>
                        <p id="compteur2" style="margin-left:540px;">500 Caracteres restant</p>
 
                            <input data-provide="typeahead" type="submit" name="Submit" value="Envoyer">
                        </p>
</form>

Ainsi que ma page de validation en PHP:
<?php
        $cx =  mysql_connect("******","******","******");
        if($cx == 0){
            ?>
            <font>ERREUR</font>
            </body></html>
            <?
            exit;
        }
        $test = mysql_select_db("******");
        mysql_query("SET lc_time_names = 'fr_FR'");
 
    $comment=mysql_real_escape_string($_POST['comment']);
    $name=mysql_real_escape_string($_POST['name']);
    $req = "INSERT INTO cpep_comment(date_comment,nom_comment,mes_comment) VALUES (CURDATE(),'$name','$comment')";
 
    $result =  mysql_query($req);
    echo "Merci de votre participation, le commentaire sera trait&eacute; au plus vite !";
 
?>
    <p><a href="commentaire.php">Retour</a></p>
Merci par avance de votre aide.

Re: Multiple envoie vide avec formulaire en php

Posté : 28 févr. 2013, 21:01
par moogli
salut,

qu'entend tu pars des données vides ?

comment quitte tu la page de validation ?

Si c'est pas le lien du code ce n'est pas possible, d'ailleurs, avec ton code le seul moyen c'est de rafraichir la page de validation (ou d'utiliser le bouton retour du navigateur).

Pour éviter cela tu peux utiliser un jeton de validité que tu passe dans le formulaire et garde en session (à l'affichage) lors de la validation tu supprimer le jeton de la session; La session doit bien entendu vérifier la présence de ce jeton;
tu peux aussi y ajouter un temps pour limiter la durée de validité du jeton.

n'as tu pas un code javascript qui te forcerais la main ?

@+

Re: Multiple envoie vide avec formulaire en php

Posté : 01 mars 2013, 12:38
par Aiglichon
par donnée vide je parle d'une donnée qui se crée dans ma base de donnée avec comme rien dans mes colonne.

Je quitte la page de validation par un simple lien:
<p><a href="commentaire.php">Retour</a></p>
Oui pour moi aussi c'est impossible mais la preuve... :shock:

On m'a dit que cela pouvait être un problème dans le html ou le css dû a des url mal définies comme:
background-image:url()
ou
<link href=""
par exemple.

J'ai essayé de supprimer l'appel vers mon css ça résou le problème. Hier je remet le css et problème résolu j'étais content, sauf que ce matin je réessaie et le problème est de nouveau présent. :evil:
Est ce qu'il y aurait un moyen de cibler d'où est le problème ? Plutôt que de trafiquer un peu chaque jour le code pour trouver ou est le problème ?

Pour les jetons dont vous parlez, comment puis-je procéder ?

Merci

Re: Multiple envoie vide avec formulaire en php

Posté : 02 mars 2013, 18:49
par moogli
salut,


le système de jeton c'est assez simple :

A l'affichage du formulaire :
- Tu créer une chaîne allétoire que tu stock dans un champ de formulaire caché (type="hidden").
- Tu stock cette valeur dans une variable de session ainsi que la date de validité (par exemple : maintenant + 5 minutes).

A la validation du formulaire :
- Tu vérifie la présence du champ caché dans le formulaire (empty)
- Tu vérifie que a valeur soit a même que celle que tu as stocké en session
- Tu vérifie que la date stockée en session est inférieure ou égale à la date actuelle.

Ce système va te permettre d'éviter les appelles de formulaire un peu foireux.

Pour ce qui est du problème d'origine, comment fait tu appel au fichier CSS ? (peux tu poster ton code complet ?).

ce que tu nous indique comme code ne peux pas faire plusieurs insertion, après il faut voir l'utilisation que tu en fait :)


@+