Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 31/08/2011, 12h19   #1
Invité régulier
 
christian lewhe
Inscription : mai 2010
Messages : 34
Détails du profil
Informations personnelles :
Nom : christian lewhe

Informations forums :
Inscription : mai 2010
Messages : 34
Points : 9
Points : 9
Par défaut Certains champs de la table ne sont pas remplis

Bonjour,
j'essaye d'inserer dans ma base de données un nouvel enregistrement,je le fais tout le temps mais là sérieux je sais pas pouquoi ca marche que pour les champs 'identifiant' et 'description',les autres champs ne sont pas du tout remplis.Ce serait sympa si quelqu'un pourrait m'aider.

voici mon code:
Code :
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
 
<?php
require("config.php");// connexion a ma BD
 
	$id=$_POST['identifiant'];
    $description=$_POST['description'];
	$mot_de_passe=$_POST['mot_de_passe'];
	$mot_de_passe1=$_POST['mot_de_passe1'];
	$service=$_POST['service'];
	$nom=$_POST['nom'];
	$prenom=$_POST['prenom'];
	$erreur=NULL;
 
	if($id=='' or $description=='' or $mot_de_passe=''or $mot_de_passe1='' or $service='' or $nom='' or $prenom='') 
 
	{
		$erreur="<span style='color:black'>Informations manquantes ou incohérentes! Vérifiez tous les champs.</span>"; 
		echo"$erreur";
		include("formulaire_ajout_medecin.php");
		exit();
 
	}
 
 
 if($mot_de_passe!=$mot_de_passe1) 
 
	{
		$erreur="<span style='color:black'>Les mots de passe saisis ne correspondent pas.</span>"; 
		echo"$erreur";
		include("formulaire_ajout_medecin.php");
		exit();	
	}
    if($erreur!=NULL)
    {
 
       return FALSE;
 
    }
 
else
{
 
		 $query = "INSERT INTO `sante`.`administrateurs` (`identifiant`,`mot_de_passe`,`description`,`service`,`nom`,`prenom`) VALUES ('$id ','$mot_de_passe','$description','$service','$nom','$prenom') "; 
 
       $result= mysql_query($query); 
 
		  if($result)
		  {
		  $erreur="<span style='color:black'>Medecin inséré avec succès!.</span>";
		  echo"$erreur";
		  include("formulaire_ajout_medecin.php");
		  exit();
			}
  		  else{
             $erreur="<span style='color:black'>Insertion impossible!Un medecin porte peut etre déjà cet Identifiant ou autre erreur!</span>";
			  echo"$erreur";
		  include("formulaire_ajout_medecin.php");
           }
 
 
	 }
?>
lewhechris est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2011, 12h31   #2
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 2 994
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 45
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 2 994
Points : 5 787
Points : 5 787
Envoyer un message via Skype™ à jreaux62
Bonjour,
utilise mysql_real_escape_string()
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2011, 12h32   #3
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 991
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 991
Points : 5 032
Points : 5 032
Aïe, c'est pas la bonne syntaxe que tu nous a écrit là.

Alors déjà:
- le "ou" logique en PHP c'est l'opérateur || et non pas l'opérateur OR, le "et" logique c'est l'opérateur &&
- si tu ne teste pas l'existence des index de ton tableau, tu va polluer ton log (ou ton affichage) avec des tonnes de messages d'erreur
- tu utilise alternativement = et == dans une condition. Je rappelle pour mémoire que = est l'opérateur d'affectation et == l'opérateur de comparaison
- utilise les directives isset et empty pour vérifier les données plutôt que de comparer des valeurs de chaines (même chaine vide) c'est plus rapide.

Corrige tout ça et reviens nous voir

-- Edit

