IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

<form action="">


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Distribution

    Informations forums :
    Inscription : Mai 2011
    Messages : 48
    Points : 22
    Points
    22
    Par défaut <form action="">
    Bonsoir à tous.

    Voici mon petit problème.
    J'ai un formulaire qui une fois renseigné doit insérer les renseignement dans la BDD et rediriger le visiteur automatiquement sur une nouvelle page.
    Mais ça ne marche pas.
    Voici le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    <form method="post" name="formulaire" onSubmit="return verify(this.nom, this.prenom, this.adresse, this.codepostal, this.ville, this.email, this.email1)" action="mapage.php">
    	   <tr><td>Civilit&eacute;</td><td>M.<input type="radio" name="civilite" value="mr"> Mme<input type="radio" name="civilite" value="mme"> Mlle<input type="radio" name="civilite" value="mlle"></td><td colspan="1" rowspan="8" align="center"><div style="width:60%;height:300px;overflow:auto;">
    <br><br>
     
    <?php
    require("cgv_general.html");
    ?>
     
    <br><br>
    <br><br>
    </p>
    </div>
    </td></tr>
            <tr><td>Nom : </td><td><input name="nom" /> </td></tr>
    		<tr><td>Pr&eacute;nom: </td><td><input name="prenom" /> </td></tr>
    		<tr><td>Adresse: </td><td><input name="adresse" size="50"/> </td></tr>
    		<tr><td>Code postal: </td><td><input name="codepostal" size="6"/> </td></tr>
    		<tr><td>Ville: </td><td><input name="ville" size="30"/> </td></tr>
    		<tr><td>Email : </td><td><input name="email" size="30"/></td></tr>
    		<tr><td>Confirmation de l'email : </td><td><input name="email1" size="30"/></td></tr>
    		<tr><td colspan="2"><i>Tous les champs sont obligatoires. <br>Votre adresse email nous permettra de vous envoyer la confirmation et la facture de votre achat.</i><br><br></td></tr>
     
    <tr>
    <td></td>
    <td colspan="2">
    <p><br>
    <input name="agree" id="agree" type="checkbox" />
    <label for="agree">En cochant cette case, je confirme que mes coordonnées indiquées ci-dessus sont justes et que j'accepte les conditions générales de ventes.</label><br />
    </p>
    <center>
    <input type="submit" id="submitA" title="CGV" value="Valider" />
    </form>
     
    <script type="text/javascript">
    function toggleSubmit() {
    document.getElementById('submitA').disabled = !document.getElementById('agree').checked;
    }
    document.getElementById('agree').onclick = toggleSubmit;
    toggleSubmit(); 
    </script>	
     
    <?php
    include('../connexion.php');
    $db = mysql_connect($host, $login, $password) or die(showError('1', mysql_error()));
    mysql_select_db($base,$db) or die(showError('2', mysql_error()));
     
    if (isset($_POST['civilite']) AND isset($_POST['nom']) AND isset($_POST['prenom']) AND isset($_POST['adresse']) AND isset($_POST['codepostal']) AND isset($_POST['ville']) AND isset($_POST['email']))
    {
        $civilite = mysql_real_escape_string(htmlspecialchars($_POST['civilite'])); 
        $nom = mysql_real_escape_string(htmlspecialchars($_POST['nom'])); 
    	$prenom = mysql_real_escape_string(htmlspecialchars($_POST['prenom'])); 
        $adresse = mysql_real_escape_string(htmlspecialchars($_POST['adresse'])); 
        $codepostal = mysql_real_escape_string(htmlspecialchars($_POST['codepostal'])); 
        $ville = mysql_real_escape_string(htmlspecialchars($_POST['ville'])); 
        $email = mysql_real_escape_string(htmlspecialchars($_POST['email'])); 
        $REMOTE_ADDR = mysql_real_escape_string(getenv('REMOTE_ADDR'));
        mysql_query("INSERT INTO formulaire VALUES('', '" . $civilite . "','" . $nom . "', '" . $prenom . "', '" . $adresse . "', '" . $codepostal . "', '" . $ville . "', '" . $email . "', '".date("Y-m-d H:i:s")."', '".$REMOTE_ADDR ."')");
    }
    mysql_close(); 
    ?>
    Lorsque <form action="mapage.php"> alors, je suis dirigé vers la page en question mais les données ne sont pas enregistrées dans la BDD.
    Si je met <form action=""> alors les données s'enregistrent mais je réactualise seulement la page.

    Quelqu'un a une idée svp???

  2. #2
    Expert éminent sénior

    Avatar de FirePrawn
    Homme Profil pro
    Consultant technique
    Inscrit en
    Mars 2011
    Messages
    3 179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant technique

    Informations forums :
    Inscription : Mars 2011
    Messages : 3 179
    Points : 19 374
    Points
    19 374
    Par défaut
    Bonsoir,

    C'est normal, tu récupères les données en $_POST une fois le formulaire envoyé.
    Tu dois mettre tout ton code de traitement PHP dans la page qui est ciblée dans la propriété action de ton form ( mapage.php dans ton cas ).
    Avant toute chose : lire le mode d'emploi du forum et ses règles.
    Je ne réponds pas aux questions techniques en MP.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Distribution

    Informations forums :
    Inscription : Mai 2011
    Messages : 48
    Points : 22
    Points
    22
    Par défaut
    heuuuu
    j'avoue ne pas tout comprendre la...

    J'ai trouvé quelque chose par contre.
    lorsque je rajoute
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header("Location: mapage.phpp");
    apres l'insertion des données dans la base, la redirection et l'enregistrement se font parfaitement a la condition que je supprime
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    include("cgv_general.html");
    ?>
    Dans le cas contraire, la redirection se fait mais pas l'enregistrement dans la BDD

  4. #4
    Expert éminent sénior

    Avatar de FirePrawn
    Homme Profil pro
    Consultant technique
    Inscrit en
    Mars 2011
    Messages
    3 179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant technique

    Informations forums :
    Inscription : Mars 2011
    Messages : 3 179
    Points : 19 374
    Points
    19 374
    Par défaut
    C'est normal.
    Include ça inclue la page appelée dans la page dans laquelle tu es.
    Header ça change l'url, donc ça recharge une page.

    Garde ta solution avec le header si elle fonctionne, mais je t'invite néanmoins à lire des cours sur PHP, et surtout a bien réfléchir avant de coder, car on ne comprend pas bien ce que tu veux, et du coup ton code...
    Avant toute chose : lire le mode d'emploi du forum et ses règles.
    Je ne réponds pas aux questions techniques en MP.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Distribution

    Informations forums :
    Inscription : Mai 2011
    Messages : 48
    Points : 22
    Points
    22
    Par défaut
    Ce que je désire, c'est qu'une fois le formulaire rempli, lorsque l'on clique sur "valider", que les renseignements s'enregistrent dans la BDD et qu'il y ai une redirection vers une autre page...

    Ce que j'ai essayé avec le header() fonctionne une fois sur deux, et parfois il ca enregistre dans la BDD mais pas de redirection, des fois c'est l'inverse...
    Je suis allé voir sur plusieurs site, et mon code ressemble à ceux que j'ai pu voir... il est quand même basique... Alors pourquoi ça ne fonctionne pas. et pourquoi lorsqu’il y a include("mapage.php'); il apparait cette erreur Warning: Cannot modify header information - headers already sent by (output started at E:\A\www\site\cgv\ccgv_general.html:139) in E:\A\www\site\cgv\cgv1.php on line 94

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Distribution

    Informations forums :
    Inscription : Mai 2011
    Messages : 48
    Points : 22
    Points
    22
    Par défaut
    Bon ça fonctionne
    J'ai tout simplement mis mon code php dans un autre fichier comme ça, <form action="insertion.php""> et la je n'ai plus de pbm....
    Voila... bonne soirée

  7. #7
    Membre actif
    Homme Profil pro
    Première S
    Inscrit en
    Juillet 2010
    Messages
    266
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France

    Informations professionnelles :
    Activité : Première S

    Informations forums :
    Inscription : Juillet 2010
    Messages : 266
    Points : 281
    Points
    281
    Par défaut
    Salut, pour le header qui marche "une fois sur deux", c'est qu'il devait y avoir quelque chose avant. Tu l'a mis en tout premier, avant tout code html ou code PHP produisant de l'html ? même un echo " "; suffit à faire bugger.

    Après, cela dépend du serveur. Wamp par exemple acceptait les redirections même avec plein d'HTML avant, mais j'ai eu une mauvaise surprise quand j'ai du héberger mon site sur OVH qui lui ne laissait pas passer

    Sinon, pour le formulaire, je ne sait pas si tu as bien compris, mais les données sont envoyées (par POST ou GET) à la page que tu précise dans l'attribut action.
    Donc il faut tout simplement mettre le code de traitement dans la page cible ...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. PB sur form.action et form.submit !
    Par wormseric dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 28/11/2006, 14h55
  2. Form action Frame
    Par phil22 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 08/08/2006, 13h14
  3. Javascript dans un formulaire type echo"<form action
    Par coyoteuch dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 12/06/2006, 12h20
  4. Form Action = affiche page actuelle
    Par sperron dans le forum ASP
    Réponses: 6
    Dernier message: 29/05/2006, 13h36
  5. <form action="" method="post" >
    Par sagitarium dans le forum Langage
    Réponses: 4
    Dernier message: 19/05/2006, 23h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo