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

PHP & Base de données Discussion :

Expédier le résultat d'un formulaire en base [Fait] [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 16
    Par défaut Expédier le résultat d'un formulaire en base
    Bonjour,
    je cherche à réaliser un formulaire dont les valeurs des champs viendront remplir une bdd mysql.
    champs :
    1- Nom
    2- Code postal
    3- E-mail
    4- Titre du message
    5- contenu du message
    6 - case à cocher oui/non pour recevoir la newsletter

    Après de nombreux essais, je n'arrive pa à avoir quelque chose de correct (simple et sécurisé !)
    Quelqu'un aurait-il la gentillesse de me "dépatouiller" le "schmilblik" ?

    Débutant en php/mysql, je n'en suis pas moins motivé et demandeur d'infos sur des cas pratiques.
    Merci à toutes et tous pour vos réponses.

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2004
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 496
    Par défaut
    Salut,

    y le tutoriel de dvlppez ici.

    Si tu as un problème; explique ce que tu as fait, ce qui ne marche pas, montre-nous la partie de code qui pose problème ...

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 16
    Par défaut Re
    Bonjour,
    tu penses bien, encore une fois, qu'avant de poster, je suis aller voir où tu me dis. Mais, étant néophite en php et en mysql, je me retrouve complètement perdu, c'est du codc dont j'ai besoin. propre dès le début ! et c'est bien cela qui me pose probleme.
    Help please
    Au secours (en français !)

  4. #4
    Membre Expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Par défaut
    C'est pas parce que tu as lu les tutos qu'il faut croire que le code va tomber du ciel comme par enchantement...

    Montre nous ce que tu as fais et dis nous ce qui ne fonctionne pas et on verra...

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 16
    Par défaut Re
    Ok, désolé.
    Bon, j'ai deux fichiers : un fichier contact.php et un fichier add.php

    voici le contenu du fichier contact.php (partie formulaire) :


    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
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    <form name="FormName" action="add.php" method="post">
        <table border="0" cellpadding="0" cellspacing="0" width="443">
            <tr>
                <td width="125" valign="middle" bgcolor="#99cccc">
                    <h4>Nom</h4>
                </td>
                <td width="288" valign="middle" bgcolor="#99cccc"><input type="text" name="nom" value="<? echo $nom;?>" size="40" tabindex="1"></td>
            </tr>
            <tr>
                <td width="125" bgcolor="#dddddd">
                    <h4>Code postal</h4>
                </td>
                <td width="288" bgcolor="#dddddd" valign="middle"><input type="text" name="code_postal" value="<? echo $code_postal;?>" size="40" maxlength="5" tabindex="4"></td>
            </tr>
            <tr>
                <td width="125" bgcolor="#99cccc">
                    <h4>Email</h4>
                </td>
                <td width="288" bgcolor="#99cccc" valign="middle"><font color="#333399"><input type="text" name="mail" value="<? echo $mail;?>" size="40" tabindex="6"></font></td>
            </tr>
            <tr>
                <td width="125" bgcolor="#dddddd">
                    <h4>Titre du message</h4>
                </td>
                <td width="288" bgcolor="#dddddd" valign="middle"><input type="text" name="titre" value="<? echo $titre;?>" size="40" tabindex="7"></td>
            </tr>
            <tr height="50">
                <td bgcolor="#99cccc" width="125" height="50">
                    <h4>Votre message</h4>
                </td>
                <td width="288" bgcolor="#99cccc" valign="middle" height="50"><textarea name="message" rows="8" cols="40" tabindex="8" value="<? echo $message;?>">Ici, votre message ...</textarea></td>
            </tr>
            <tr>
                <td width="125" bgcolor="#dddddd">
                    <h4>Recevoir la lettre hebdo</h4>
                </td>
                <td width="288" bgcolor="#dddddd" valign="middle">
                    <h4>
    <?php
    if (isset($_POST['recevez'])) {
        echo "Vous avez choisi :";
        for ($i = 0, $c = count($_POST['recevez']); $i < $c; $i++) {
            echo "<br/><b>" . $_POST['recevez'][$i] . "</b>";
        }
    }
     
    // Renvoie vrai si $option fait partie du résultat
    function est_selectionne($option) {
        if (!isset($_POST['recevez'])) {
            return FALSE;
        }
        for ($i = 0, $c = count($_POST['recevez']); $i < $c; $i++) {
            if ($_POST['recevez'][$i] == $option) {
                return TRUE;
            }
        }
        return FALSE;
    }
    ?>
                        <input type="checkbox" name="recevez[0]" value="oui" <?php if(est_selectionne("oui")) { echo 'checked'; } ?>/>Oui <input type="checkbox" name="recevez[1]" value="non" <?php if(est_selectionne("non")) { echo 'checked'; } ?>/>Non<br/>
                    </h4>
                </td>
            </tr>
            <tr valign="middle" height="50">
                <td width="125" bgcolor="#99cccc" height="50"><font color="#dddddd"><br></font></td>
                <td valign="middle" width="288" bgcolor="#99cccc" height="50">
                    <div align="right">
                        <p><font color="#dddddd"><input type="submit" name="submitButtonName" value="Envoyer" tabindex="11"></font><font color="#dddddd">.</font></p>
                    </div>
                </td>
            </tr>
        </table>
    </form>



    et maintenant le contenu du fichier add.php (pour remplir une table mysql) :


    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
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    <html xmlns="http://www.w3.org/1999/xhtml">
     
    	<head>
    		<meta http-equiv="content-type" content="text/html;charset=iso-8859-1" />
    		<title>add</title>
    	</head>
     
     
     
    	<?php
     
     
    // On commence par récupérer les champs
    if(isset($_POST['nom']))      $nom=$_POST['nom'];
    else      $nom="";
     
    if(isset($_POST['code_postal']))      $code_postal=$_POST['code_postal'];
    else      $code_postal="";
     
    if(isset($_POST['mail']))      $mail=$_POST['mail'];
    else      $mail="";
     
    if(isset($_POST['titre']))      $titre=$_POST['titre'];
    else      $titre="";
     
    if(isset($_POST['message']))      $message=$_POST['message'];
    else      $message="";
     
     
    if(isset($_POST['recevez']))      $message=$_POST['recevez'];
    else      $recevez="";
     
     
     
     
    // On verifie si les champs sont vides
    if(empty($nom) OR empty($code_postal) OR empty($mail) OR empty($titre) OR empty($message)) {
    echo '<font color="red"><bg color=blue"><center><h3><b>Attention, aucun champ ne peut rester vide !
    	  <br>Corrigez svp !</b></h3></center></bg></font>';
    echo "<meta http-equiv='refresh' content='1; url=contact.php?nom=$nom&code_postal=$code_postal&mail=$mail&titre=$titre&message=$message&recevez=$recevez'>";
    }
     
     
    //Aucun champ n'est vide, on peut enregistrer dans la table
    else    
        {
           // connexion à la base
    $db = mysql_connect('localhost', 'tarik.net', '03103005')  or die('Erreur de connexion '.mysql_error());
    // s?lection de la base  
     
        mysql_select_db('tarik_net',$db)  or die('Erreur de selection '.mysql_error());
     
        // on ecrit la requete sql
        $sql = "INSERT INTO infos_tbl(id, nom, code_postal, mail, titre, message, recevez) VALUES('','$nom','$code_postal','$mail','$titre','$message','$recevez')";
     
        // on insere les informations du formulaire dans la table
        mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
     
        // on affiche le resultat pour le visiteur
        echo '<center><b><font color="red">Votre mail a été correctement envoyé au webmaster.</font></b></center><br>';
     
        echo '<center>Il sera traité dans les plus brefs délais.</center>';
        echo "<meta http-equiv='refresh' content='3; url=../index.html'>";
     
     
     
        mysql_close();  // on ferme la connexion
        }
     
     
    ?>
     
     
     
    	<body bgcolor="#ffffff">
    	</body>
     
    </html>

    Soyez indulgents avec moi, c'est ma première expérience de codage et, donc, ca doit être bourré de fautes
    Merci

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 16
    Par défaut Re
    le probleme se situe dans ma table dans ma colonne "message" et "recevez" où, quel que soit ce que je rempli dans le formulaire, j'ai comme réponse 'array'.
    Alors que :
    "message" devrait contenir le contenu du message posté et
    "recevez" devrait me répondre oui ou non pour l'abonnement newsletter (peut-etre faut-il mettre deux boutons radio au lieu des checkbox ?

    Voila, vous savez tout !
    Merci

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 03/04/2009, 20h51
  2. [OOBasic] => Formulaires OO Base
    Par Junta dans le forum Autres SGBD
    Réponses: 3
    Dernier message: 08/02/2006, 09h36
  3. graphique résultat requete dans formulaire
    Par jordinette dans le forum Access
    Réponses: 2
    Dernier message: 24/11/2005, 13h52
  4. Réponses: 1
    Dernier message: 23/11/2005, 11h20
  5. Formulaire pour base XML
    Par Nyx dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 12/02/2003, 20h51

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