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 :

erreur session ou bdd ? [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 105
    Par défaut erreur session ou bdd ?
    bonjour,
    je suis en train d'apprendre la bdd et pour cela j'ai créé un formulaire qui doit incrémenter une bdd en local
    hors cela ne marche pas
    je ne trouve pas mon erreur

    voici mon script php
    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
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    <?php 
     
    session_start();
     
    // connexion à la base
     
     
    $db = mysql_connect('localhost','root','')  or die('Erreur de connexion '.mysql_error());
     
    // sélection de la base  
     
    mysql_select_db('bienvenu',$db)  or die('Erreur de selection '.mysql_error());
     
     
    //Initialisation var
     
    $Msg='';
    $id=$_REQUEST['id'];
    $admin=$_POST['admin'];
    $motpasse=$_POST['motpasse'];
    $age=$_POST['age'];
    $sitfam=$_POST['sitfam'];
    $tel=$_POST['tel'];
    $email=$_POST['email'];
    $sexe=$_POST['sexe'];
     
     
     
    	//Mise en session des valeurs du formulaire		
    	while ( list($cle, $val) = each( $_POST ) ){ 		 
    		$_SESSION[$cle] =$_POST[$cle]; 		
    	}		
     
    	//Si validation du formulaire
    	if(isset($_POST['Submit'])){
     
    		//Verif champ obligatoire
    		if(empty($_POST['admin'])){		
    			$Msg .= "<BR>Erreur de saisie : Vous n'avez pas précisé votre code administrateur !";				
    		}
    		if(empty($_POST['motpasse'])){		
    			$Msg .= "<BR>Erreur de saisie : Vous n'avez pas précisé votre mot de passe !";				
    		}
    		if(empty($_POST['age'])){		
    			$Msg .= "Erreur de saisie : Vous n'avez pas précisé votre age !";			
    		}		
    		if(empty($_POST['sitfam'])){		
    			$Msg .= "<BR>Erreur de saisie : Vous n'avez pas précisé votre situation familiale !";				
    		}
    		if(empty($_POST['tel'])){		
    			$Msg .= "<BR>Erreur de saisie : Vous n'avez pas précisé votre N° de téléphone !";				
    		}
    		if( !eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,6})$", $_POST['email']) ){		
    			$Msg .= "<BR>Votre adresse email semble invalide !";				
    		}
    		if(empty($_POST['sexe'])){		
    			$Msg .= "<BR>Erreur de saisie : Vous n'avez pas précisé votre sexe !";				
    		}
     
    }
     
     
    // Aucun champ n'est vide, on peut enregistrer dans la table
    else     
        {
     
     
        // on écrit la requête sql
        $sql = "INSERT INTO client(id,admin,motpasse,age,sitfam,tel,email,sexe) 
    	VALUES('','$admin','$motpasse','$age','$sitfam','$tel','$email','$sexe')";
     
        // on insère les informations du formulaire dans la table
        mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
    	$Msg="dossier enregistre";
     
     
     
        mysql_close($db);  // on ferme la connexion
     
    header("location:client.php");
        }
     
     
     
    	//Menu select age	
    	$Printage = array(
    		"moins de 25 ans" => "1",
    		"de 25 à 50 ans" => "2",
    		"+ de 50 ans" => "3",
    	);
     
    	foreach($Printage as $cle=>$valeur){ 
    		if (isset($_SESSION['age']) && $_SESSION['age']== $valeur && !empty($_SESSION['age'])  ){
    			$Printage.= "<option value=\"".$valeur."\" selected>".$cle."</option>\n";
    		}else{
    			$Printage.= "<option value=\"".$valeur."\">".$cle."</option>\n";
    		}
    	}
     
    	//Menu select sitfam	
    	$Printsitfam = array(
    		"Vie seul(e)" => "1",
    		"En couple" => "2",
    	);
     
    	foreach($Printsitfam as $cle=>$valeur){ 
    		if (isset($_SESSION['sitfam']) && $_SESSION['sitfam']== $valeur && !empty($_SESSION['sitfam'])  ){
    			$Printsitfam.= "<option value=\"".$valeur."\" selected>".$cle."</option>\n";
    		}else{
    			$Printsitfam.= "<option value=\"".$valeur."\">".$cle."</option>\n";
    		}
    	}
     
    	//Menu select sexe	
    	$Printsexe = array(
    		"masculin" => "1",
    		"féminin" => "2",
    	);
     
    	foreach($Printsexe as $cle=>$valeur){ 
    		if (isset($_SESSION['sexe']) && $_SESSION['sexe']== $valeur && !empty($_SESSION['sexe'])  ){
    			$Printsexe.= "<option value=\"".$valeur."\" selected>".$cle."</option>\n";
    		}else{
    			$Printsexe.= "<option value=\"".$valeur."\">".$cle."</option>\n";
    		}
    	}
     
     
    	?>
    et mon 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
    	<div id="definition">
                <td height="525" align="center" valign="top"><form action="" method="post" name="form1"  id="form1">
                    <p>
     
    <?php echo $Msg ?>
      <table width="80%" border="0" align="center" cellpadding="5" cellspacing="0">
        <tr>
          <td align="center"><table width="500" border="0" cellpadding="5" cellspacing="0">
     
     
     
     
                      <tr>
                        <td align="right" class="style11">Votre Age* : </td>
                        <td align="left"  class="style13"><select name="age" id="age">
                            <option value="">Selectionnez</option>
                            <?php echo $Printage ?>
                        </select></td>
                      </tr>		
     
     
                      <tr>
                        <td align="right" class="style11">votre Situation familiale* : </td>
                        <td align="left"  class="style13"><select name="sitfam" id="sitfam">
                            <option value="">Selectionnez</option>
                            <?php echo $Printsitfam ?>
                        </select></td>
                      </tr>	
     
            <tr>
              <td align="right">votre téléphone* :</td>
              <td align="left"><input name="tel" type="text" class="Select" id="tel" value="<?php  if (isset($_SESSION['tel'])){ echo htmlentities( stripslashes($_SESSION['tel']));} ?>" size="12" /></td>
            </tr>
     
            <tr>
              <td align="right">votre E-Mail* :</td>
              <td align="left"><input name="email" type="text" class="Select" id="email" value="<?php  if (isset($_SESSION['email'])){ echo htmlentities( stripslashes($_SESSION['email']));} ?>" size="40" /></td>
            </tr>
     
                      <tr>
                        <td align="right" class="style11">votre Sexe * : </td>
                        <td align="left"  class="style13"><select name="sexe" id="sexe">
                            <option value="">Selectionnez</option>
                            <?php echo $Printsexe ?>
                        </select></td>
                      </tr>	
     
            <tr>
              <td align="right">Votre code adminstrateur *:</td>
            <td align="left"><input name="admin" type="text" class="Select" id="admin" value="<?php  if (isset($_SESSION['admin'])){ echo htmlentities( stripslashes($_SESSION['admin']));} ?>" size="6" /></td>
     
              </tr>
            <tr>
              <td align="right">Votre mot de passe :</td>
            <td align="left"><input name="motpasse" type="password" class="Select" id="motpasse" value="<?php  if (isset($_SESSION['motpasse'])){ echo htmlentities( stripslashes($_SESSION['motpasse']));} ?>" size="6" /></td>
     
              </tr>
            <tr>
              <td colspan="2" align="center"><input type="submit" name="Submit" value="Envoyer" /></td>
            </tr>
     
            <tr>        </tr>
          </table></td>
        </tr>
      </table>
    </form></div>
    merci de votre aide

  2. #2
    Invité
    Invité(e)
    Par défaut


    Merci de nous dire ce que tu obtiens, car "ça marche pas" ne nous aide pas beaucoup...

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 105
    Par défaut formulaire ou bdd
    autant pour moi
    lorsque je valide le formulaire, la bdd n'est pas incrémentée et je ne passe pas au fichier suivant : je reste au formulaire initial.

    les champs sont bien pré remplis mais si le champ n'est pas valide (email non conforme par ex) mon message d'erreur n'apparait pas.

    l'erreur vient très probablement du formulaire , mais je ne trouve pas

  4. #4
    Invité
    Invité(e)
    Par défaut
    Après avoir regardé ton code je dirais que le lancement de l'enregistrement dans la base de données n'est pas déclenché au bon moment (tu le déclenches sur le "sinon" d'un "si j'ai validé mon formulaire"....). Remonte-le dans le if et place-le dans un "SI $MSG est vide"

    Sinon 2 petites remarques liées à ton code :
    - Mets tes messages d'erreurs dans un tableau qu'ensuite tu splittes à l'affichage avec des <br/> (et non pas <BR>). C'est plus propre, ça évite de balancer du code HTML au beau milieu d'un script de traitement
    - Protège les données que tu insères en base, pour éviter les failles d'injection SQL (mysql_escape_string(), htmlspecialchars(), etc.)

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Pour ajouter aux conseils de torvalds17 ...

    - (je parle juste du formulaire)
    Mettre une bonne identation à ton code (passages à la ligne, tabulations, ...) te permettrait d'y voir plus clair (et de constater que tu as des balises en trop, notamment)
    - les <table> (surtout imbriquées), ... ca ne se fait plus. Sauf pour les données tabulaires.
    Les div et CSS sont là pour ca (mise en page).

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 105
    Par défaut formulaire ou bdd
    bien vu
    tout fonctionne
    je vais également tenir compte de tes conseils
    merci pour ta réponse rapide et efficace

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

Discussions similaires

  1. [PDO] erreur '{' ou erreur connexion à la BDD?
    Par piranha2209 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 13/01/2008, 20h46
  2. Message erreur à l'ouverture Bdd
    Par Daniel MOREAU dans le forum Access
    Réponses: 3
    Dernier message: 08/01/2008, 18h36
  3. Message d'erreur session
    Par aragorn23 dans le forum Langage
    Réponses: 3
    Dernier message: 16/12/2007, 14h02
  4. Associer les données d'une session à une BDD
    Par TinyDwarf dans le forum Langage
    Réponses: 3
    Dernier message: 27/07/2006, 19h11
  5. [VB6] recuperer code erreur d'une bdd
    Par colooo dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 14/07/2006, 10h15

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