Votre question

PHP, mySQL : problème d'insertion dans la base mySQL

Tags :
  • MySQL
  • Programmation
Dernière réponse : dans Programmation
2 Juin 2006 10:12:39

Salut à tous !

Je vous met mes pages qui me pose problèmes :

PAGE 1

<html>
<title>Formulaire de saisie du numéro du dossier pour l'ajout d'un poste</title>
<script language="javascript">
<!--Création d'une fonction qui permet de vérifier si le numéro de dossier saisie existe dans-->
<!--la base ou pas-->
function verif_exist()
{
if (document.formNumSaisiePost.champndos.value == '')
{
alert('Veuillez saisir un numéro de dossier.');
return false;
}
else
return true;
}
</script>
<p><em><strong>Saisissez le numéro du dossier pour lequel vous souhaitez ajouter un poste : </strong></em></p>
<hr width="75%">
<form name="formNumSaisiePost" method="post" action="formSaisiePost.php">
<p align="center">N° de dossier :
<input name="champndos" type="text" size="10" maxlength="4">
</p>
<p align="center">
<input type="submit" name="Submit" value="Valider" onClick="return verif_exist()">
</p>
</form>
</html>

PAGE 2

<html>
<head>
<title>Formulaire de saisie d'un poste</title>
<style type="text/css">
<!--
.Style2 {color: #006600}
.Style3 {font-weight: bold}
.Style4 {
color: #FF0000;
font-weight: bold;
}
-->
</style>
</head>
<?PHP
$numdossier = '"'.$_POST['champndos'].'"';
?>
<body>
<p><strong>Saisissez les informations sur le poste informatique :</strong></p>
<hr width="500">
<form name="formSaisiePost" method="post" action="ajoutPost.php">
<table width="766" border="0">
<tr>
<td width="365" class="Style3"><ul type="square" class="Style2 Style3">
<li>Informations utilisateur</li>
</ul></td>
<td width="391"> </td>
</tr>
<tr>
<td>Nom utilisateur : </td>
<td><input name="champnomut" type="text" size="25" maxlength="25"></td>
</tr>..................................................................................................

PAGE 3

<html>
<head>
<title>ajoutPoste</title>
</head>
<body>
<?PHP
//Inclusion du fichier de connexion
include "Connexion_Base.php";
// Connexion à la base de données
$idconnexion = BDD_Connect();
//Requête introduisant les données dans la table POSTE
$requete = "INSERT INTO poste(id_post, nom_ut_post, fonct_ut_post, sal_bat_post, n_seri_mat_post,
dat_fin_gar_mat_post, proc_post, mem_viv_post, cart_vid_post, dd_post, lec_dkt_post, lec_cddvd_post,
grav_post, lec_zip_post, stream_post, mod_post, cart_res_post, autres_inf_mat_post, se_post, bur_post,
antiv_post, autres_log_post, typ_mon_post, marq_mon_post, n_seri_mon_post, dat_fin_gar_mon_post,
conex_imp_post, typ_imp_post, marq_imp_post, n_seri_imp_post, da_fin_gar_imp_post, conex_autre_imp_post,
typ_autre_imp_post, marq_autre_imp_post, n_seri_autre_imp_post, dat_fin_gar_autre_imp_post,
autres_periph_post, nom_net_bios_post, workgrp_post, nom_adm_loc_post, mp_adm_loc_post,
nom_sess_post, mp_post, ip_post, passerel_post, dns_post, sauv_post, nb_post_config, n_dos)
VALUES ('', '".$_POST['champnomut']."', '".$_POST['champfonc']."', '".$_POST['champsalbat']."',
'".$_POST['champnserimat']."', '".$_POST['champdatfingarmat']."', '".$_POST['champproc']."',
'".$_POST['champmemviv']."', '".$_POST['champcartvid']."', '".$_POST['champdd']."',
'".$_POST['listdkt']."', '".$_POST['listleccddvd']."', '".$_POST['listgrav']."',
'".$_POST['listleczip']."', '".$_POST['champstream']."', '".$_POST['listmod']."',
'".$_POST['listcartres']."', '".$_POST['zoneautreinfmat']."', '".$_POST['champse']."',
'".$_POST['zonebur']."', '".$_POST['champantiv']."', '".$_POST['zoneautrelog']."',
'".$_POST['champtypmon']."', '".$_POST['champmarqmon']."', '".$_POST['champnserimon']."',
'".$_POST['champdatfingarmon']."', '".$_POST['listconeximp']."', '".$_POST['champtypimp']."',
'".$_POST['champmarqimp']."', '".$_POST['champnseriimp']."', '".$_POST['champdatfingarimp']."',
'".$_POST['listconexautreimp']."', '".$_POST['champtypautreimp']."', '".$_POST['champmarqautreimp']."',
'".$_POST['champnseriautreimp']."', '".$_POST['champdatfingarautreimp']."',
'".$_POST['zoneautreperiph']."', '".$_POST['champnomnetbios']."', '".$_POST['champworkgrp']."',
'".$_POST['champnomadmloc']."', '".$_POST['champmpadmloc']."', '".$_POST['champnomsess']."',
'".$_POST['champmp']."', '".$_POST['champippost']."', '".$_POST['champpasserel']."',
'".$_POST['champdns']."', '".$_POST['champsauvpost']."', '".$_POST['champnbpostconfig']."',
'".mysql_real_escape_string($numdossier)."')";
//Exécution de la requête
$Resultat = mysql_query($requete);
//Fermeture des objets pour libération mémoire
mysql_close ($idconnexion);
?>
<script>alert ("Le poste à bien été ajouté !");</script>
<p> </p>
</body>
</html>

