Pb d'insertion dans une base [Résolu]

Signaler
Messages postés
39
Date d'inscription
mardi 15 mars 2005
Statut
Membre
Dernière intervention
31 juillet 2006
-
Messages postés
11
Date d'inscription
dimanche 3 octobre 2004
Statut
Membre
Dernière intervention
10 mai 2008
-
Salut à tous,
je débute en PHP et j'ai réussi à créer une page qui insère des données dans une base Mysql à partir d’un formulaire.


Donc la page fonctionne normalement sous EasyPHP, mais mon problème c’est que j’ai réussi à rentrer 9 enregistrement puis plus rien.


Je ne sais pas de quoi cela pourrais venir est-ce que cela pourrais venir du script ou de la base en sachant que je n’ais rien changé ni au script ni à la base de données.


Juste avant le script, ce mini projet me sert pour sauvegarder des societes que je contact. La base possede deux tables societe et contact avec des clefs primaires et une clef etrangere.

Voici le script PHHP:
<?php
header('Location: ../html/insert.htm');
?>
<!doctype html public "-//W3C//DTD HTML 4.0 //EN">
<html>
<head>
<title>Insertion des données</title>
</head>

<?php
//fichier contenant les elements de connection a la base de données.
require ("connect.php");


//recuperation des données concernant la societe.
$nom_societe = $_POST['nom_societe'];
$acronyme_societe = $_POST['acronyme_societe'];
$adresse_societe = $_POST['adresse_societe'];
$cp_societe = $_POST['cp_societe'];
$ville_societe = $_POST['ville_societe'];
$pays_societe = $_POST['pays_societe'];
$tel_societe = $_POST['tel_societe'];
$fax_societe = $_POST['fax_societe'];
$web_societe = $_POST['web_societe'];
$activite_societe = $_POST['activite_societe'];
$description_societe = $_POST['description_societe'];


//recuperation des données concernant les contact.
$nom_contact = $_POST['nom_contact'];
$prenom_contact = $_POST['prenom_contact'];
$service_contact = $_POST['service_contact'];
$poste_contact = $_POST['poste_contact'];
$mail_contact = $_POST['mail_contact'];


$connexion = mysql_connect (server, login, passwd);


//selection de la base de données
mysql_select_db (base, $connexion);


//insertion des données dans la table societe.
$insert_societe = "insert into societe ("
. "nom_societe, acronyme_societe, adresse_societe, "
. "cp_societe, ville_societe, pays_societe, tel_societe, fax_societe, "
. "web_societe, activite_societe, description_societe, date_saisie) "
. "values ('$nom_societe', '$acronyme_societe', '$adresse_societe', "
. "$cp_societe, '$ville_societe', '$pays_societe', $tel_societe, $fax_societe, "
. "'$web_societe', '$activite_societe', '$description_societe', CURDATE())";


$result_insert_soc = mysql_query ($insert_societe, $connexion);


echo "la requete d'insertion '$insert_societe' a correctement ete execute.
";


//selection de l'id societe pour l'insertion dans la table contact.
$select_idsociete = "select *"
. "from societe "
. "where nom_societe = '$nom_societe' "
. "and acronyme_societe = '$acronyme_societe' ";


$result_select_idsoc = mysql_query ($select_idsociete, $connexion);


if($result_select_idsoc)
{
while ($result = mysql_fetch_object($result_select_idsoc))
{
echo "la requete de selection a correctement ete execute. resultat : '$result->id_societe' .
";
//insertion des données dans la table contact.
$insert_contact = "insert into contact ("
. "id_societe, nom_contact, prenom_contact, "
. "service_contact, poste_contact, mail_contact) "
. "values ($result->id_societe, '$nom_contact', '$prenom_contact', "
. "'$service_contact', '$poste_contact', '$mail_contact')";
$result_insert_contact = mysql_query($insert_contact,$connexion);
echo "votre requete d'insertion '$insert_contact' a correctement ete execute.
";

}
}
else
{
echo"erreur dans l'execution de la requete.
";
echo"message de mysql :
" . mysql_error($connexion);
}


?>

</html>

________________________
Le Black Dog c'est moi

7 réponses

Messages postés
39
Date d'inscription
mardi 15 mars 2005
Statut
Membre
Dernière intervention
31 juillet 2006

Il faut que je verifie la structure de ce que je recupere. C'est de la que vient mon probleme.
Il faut que fasse des htmlentities, str_replace etc...
______________________
Le Black Dog c'est moi
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8
Salut,



quel est le type de champ de ta clé primaire ?



si c'est un TINYINT avec une taille de 1 c'est normal que tu ne puisses dépasser 9 :-)



a +

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li>
Messages postés
39
Date d'inscription
mardi 15 mars 2005
Statut
Membre
Dernière intervention
31 juillet 2006

Non c'est du int(100) c'est pour cela que je ne vois pas

___________________
Le Black Dog c'est moi
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8
quelle est la structure de ta table ? (tu peux la copier/coller ici stp)



Ensuite ça n'insère pas car y'a des apostrophes dans l'enregistrement ?
là je vois des $_POST sans isset pour vérifier si ils existent, et sans
fonction qui ajoute les slashes genre adsslashes pour éviter les
failles de sql injection :-)

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li>
Messages postés
39
Date d'inscription
mardi 15 mars 2005
Statut
Membre
Dernière intervention
31 juillet 2006

en se qui concerne la structure de la table j'ai fais un screenshot du dico des données de easyphp.
http://miloivan.free.fr/data/avatar/dico_donnees.jpg

sinon en ce qui concerne les champs vides lors de mes test il n'y avait pas de probleme meme si le champ est vide il m'insere une valeur null ('') donc je ne suis pas trop sur que cela vienne de ça mais c'est vrai qu'il est preferable de faire du bon code propre et je te remerci de ton aide.
______________________
Le Black Dog c'est moi
Messages postés
39
Date d'inscription
mardi 15 mars 2005
Statut
Membre
Dernière intervention
31 juillet 2006

Salut à tous,
J'ai un petit peu avancé dans mon problème, je me suis aperçus que le problème venais de l'adresse il ne me recupere plus l'adresse si je met un numero d'immeuble par contre si je test avec un mot simple comme 'test' cela fonctionne impec je ne vois franchement pas comment corriger se bug. Si vous voyez une solution je suis preneur meme si elle semble invraissemblable car le bug est arrivée tout seul après 9 enregistrement sans changement du code ou des tables.

Merci d'avance.
_______________________
Le Black Dog c'est moi
Messages postés
11
Date d'inscription
dimanche 3 octobre 2004
Statut
Membre
Dernière intervention
10 mai 2008

MOI JE TE CONSEILLE CA

[mailto:$options_demandes=@$_POST['options_demandes' $options_demandes=@$_POST['options_demandes']];
  $options_demandes=mysql_real_escape_string(htmlspecialchars($options_demandes));

lcomb