Formulaire d'inscription (php5(poo)+sql)

Signaler
-
Messages postés
29570
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 septembre 2020
-
Bon soir,j'essaye à développer un formulaire mais j'ai un problème avec la connexion à la base de données c'est les champs qui sont remplis au formulaire ne se trouve pas après dans ma base
Aidez moi svp
A voir également:

8 réponses

Messages postés
29570
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 septembre 2020
337
Bonjour

sans voir ton code.... impossible de t'aider !
d'accord tte suite merci :))))
La page du formulaire: inscriptionchercheur.php
<!DOCTYPE>
<html>
<head>
 <title>
  Espace formateur
 </title>
</head>
<body>
<form  action="test.php" method="POST">
<table align="center">
  <tr><td>Numero de la carte d'identite nationale:</td><td><input type="text" name="cin" placeholder="12345678" ></td></tr>
  <tr><td>Nom:</td><td><input type="text" name="nom" placeholder="Ben Foulen" ></td></tr>
  <tr><td>Prenom:</td><td><input type="text" name="prenom" placeholder="Foulen" ></td></tr>
  <tr><td>Sexe:</td>
  <td> <select name="sexe">
     <option value="f">Femme</option>
     <option value="h">Homme</option>
    </select></td>
  </tr>
  <tr><td>Adresse mail:</td><td><input type="text" name="adressemail"></td></tr>
  <tr><td>Ville:</td><td><input type="text" name="ville"></td></tr>
  <tr><td>Adresse Postale:</td><td><input type="text" name="adresse"></td></tr>
  <tr><td>Code Postal:</td><td><input type="number" name="cp"></td></tr>
  
  
 
  
  <tr ><td ><input type="submit" name="submit" value="envoyer"   > </td>
  <td  ><input type="reset" name="effacer" value="Effacer"   > </td></tr>


</table> 


</form>
page personne.php
<?php


class personne
{

private $cin;
private $nom;
private $prenom;
private $adresse;
private $adressemail;
private $sexe;
private $ville;
private $cp;
function costruct($ncin,$nnom,$nprenon,$nadresse,$nadressemail,$nsexe,$nville,$ncp)
{

$this->cin=$ncin;
$this->nom=$nnom;
$this->prenom=$nprenom;
$this->adresse=$nadresse;
$this->adressemail=$nadressemail;
$this->sexe=$nsexe;
$this->ville=$nville;
$this->cp=$ncp;
}
function seconnecter(){
$connect= mysql_connect("localhost/phpmyadmin","root","") ;
$select=mysql_select_db("pfe");
}


function addpersonne(){

if(empty($this->cin)||empty($this->nom)||empty($this->prenom)||empty($this->adresse)||empty($this->adressemail)||empty($this->sexe))
echo "certains champs sont vide !!! voulez les remplir !!! <a href='inscription.html'>retour</a>";

$query="INSERT INTO`personne`(`cin`, `nom`, `prenom`, `adressemail`, `adresse`, `ville`, `cp`, `sexe`) VALUES ('".$this->nom."','".$this->prenom."','".$this->adresse."','".$this->adressemail."','".$this->sexe."','".$this->ville."','".$this->cp."')";

$result=mysql_query($query);

if ($result){

echo "inscription avec succes</h3>";}

else
echo "<h3>Echec</h3>";

}




}

?>
page ; test.php
<?php
include ("personne.php");

$p=new personne($_POST["cin"],$_POST["nom"],$_POST["prenom"],$_POST["adresse"],$_POST["adressemail"],$_POST["sexe"],
$_POST["ville"],$_POST["cp"]);

$p->seconnecter();
$p->addpersonne();

?>
Messages postés
29570
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 septembre 2020
337
Déjà... au niveau de ta class... tu as une erreur sur le nom de la function costruct ....
c'est construct et il manque les deux enderscores
function __construct() {


Ensuite, au niveau de ton code de ta page test.php ... penses à récupérer proprement les variables AVANT de les utiliser.
Pour se faire, utilises l'écriture TERNAIRE et la fonction ISSET
par exemple :
$cin = isset($_POST["cin"]) ? $_POST["cin"] : NULL;
$nom = isset($_POST["nom"]) ? $_POST["nom"] : NULL;
//etc...

Puis dans ta création de class:
$p=new personne($cin,$nom, ...


Puis dans ta class, au niveau de ta requête, j'ai l'impression que tu as oublié quelques espaces...
$query="INSERT INTO`personne`(`cin`, `nom`, `prenom`, `adressemail`, `adresse`, `ville`, `cp`, `sexe`) VALUES ('".$this->nom."','".$this->prenom."','".$this->adresse."','".$this->adressemail."','".$this->sexe."','".$this->ville."','".$this->cp."')"; 

Fais donc un ECHO de ta variable $query pour voir ce que ça donne puis va tester cette requête DIRECTEMENT dans ta BDD (via phpmyadmin par exemple)


Pour finir, tu utilises l'ancienne extension mysql. elle est considérée comme obsolète.
Passes à la PDO (ou à mysqli )
Va lire ceci : http://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top


Messages postés
29570
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 septembre 2020
337
PS: à l'avenir, merci d'utiliser la coloration syntaxique lorsque tu postes du code sur le forum (les balises de code)
Explications disponibles ici : http://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
>
Messages postés
29570
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 septembre 2020

merci beaucoup jordane 45
mais encore des erreurs en+ base de donnée vide !
je vais t'envoyer des captures écran
Messages postés
6
Date d'inscription
mercredi 2 mars 2016
Statut
Membre
Dernière intervention
9 mars 2016

erreur
Messages postés
29570
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 septembre 2020
337
Messages postés
6
Date d'inscription
mercredi 2 mars 2016
Statut
Membre
Dernière intervention
9 mars 2016

la BD
Messages postés
29
Date d'inscription
jeudi 3 mars 2016
Statut
Membre
Dernière intervention
21 juin 2016

Je crois que tu devrais simplifier ton code et mettre des
include
dans ton code pour y voir plus clair et regarde le cour sur php sur openclassroom.com
Messages postés
6
Date d'inscription
mercredi 2 mars 2016
Statut
Membre
Dernière intervention
9 mars 2016

MERCI