Bonjour dans mon job on me donne souvent des cartes de visite d'hommes d'affaire alors j'ai voulu faire un formulaire avec php pour stocker les infos dans une base de donnée. Le but c'est ensuite de faire un systême de recherche efficace. il suffira juste de mettre une partie d'un mot qui figure dans la carte ou le mot entier pour qu'il me fasse sortir les occurences. J'ai realisé le formulaire et le traitement mais les donnée ne sont pas enregistrées dans la base. Pouvez vous m'aider
voici le code html:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Enregistrement</title>

</head>

<body>

    <table width="700" border="0" height="auto">
    <form method="post" action="traitement.php">
        <tr>
            <td>Nom</td><td>Prénom</td><td>Société</td><td>Fontion</td><td>Email</td><td>Fixe</td><td>Portable</td><td>Adresse</td>

        </tr>
        <tr>
            <td><input type="text" name="nom" required /></td><td><input type="text" name="prenom" required /></td><td><input type="text" name="societe" required /></td><td><input type="text" name="fonction" required /></td><td><input type="email" name="email" required /></td><td><input type="tel" name="fixe" required /></td><td><input type="tel" name="portable" required /></td><td><input type="text" name="adresse" required /></td>
        </tr>

        <tr>
            <td colspan="8"><input type="submit" value="Enregistrer" name="submit"/></td>
        </tr>
        </form>
    </table>
    </body>    

</html>

TRAITEMENT.PHP
<?php

try
{
$bdd = new PDO('mysql:host=localhost;dbname=cartes', 'root', '');
}
catch(Exception $e)
{
echo 'Echec de la connexion à la base de données';
exit();
}

if(isset($_POST['submit'])){

$nom= htmlspecialchars(trim($_POST['nom']));
$prenom= htmlspecialchars(trim($_POST['prenom']));
$societe= htmlspecialchars(trim($_POST['societe']));
$fonction= htmlspecialchars(trim($_POST['fonction']));
$email= htmlspecialchars(trim($_POST['email']));
$fixe= htmlspecialchars(trim($_POST['fixe']));
$portable= htmlspecialchars(trim($_POST['portable']));
$adresse= htmlspecialchars(trim($_POST['adresse']));    

$req = $bdd->prepare('INSERT INTO infos (nom, prenom, societe, email, fixe, portable, adresse) VALUES (:nom, :prenom, :societe, :fonction, :email, :fixe, :portable, :adresse)');
$req->execute(array(
'nom' =>$nom,
'prenom' =>$prenom,
'societe' =>$societe,
'fonction' =>$fonction,
'email' =>$email,
'fixe' =>$fixe,
'portable' =>$portable,
'adresse' =>$adresse,
));

echo htmlspecialchars(trim($_POST['portable'])) ;   
}

?>

1 réponse


Bonjour,

1/ Il manque les balises < html>, < body> sur le formulaire
2/ Il est recommandé de mettre le tableau dans la balise <form et non l'inverse
3/ Dans le array de l'execute du fichier traitement, il y a une virgule de trop à la fin.
4/ Avez-vous un var_dump($_POST); après votre conditon pour vérifier que vous avez bien transmit des données ?