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 :

insertion dans ma base de donnée


Sujet :

PHP & Base de données

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 7
    Points : 4
    Points
    4
    Par défaut insertion dans ma base de donnée
    Bonjour,

    J'ai quelques soucis concernant ma base de donnée. Lorsque je fini de remplir mon formulaire et que je souhaite l'envoyer, la page qui suit m'affiche une flopées d'erreurs comme celle-ci "Notice: Undefined index: motDePass in C:\wamp\www\Test.php on line 13"

    Voici les codes qui serait susceptible de vous aidez à m'aidez


    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
     
    <?php
    class DbConnexion{
    	private $host='localhost';
    	private $login='root';
    	private $pass='';
    	private $db='artech';
    	private $connexion;
     
    	function getHost(){
    		return $this->host;
    	}
     
    	function setHost($newHost){
    		$this->host=$newHost;
    	}
     
    	function getLogin(){
    		return $this->login;
    	}
     
    	function setLogin($newLogin){
    		$this->login=$newLogin;
    	}
     
    	function getPass(){
    		return $this->pass;
    	}
     
    	function setPass($newPass){
    		$this->pass=$newPass;
    	}
     
    	function getDb(){
    		return $this->db;
    	}
     
    	function setDb($newDb){
    		$this->db=$newDb;
    	}
     
    	function connect(){
    		$this->connexion= mysql_connect($this->host,$this->login,$this->pass);
    		if (!$this->connexion) {
      			 die('Impossible de se connecter : ' . mysql_error());
    		}
    		$db_selected = mysql_select_db($this->db, $this->connexion);
    		if (!$db_selected) {
       			die ('Impossible de sélectionner la base de données : ' . mysql_error());
    		}
    	}
     
    	function setQuery($sql){
    		$result = mysql_query($sql);
    		return $result;
    	}
     
    	function disconnect(){
    		if ($this->connexion) {
    			mysql_close($this->connexion);
    		}
    	}
    }
    ?>
    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
     
    <?php require_once('DbConnexion.php')?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//FR" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <link rel ="stylesheet" type="text/css" href="Design2.css">
    <title>S'enregistrer</title>
    </head>
    <body>
    <h1>Utilisateurs enregistrés</h1>
    <?php 
    $email =$_POST['email'];
    $motDePass = $_POST['motDePass'];
    $dateNaiss = $_POST['dateNaiss'];
    $langue = $_POST['langue'];
    $titre = $_POST['titre'];
    $nom = $_POST['nom'];;
    $prenom = $_POST['prenom'];
    $adresse = $_POST['adresse']; 
    $cp = $_POST['cp'];
    $pays = $_POST['pays'];
    $telephone = $_POST['telephone']; 
    $newsLetter = $_POST['newsLetter']; 
    $telPro = $_POST['telPro']; 
    $ville = $_POST['ville'];
     
    $sql = "INSERT INTO utilisateur (email, motDePass, dateNaiss, langue, titre, nom, prenom, adresse, cp, pays, telephone, newsLetter, telPro, ville) VALUES ('$email', '$motDePass', '$dateNaiss', '$langue', '$titre', '$nom', '$prenom', '$adresse', '$cp', '$pays', '$telephone', '$newsLetter', '$telPro', '$ville')";
    echo $sql.'<br/>';
    $maCo = new DbConnexion();
    $maCo->connect();
     
    $result = $maCo->setQuery($sql);
    	if ($result == false)
    		echo "Insertion a échoué";
    echo $result.'<br/>';
    $sql = 'select * from utilisateur';
    $result = $maCo->setQuery($sql);
    while($user = mysql_fetch_assoc($result)){
    	echo $user['nom']." ";
    	echo $user['prenom'].'<br />';
    }
    ?>
    </body>
    </html>
    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
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
     
    <?php
    require_once('Params.php');
     
    if($langue = $_GET['langue']);
     
    	switch ($langue) {
       	 case 'fr':
    		$_session['langue'] = TRAD_FILE_FR;
    		break;
       	 case 'nl':
    		$_session['langue'] = TRAD_FILE_NL;
    		break;
       	 case 'en':
    		$_session['langue'] = TRAD_FILE_EN;
           	 break;
    }
    if(!$_session['langue']){
    	header("Location: langue.php");
    }else{
    	$trad = simplexml_load_file($_session['langue']);
    	$xml = $trad->formInscription;
    }
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//FR" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <link rel ="stylesheet" type="text/css" href="DesignForm.css">
    <title>S'enregistrer</title>
    </head>
    <body>
    	<div id="container">
    		<div id="intro">
    			<div id="pageHeader">
    				<h1><span></span></h1>
    				<h2><span></span></h2>
    			</div>
     
    			<div id="quickSummary">
    				<p class="p1"><span></span></p>
    				<p class="p2"><span></span></p>
    			</div>
    	</div>
    	<form METHOD="POST" ACTION="test.php">
      		<fieldset>
        		<legend>Profile</legend>
        		<div id="ident">
        			<?php echo $xml->name ?> : <input type="text" size="30" /><br />
        			<?php echo $xml->firstName ?> : <input type="text" size="30" /><br />
        			<?php echo $xml->dateBday ?> : <input type="text" size="10" /><br />
        		</div>
        		<div id="titre">
        			<?php echo $xml->title ?> : <br />
    				<INPUT type="radio" name="titre" value="M" />M<br />
    				<INPUT type="radio" name="titre" value="Mme" />Mme<br />
    				<INPUT type="radio" name="titre" value="Mlle" />Mlle<br />
    			</div>
    			<?php echo $xml->tel ?>: <input type="text" size="30" /><br />
    			<?php echo $xml->adress ?> : <br />
    					<input type="text" size="50" />   <?php echo $xml->cp ?> : <input type="text" size="7" /><br />
    			        <input type="text" size="50" />   <?php echo $xml->city ?> : <input type="text" size="30" /><br />
    			<?php echo $xml->land ?>: <select name="test">
    			<?php
    					foreach($xml->lands->lan as $lan){
    						echo "<option value='".$lan["id"]."'";
    						if ($lan["id"] == 0) echo " selected='selected'";
    						echo ">".$lan."</option>";
    					}
    			?>
    			</select>
    			<?php echo $xml->function ?>:
    			<select name="function">
    			<?php
    					foreach($xml->functions->fun as $fun){
    						echo "<option value='".$fun["id"]."'";
    						if ($fun["id"] == 0) echo " selected='selected'";
    						echo ">".$fun."</option>";
    					}
    			?>
    			</select>
      		</fieldset>
     
      		<fieldset>
      			<legend>Société</legend>
      			<?php echo $xml->nameSoc?> : <input type="text" size="30" /><br />
      			<?php echo $xml->adressSoc ?> : <br />
    					<input type="text" size="50" />  <?php echo $xml->cpSoc ?> : <input type="text" size="7" /><br />
    			        <input type="text" size="50" />  <?php echo $xml->citySoc ?> : <input type="text" size="30" /><br />
    			<?php echo $xml->landSoc ?> : <select name="test">
    			<?php
    					foreach($xml->lands->lan as $lan){
    						echo "<option value='".$lan["id"]."'";
    						if ($lan["id"] == 0) echo " selected='selected'";
    						echo ">".$lan."</option>";
    					}
    			?>
    			</select><br />
    			<?php echo $xml->telPro ?>: <input type="text" size="30" /><br />
      		</fieldset>
     
      		<fieldset>
      			<legend>Compte</legend>
      			<?php echo $xml->email ?>: <input name="email" type="text" size="50" /><br />
      			<?php echo $xml->passWord ?>: <input type="password" size="12" /><br />
      			<?php echo $xml->confirm ?>: <input type="password" size="12" /><br />
      			<?php echo $xml->newsLetter ?>: <input type="checkbox" name="newsLetter" value="" />
      		</fieldset>
     
    		<fieldset>
    			<legend>Valider</legend>
    			<br /><center>
    			<INPUT type="submit" value="Envoyer" name="envoieForm">
    			<INPUT type="reset" value="Effacer" name="reset">
    			</center>
    	</form> 
    </body>
    </html>
    Merci d'avance pour l'aide

    Ps: si je n'ai pas été précis ou que j'ai mit trop de chose ou pas assez, n’hésiter pas à me remettre en droit chemin

  2. #2
    Membre confirmé Avatar de saymoneu
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2010
    Messages
    248
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2010
    Messages : 248
    Points : 505
    Points
    505
    Par défaut
    Bonjour,

    Je ne vois pas le formulaire envoyant les valeurs que tu récupères dans ton 2e code comme $_POST['motDePass'], $_POST['dateNaiss']. En tout cas le problème vient du fait qu'il n'arrive pas à trouver d'ou viennent tes variables que tu essaies de récupérer.

    Est-ce normal?

  3. #3
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Salut

    Exemple d'une erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="text" size="30" />
    Il y a des INPUT qui n'ont pas de nom (attribut name).
    Faut leur mettre des noms


    Après vient d'autres aspects : La fiabilité du code et des données.
    C'est à dire que normalement il faut au minimum vérifier que chaque donnée existe.
    Puis ensuite (normalement toujours) vérifier que chaque donnée soit conforme (par ex: qu'une adresse mail reçue soit bien du format standard des mails)
    Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
    Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]

  4. #4
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    Effectivement, une bête erreur de ma part !

    Sinon pour la fiabilité comment pourrais-je faire pour l'optimiser ?

    Je ne fais que débuté dans le domaine merci de votre indulgence

  5. #5
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Sinon pour la fiabilité comment pourrais-je faire pour l'optimiser ?
    Optimiser n'est peut être pas le bon terme, car en général ça fini en une usine à gaz ce genre contrôles/vérifications (pour optimiser justement).

    Pour le BABA il y a les classiques : isset() / empty()
    Puis en un peu plus évolué il y a les filtres : filter
    -> filter_input() et filter_var() entre autre.


    Au passage, créer une abstraction de classe de connexion de Bdd en utilisant les fonctions mysql_* me semble pure perte de temps.
    Les raisons c'est que
    - ces fonctions mysql_* sont obsolètes. Introduction (voir le tableau tout en bas, entre autre)
    - Puis ça existe déjà nativement en plus on a 2 choix : soit PDO soit MySQLi

    Faut peut être débuter par le bon pied.
    Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
    Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]

Discussions similaires

  1. Parcours d'un fichier et insertion dans une base de données !
    Par condor_01 dans le forum Général Java
    Réponses: 2
    Dernier message: 24/04/2008, 09h24
  2. [paradox7] Problème d'insertion dans la base de données
    Par mouna201 dans le forum Bases de données
    Réponses: 4
    Dernier message: 01/02/2006, 09h47
  3. problème d'insertion dans une base de données
    Par belmansour tidjani dans le forum JDBC
    Réponses: 7
    Dernier message: 18/01/2006, 22h13
  4. [Hibernate] problème d'insertion dans la base de données
    Par Willy7901 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 18/08/2005, 13h19
  5. Probleme d'insertion dans la base de données
    Par PrinceMaster77 dans le forum ASP
    Réponses: 5
    Dernier message: 11/06/2004, 16h21

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