Désolé pour la longueur de code.
Mon probléme est que à la PAGE 1 j'ai un champ dans lequel je rentre un chiffre, je le récupère à la PAGE 2 dans ma variable $numdossier et je voudrai l'ajouter dans ma base (PAGE 3 dernière VALUES) mais sa ne marche pas.

Pourriez-vous m'aidez s'il vous plait.
Merci.

Autres pages sur : php mysql probleme insertion base mysql

2 Juin 2006 10:36:22

Il faut la mettre quelque par ta variable $numdossier pour la retrouve dans la page 3.

Par exemple la session :
sur page 2:
$_SESSION['nomDossier']=$numdossier;
sur page 3:
$numdossier=$_SESSION['nomDossier'];
2 Juin 2006 10:51:43

J'ai essayer ta solution mais sa ne marche pas. Ou peut être que je n'ai pas bien appliqué ce que tu ma di.
En fait, j'ai remplacé
$numdossier = '"'.$_POST['champndos'].'"';
dans la page 2 par
$_SESSION['champndos'] = $numdossier;
et j'ai ajouter dans la page 3
$numdossier=$_SESSION['nomDossier'];
aprés
$idconnexion = BDD_Connect();

Est-ce la bonne solution ?
Contenus similaires
2 Juin 2006 11:19:13

Il faut laisse le ligne :
$numdossier = '"'.$_POST['champndos'].'"';
dans la page 2.
Page 2:
$numdossier = '"'.$_POST['champndos'].'"';
$_SESSION['nomDossier] = $numdossier;
Page 3:
$numdossier=$_SESSION['nomDossier'];
2 Juin 2006 11:24:38

Fais gaffe avec ton script. Je te dis pas la sécurité la..... Tu risques de te prendre un droptable tu vas être content du voyage... Check tes $_POST avant de les insérer dans ta BDD.

Remarque : On n'insère JAMAIS de $_POST directement dans la BDD.
2 Juin 2006 11:53:14

Merci du conseille, mais je suis débutant alors sa veut-dire quoi check tes $_POST ?

PS : Jai tjrs pa eu ma réponse
a c 232 L Programmation
2 Juin 2006 12:07:59

check = vérifier en anglais.

En deux mots, faut que tu fasses des htmlspecialchars, des addslashes, et que tu vérifies que l'on fasse pas du SQL Injection (je te ramène à Google pour trouver un article dessus).

Et pour répondre à ta question, à la page 2, vu que tu passes par un formulaire, met la valeur de ta variable que tu veux passer à la page 3 dans un <input name="tavariable" type="hidden" value="lavaleurdetavariable" />

Avec "hidden", le input sera pas afficher, et tu pourras passer la variable que tu récupèreras dans $_POST['tavariable']
2 Juin 2006 14:33:45

Merci à toi mais cela ne marche pas.
D'autres propositions sont les bienvenues.
a c 232 L Programmation
2 Juin 2006 17:35:15

Citation :
Merci à toi mais cela ne marche pas.


Si ça marche... mais faut savoir faire !
Réfléchis plus de 2 minutes avant de dire que ça marche pas !
Ca m'énerve les gens comme ça...
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS