Lien formulaire et base de donnée

Bonjour à tous,

Voilà, je dois réaliser un projet mais je ne parvient pas à lier les données de mon formulaire avec ma base de donnée PHPmyadmin. :s Je souhaite récupérer les donnée saisies dans mon formulaire mais je n’y parvient pas. J’obtient l’erreur suivante:

Voici donc le code que j’ai réaliser:

Ce site est fictif et il est réaliser sur PHPmyadmin en local.
Par avance merci de m’apporter votre aide.

Bonjour,

Il y a quelques petites erreurs

  1. les noms de variables ne doivent pas contenir de caracteres spéciaux
    c’est à dire pas de tiret, ni d’espace, et on évite aussi les accents.
    ce qui donne :

$nom=$_POST[‘nom’];
$prenom=$_POST[‘prenom’];
$email=$_POST[‘email’];
$typedefilm=$_POST[‘typedefilm’];

  1. le nom d’une variable doit etre le même lors de la déclaration et lors de son utilisation ($prénom est devenu $prenom).

Ca doit fonctionner avec ces modification,

Bonne continuation …

je te remercie pour ton aide ludo26000 mais cela ne fonctionne toujours pas :s
voilà mon code complet:

Voilà, merci de m’aider :slight_smile:

fais un echo de ta ligne
$reqinsert=“insert into utilisateurs values (’$nom’,’$prenom’,’$email’,’$typedefilm’);”;
avant de l’envoyer, pour savoir si les données transmises sont compatibles avec ta table

gcc, rien ne se passe avec echo :s

comment ca, rien ne se passe ?
la variable $reqinsert est vide ?
dans ce cas pas étonnant que la suite ne fonctionne pas

Edit :
je me suis mal exprimé : c’est un echo de $reqinsert qu’il faut faire pour avoir le contenu de la ligne

Voila le fichier corriger fichier1


<html?gt;
<head>
<title>
  Inscription cinémathèque du Levant
</title>
<link rel="stylesheet" type="text/css" href="feuilledestyle.css"/>
</head>

<body>
<h1>
<marquee scrollamount="10" direction="right"><font size=5>Cinémathèque du Levant</font></marquee>
</h1>
<hr size=3 noshade>
  <center><h2><u>Inscription</u></h2><br/><br/>
<form action="traitement.php" method="post">
    <table width="100%">
	<tr><td>
	<p align = "right">nom: </p></td><td> <input type ="text" name="nom" maxlength ="15"></td> </tr> <tr> <td>
    <p align = "right">prénom: </p> </td> <td> <input type ="text" name ="prenom" maxlength="10"></td> </tr> <tr> <td>
    <p align = "right">e-mail: </p></td> <td><input type ="text" name ="email" maxlength ="35"><td> </tr> <tr> <td>
    <p align = "right">mot de passe: </p></td> <td><input type ="password" name ="motdepasse" maxlength="10"></td> </tr> <tr> <td>
    <p align = "right">type de film préféré: </p></td> <td> 
	<input type = "radio" name="typefilm" value = "action">action</br>
    <input type = "radio" name= "typefilm" value = "anticipation">anticipation</br>
    <input type = "radio" name= "typefilm" value = "fantastique">fantastique</br>
    <input type = "radio" name= "typefilm" value = "policier">policier</br>
    <input type = "radio" name= "typefilm" value = "suspense">suspense</br>
    <input type = "radio" name= "typefilm" value = "autre">autre</br>
	</td></tr>
	</table>   
    </br>     
    <input type = "reset" name = "annul" value = "annuler">
    <input type= "submit" name= "envoyer"/>   
    </br>
</form>        
       
<a href ="Accueil.html?quot;> retour à l'accueil </a>  
    
    
</center>
</body>
</html?gt;

Le Fichier Dde traitemnt des données et insertion dans la BDD


<?php
//appel du fichier de connexion à la base de données
mysql_connect("localhost", "cinema", "root");
        mysql_select_db("utilisateurs");
  
//récupérations des valeurs saisies dans le formulaire
$nom=$_POST['nom'];
$prenom=$_POST['prenom'];
$email=$_POST['email'];
$type=$_POST['typefilm'];

//affichage du contenu des variables
echo "Les données ont bien été transmisses.";