Allez, pour t'aider, voici comment on insère des données en base à partir de données GET (ou POST):
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
if (!empty($_GET['a'] &&
    !empty($_GET['b'] &&
    !empty($_GET['c']) {
    $a = mysql_real_escape_string($_GET['a']);
    $b = mysql_real_escape_string($_GET['b']);
    $c = mysql_real_escape_string($_GET['c']);
 
    $query = "INSERT INTO `table` VALUES ('$a','$b','$c')";
    if ($res = mysql_query($query)) {
       echo "Ligne insérée: $a $b $c";
    else
       echo "Ligne non insérée";
}
else {
  echo "Il manque des paramètres";
}
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2011, 12h39   #4
Invité régulier
 
christian lewhe
Inscription : mai 2010
Messages : 34
Détails du profil
Informations personnelles :
Nom : christian lewhe

Informations forums :
Inscription : mai 2010
Messages : 34
Points : 9
Points : 9
Ok je nettoie un peu,back soon on not!!
lewhechris est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2011, 12h50   #5
Invité régulier
 
christian lewhe
Inscription : mai 2010
Messages : 34
Détails du profil
Informations personnelles :
Nom : christian lewhe

Informations forums :
Inscription : mai 2010
Messages : 34
Points : 9
Points : 9
Par défaut Done

Bon dejà j'ai créé une classe pour sécuriser les entrées du formulaire.Apres avoir inséré des empty() à la place des chaines vides et des "||" à la place des "OR"



Code :
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
 
<?php
 
    class Securite
	{
		// Données entrantes
		public static function bdd($string)
		{
			// On regarde si le type de string est un nombre entier (int)
			if(ctype_digit($string))
			{
				$string = intval($string);
			}
			// Pour tous les autres types
			else
			{
				$string = mysql_real_escape_string($string);
				$string = addcslashes($string, '%_');
			}
 
			return $string;
 
		}
		// Données sortantes
		public static function html($string)
		{
			return htmlentities($string);
		}
	}
?>
<?php
global $erreur;
 
require("config.php");
 
	$id=Securite::bdd($_POST['identifiant']);
    $description=Securite::bdd($_POST['description']);
	$mot_de_passe=Securite::bdd($_POST['mot_de_passe']);
	$mot_de_passe1=Securite::bdd($_POST['mot_de_passe1']);
	$service=Securite::bdd($_POST['service']);
	$nom=Securite::bdd($_POST['nom']);
	$prenom=Securite::bdd($_POST['prenom']);
	$erreur=NULL;
 
	if(empty($id)||empty($description)||empty($mot_de_passe)|| empty($mot_de_passe1)||empty($service)||empty($nom)||empty($prenom) )
 
	{
		$erreur="<span style='color:black'>Informations manquantes ou incohérentes! Vérifiez tous les champs.</span>"; 
		echo"$erreur";
		include("formulaire_ajout_medecin.php");
		exit();
 
	}
 
 
 if($mot_de_passe!=$mot_de_passe1) 
 
	{
		$erreur="<span style='color:black'>Les mots de passe saisis ne correspondent pas.</span>"; 
		echo"$erreur";
		include("formulaire_ajout_medecin.php");
		exit();	
	}
    if($erreur!=NULL)
    {
 
       return FALSE;
 
    }
 
else
{
 
		 $query = "INSERT INTO `sante`.`administrateurs` (`identifiant`,`mot_de_passe`,`description`,`service`,`nom`,`prenom`) VALUES ('$id ','$mot_de_passe','$description','$service','$nom','$prenom') "; 
 
       $result= mysql_query($query); 
 
		  if($result)
		  {
		  $erreur="<span style='color:black'>Medecin inséré avec succès!.</span>";
		  echo"$erreur";
		  include("formulaire_ajout_medecin.php");
		  exit();
			}
  		  else{
             $erreur="<span style='color:black'>Insertion impossible!Un medecin porte peut etre déjà cet Identifiant ou autre erreur!</span>";
			  echo"$erreur";
		  include("formulaire_ajout_medecin.php");
           }
 
 
	 }
 
?>
lewhechris est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 31/08/2011, 12h51   #6
Invité régulier
 
christian lewhe
Inscription : mai 2010
Messages : 34
Détails du profil
Informations personnelles :
Nom : christian lewhe

Informations forums :
Inscription : mai 2010
Messages : 34
Points : 9
Points : 9
et il marche
lewhechris est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2011, 13h10   #7
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 991
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 991
Points : 5 032
Points : 5 032
Citation:
Bon dejà j'ai créé une classe pour sécuriser les entrées du formulaire.
Cette fonctionnalité existe déjà en PHP et ça s'appelle les filtres.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2011, 13h24   #8
Invité régulier
 
christian lewhe
Inscription : mai 2010
Messages : 34
Détails du profil
Informations personnelles :
Nom : christian lewhe

Informations forums :
Inscription : mai 2010
Messages : 34
Points : 9
Points : 9
oui,pas "créé" mais plutot"utilisé" les filtres
lewhechris est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2011, 14h08   #9
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 991
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 991
Points : 5 032
Points : 5 032
Je ne vois pourtant aucun filtre dans ton code, tu effectues des vérifications manuelles qui en soit n'est pas une mauvaise chose. Mais je te recommande de jeter un oeil sur la documentation des filtres, tu verra c'est très pratique et surtout très puissant.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h39.


 
 
 
 
Partenaires

Hébergement Web