//insertion dans la base de données
$reqinsert="insert into utilisateurs values ('$nom','$prenom','$email','$type');";
mysql_query($reqinsert) or die("La requête ne fonctionne pas. La table n'a pas été mise à jour. <br />".mysql_error());
// fermeture de la connexion
mysql_close();
?>

merci beaucoup ludo 26000 d’avoir chercher et poster une correction :slight_smile:
cependant, le transfert ne s’effectue pas vers la base de donnée. J’ai copié exactement le même code que celui donné. Quand je clique sur envoyer, j’ai une page erreur comme quoi la page est introuvable :s
as tu une idée?

ps: merci à toi aussi gcc de tenter de m’aider

OUi je n’ai pas précisé, j’ai découpé le code en 2 fichier
la 1ere partie (càd : le formulaire) est a mettre dans un fichier accueil.html par exemple

la 2eme partie elle est à mettre dans un fichier traitement.php

si le 2 eme fichier n’existe pas il va renvoyer une erreur

c’est bien ce que j’ai fait, le code html est enregistrer dans un fichier appelé formulaire.html et le code php dans traitement.php
je ne comprend donc pas ce qui pourrait cloché, peut être dans la base de donnée?

As-tu vérifié tes données avant de les envoyer au SQL ?
Essaie le code ci dessous, et en fonction de ce tu obtiendras, tu pourras décommenter les deux dernieres lignes.
Si ton message d’erreur persiste, tu commentes les lignes une par une en partant de la fin (et tu retestes à chaque fois)

<?php
//appel du fichier de connexion à la base de données
mysql_connect("localhost", "cinema", "root");
mysql_select_db("utilisateurs");

//récupérations des valeurs saisies dans le formulaire
$nom=$_POST[‘nom’];
$prenom=$_POST[‘prenom’];
$email=$_POST[‘email’];
$type=$_POST[‘typefilm’];

//affichage du contenu des variables
echo "$nom vaut ".$nom."<br />\n";
echo "$prenom vaut ".$prenom."<br />\n";
echo "$email vaut ".$email."<br />\n";
echo "$type vaut ".$type."<br />\n";
echo "Les données ont bien été transmisses.";

//insertion dans la base de données
$reqinsert=“insert into utilisateurs values (’$nom’,’$prenom’,’$email’,’$type’);”;
echo “$reqinsert vaut “.$reqinsert.”<br />\n”;

// mysql_query($reqinsert) or die(“La requête ne fonctionne pas. La table n’a pas été mise à jour. <br />”.mysql_error());
// fermeture de la connexion
// mysql_close();
?>

okk je vais voir çà merci gcc

Pour la fonction mysql_connect, tu a bien mis tout les éléments dans le bon sens
il y a peut etre une erreur que je n’ai pas vu

ou alors cela peut venir de la BdD, il y a peut etre un probleme de conception

Si tu regarde avec phpmyadmin est ce qu’il y a des données dans la table utilisateurs ??

Je n’ai rien de modifier dans PhpMyadmin, c’est donc le serveur localhost, l’utilisateur root@localhost et le mot de passe root non?

Dans PhpMyadmin, il n’y a aucune données dans la table utilisateurs. Je ne vois pas ou il peut y avoir un problème de conception dans la base. Une idée?

Merci en tout cas de l’aide ludo26000

Ps: merci de ton aide gcc mais cela n’affiche rien du tout

Donc dans un premier temps tu laisse tomber la base de données qui n’est probablement pas en cause, et tu te concentres sur ton php.

je ne vois pas où cela peut clocher dans le php :s

Quelle version de easyPHP utilise tu ?
suivant les version on ne récupère pas les variables de la même facon

et pour ton mysql_connect apparement tout est OK
cela donne mysql_connect(‘localhost’,‘root’,’’)

Je n’avais pas fait attention aux deux premières lignes :
mets-les en commentaire

<?php
//appel du fichier de connexion à la base de données
//mysql_connect("localhost", "cinema", "root");
//mysql_select_db("utilisateurs");

toujours pareil, je débouche sur une page erreur :s

Donc j’utilise PHPMyAdmin fournit avec WAMP server 5.0.37

Que dit exactement le message d’erreur ?
et si c’est cette page n’existe pas, qu’y a-t-il dans la barre d’adresse ?