Undefined variable
Résolu/Fermé
AMARI
-
18 avril 2013 à 09:29
Mihawk Messages postés 4315 Date d'inscription mercredi 29 mars 2006 Statut Contributeur Dernière intervention 6 janvier 2015 - 18 avril 2013 à 14:57
Mihawk Messages postés 4315 Date d'inscription mercredi 29 mars 2006 Statut Contributeur Dernière intervention 6 janvier 2015 - 18 avril 2013 à 14:57
29 réponses
Mihawk
Messages postés
4315
Date d'inscription
mercredi 29 mars 2006
Statut
Contributeur
Dernière intervention
6 janvier 2015
846
18 avril 2013 à 09:36
18 avril 2013 à 09:36
Bonjour,
Si tu appelles ces variables dans deux pages PHP qui n'ont aucun rapport l'une avec l'autre, alors il est normal qu'il ne les connaisse pas.
Si tu appelles ces variables dans deux pages PHP qui n'ont aucun rapport l'une avec l'autre, alors il est normal qu'il ne les connaisse pas.
Merci Mihawk
mais j'ai pas compris est que tu peux m'expliquer stp
mais j'ai pas compris est que tu peux m'expliquer stp
Mihawk
Messages postés
4315
Date d'inscription
mercredi 29 mars 2006
Statut
Contributeur
Dernière intervention
6 janvier 2015
846
18 avril 2013 à 09:57
18 avril 2013 à 09:57
En fait "Undefined variable" signifie que tu déclares tes variables à un endroit, mais que tu t'en sers à un autre endroit... Alors que les deux endroits en question ne sont pas liés l'un à l'autre.
Tu peux essayer de remplacer tes variables compteurs par des variables globales :
Et ensuite tu y accèdes en faisant :
Tu peux essayer de remplacer tes variables compteurs par des variables globales :
global $nb_insert=0; global $nb_update=0; global $nb_delete=0;
Et ensuite tu y accèdes en faisant :
if ($GLOBALS['nb_insert'] > 0) ; if ($GLOBALS['nb_update'] > 0) ; if ($GLOBALS['nb_delete'] > 0) ;
j'ai essayé de remplacer mon code avec le tien mais il m'affiche ça comme erreur
"( ! ) Parse error: syntax error, unexpected '=', expecting ',' or ';' in C:\wamp\www\on line 41"
est que le syntaxe est faut ??
"( ! ) Parse error: syntax error, unexpected '=', expecting ',' or ';' in C:\wamp\www\on line 41"
est que le syntaxe est faut ??
ThEBiShOp
Messages postés
8378
Date d'inscription
jeudi 22 mars 2007
Statut
Contributeur
Dernière intervention
8 février 2021
1 566
18 avril 2013 à 10:12
18 avril 2013 à 10:12
On peut voir ton code dans sa totalité ?
Mihawk
Messages postés
4315
Date d'inscription
mercredi 29 mars 2006
Statut
Contributeur
Dernière intervention
6 janvier 2015
846
18 avril 2013 à 10:18
18 avril 2013 à 10:18
Quelle est la ligne 41 ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ThEBiShOp : voilà mon code :
<?php
require_once('dbconnect.php');
?>
<?php
$msg_enr_modifs="";
//// -- partie enregistrement des modifs scénario ----
if(isset($_POST['enr_modifs'])){
//le bouton enr modifs a été cliqué
//recup des valeurs postées
$cof_eau_du_sol = $_POST['cof_eau_du_sol'];
$niv_de_debordement = $_POST['niv_de_debordement'];
$taux_concentration = $_POST['taux_concentration'];
$pour_etanchite = $_POST['pour_etanchite'];
$niv_depart = $_POST['niv_depart'];
$sal_sol = $_POST['sal_sol'];
$but = $_POST['but'];
$choix_sortie = $_POST['choix_sortie'];
$origine_iragation = $_POST['origine_iragation'];
$sal_eau_entre = $_POST['sal_eau_entre'];
$condition_climatique = $_POST['condition_climatique'];
$annee = $_POST['annee'];
//$Mois = $_POST['Mois'];
$titre=$_POST['titre'];
$commentaire=$_POST['commentaire'];
//on UPDATE d'abord dans la table scenario les modifs éventuelles de titre et commentaire
$sql_1="UPDATE scenario SET titre='".$titre."',commentaire='".$commentaire."' WHERE id_scenario='".$id_scenario."'";
$requete1 = $db->query($sql_1) ;
//puis Update ou insert ou Delete dans table valeurs
//init compteurs
global $nb_insert = 0;// ligne 41
global $nb_update = 0;
global $nb_delete =0;
// 3 cas: ajout, modif, supression
if(empty($cof_eau_du_sol) && empty($niv_de_debordement) && empty($taux_concentration)&& empty($pour_etanchite)&& empty($niv_depart)
&& empty($sal_sol)&& empty($but)&& empty($choix_sortie)&& empty($origine_iragation)&& empty($sal_eau_entre)&& empty($condition_climatique)){
//les champs ne sont pas vides mais étaient vides avant, c'est un ajout donc INSERT
$sql='insert into valeurs_a_saisir(Id_valeur,cof_eau_du_sol, niv_de_debordement, taux_concentration, pour_etanchite, niv_depart, sal_sol, but, choix_sortie, origine_iragation, sal_eau_entre, condition_climatique, annee, Mois,id_scenario) values ("'.$cof_eau_du_sol.'", "'.$niv_de_debordement.'", "'.$taux_concentration.'", "'.$pour_etanchite.'", "'.$niv_depart.'", "'.$sal_sol.'", "'.$arraybut[$mois].'", "'.$choix_sortie.'", "'.$origine_iragation.'", "'.$sal_eau_entre.'", "'.$condition_climatique.'", "'.$annee.'", "'.$Mois.'","'.$id_scenario.'")';
$requete = $db->query($sql) ;//or die( mysql_error() );
}
echo "<br />".$sql;
$requete = $db->query($sql) ;
$nb_insert++;
//}
//un ou les champs ont eté modifiés, donc UPDATE
$sql="UPDATE valeurs SET cof_eau_du_sol='".$cof_eau_du_sol."', niv_de_debordement='".$niv_de_debordement."' taux_concentration='".$taux_concentration."'pour_etanchite='".$pour_etanchite."'niv_depart='".$niv_depart."'sal_sol='".$sal_sol."'but='".$arraybut[$mois]."'choix_sortie='".$choix_sortie."'origine_iragation='".$origine_iragation."'sal_eau_entre='".$sal_eau_entre."'condition_climatique='".$condition_climatique."'annee='".$annee."' WHERE id_scenario ='".$id_scenario."' AND mois='".$mois."'";
echo "<br />".$sql;
$requete = $db->query($sql) ;
$nb_update++;
if(empty($cof_eau_du_sol) && empty($niv_de_debordement) && empty($taux_concentration)&& empty($pour_etanchite)&& empty($niv_depart)
&& empty($sal_sol)&& empty($but)&& empty($choix_sortie)&& empty($origine_iragation)&& empty($sal_eau_entre)&& empty($condition_climatique)){
//les champs sont vides mais n'étaient pas vides avant, c'est une suppression de valeurs donc DELETE
$sql="DELETE FROM valeurs_a_saisir WHERE id_scenario ='".$id_scenario."'";
echo "<br />".$sql;
$requete = $db->query($sql) ;
$nb_delete++;
}
}
//message du nombre d'enr dans la BDD
$msg_enr_modifs='<font color="green">';
if ($GLOBALS['nb_insert'] > 0) ; $msg_enr_modifs.=$nb_insert." ajout de lignes de valeurs<br />";
if ($GLOBALS['nb_update'] > 0) ;$msg_enr_modifs.=$nb_update." lignes de valeurs modifiées<br />";
if ($GLOBALS['nb_delete'] > 0) ; $msg_enr_modifs.=$nb_delete." lignes de valeurs suprimées<br />";
$msg_enr_modifs.='</font>';
///// ---------------------
////----- Partie recherche des scenari pour cet utilisateur --------
//recup id_utilisateur dans la variable de session
$Id_user=$_SESSION['Id_user'];// ici aussi j'ai Undefined value
//recup du choix eventuel dans la liste déroulante scénario
if(isset($_POST['liste_scenario'])){
$scenario=$_POST['liste_scenario'];
}else{
$scenario="";
}
$sql="SELECT * FROM scenario WHERE Id_user='".$Id_user."' ";
//echo "<br />".$sql;
$requete = $db->query($sql);
//comptage du nb de scénario trouvé pour cet utilisateur
$row_cnt = mysqli_num_rows($requete);
if($row_cnt>0){
//si il y un ou des scénario, on affiche la page avec la liste déroulante
la partie html
?>
<?php
require_once('dbconnect.php');
?>
<?php
$msg_enr_modifs="";
//// -- partie enregistrement des modifs scénario ----
if(isset($_POST['enr_modifs'])){
//le bouton enr modifs a été cliqué
//recup des valeurs postées
$cof_eau_du_sol = $_POST['cof_eau_du_sol'];
$niv_de_debordement = $_POST['niv_de_debordement'];
$taux_concentration = $_POST['taux_concentration'];
$pour_etanchite = $_POST['pour_etanchite'];
$niv_depart = $_POST['niv_depart'];
$sal_sol = $_POST['sal_sol'];
$but = $_POST['but'];
$choix_sortie = $_POST['choix_sortie'];
$origine_iragation = $_POST['origine_iragation'];
$sal_eau_entre = $_POST['sal_eau_entre'];
$condition_climatique = $_POST['condition_climatique'];
$annee = $_POST['annee'];
//$Mois = $_POST['Mois'];
$titre=$_POST['titre'];
$commentaire=$_POST['commentaire'];
//on UPDATE d'abord dans la table scenario les modifs éventuelles de titre et commentaire
$sql_1="UPDATE scenario SET titre='".$titre."',commentaire='".$commentaire."' WHERE id_scenario='".$id_scenario."'";
$requete1 = $db->query($sql_1) ;
//puis Update ou insert ou Delete dans table valeurs
//init compteurs
global $nb_insert = 0;// ligne 41
global $nb_update = 0;
global $nb_delete =0;
// 3 cas: ajout, modif, supression
if(empty($cof_eau_du_sol) && empty($niv_de_debordement) && empty($taux_concentration)&& empty($pour_etanchite)&& empty($niv_depart)
&& empty($sal_sol)&& empty($but)&& empty($choix_sortie)&& empty($origine_iragation)&& empty($sal_eau_entre)&& empty($condition_climatique)){
//les champs ne sont pas vides mais étaient vides avant, c'est un ajout donc INSERT
$sql='insert into valeurs_a_saisir(Id_valeur,cof_eau_du_sol, niv_de_debordement, taux_concentration, pour_etanchite, niv_depart, sal_sol, but, choix_sortie, origine_iragation, sal_eau_entre, condition_climatique, annee, Mois,id_scenario) values ("'.$cof_eau_du_sol.'", "'.$niv_de_debordement.'", "'.$taux_concentration.'", "'.$pour_etanchite.'", "'.$niv_depart.'", "'.$sal_sol.'", "'.$arraybut[$mois].'", "'.$choix_sortie.'", "'.$origine_iragation.'", "'.$sal_eau_entre.'", "'.$condition_climatique.'", "'.$annee.'", "'.$Mois.'","'.$id_scenario.'")';
$requete = $db->query($sql) ;//or die( mysql_error() );
}
echo "<br />".$sql;
$requete = $db->query($sql) ;
$nb_insert++;
//}
//un ou les champs ont eté modifiés, donc UPDATE
$sql="UPDATE valeurs SET cof_eau_du_sol='".$cof_eau_du_sol."', niv_de_debordement='".$niv_de_debordement."' taux_concentration='".$taux_concentration."'pour_etanchite='".$pour_etanchite."'niv_depart='".$niv_depart."'sal_sol='".$sal_sol."'but='".$arraybut[$mois]."'choix_sortie='".$choix_sortie."'origine_iragation='".$origine_iragation."'sal_eau_entre='".$sal_eau_entre."'condition_climatique='".$condition_climatique."'annee='".$annee."' WHERE id_scenario ='".$id_scenario."' AND mois='".$mois."'";
echo "<br />".$sql;
$requete = $db->query($sql) ;
$nb_update++;
if(empty($cof_eau_du_sol) && empty($niv_de_debordement) && empty($taux_concentration)&& empty($pour_etanchite)&& empty($niv_depart)
&& empty($sal_sol)&& empty($but)&& empty($choix_sortie)&& empty($origine_iragation)&& empty($sal_eau_entre)&& empty($condition_climatique)){
//les champs sont vides mais n'étaient pas vides avant, c'est une suppression de valeurs donc DELETE
$sql="DELETE FROM valeurs_a_saisir WHERE id_scenario ='".$id_scenario."'";
echo "<br />".$sql;
$requete = $db->query($sql) ;
$nb_delete++;
}
}
//message du nombre d'enr dans la BDD
$msg_enr_modifs='<font color="green">';
if ($GLOBALS['nb_insert'] > 0) ; $msg_enr_modifs.=$nb_insert." ajout de lignes de valeurs<br />";
if ($GLOBALS['nb_update'] > 0) ;$msg_enr_modifs.=$nb_update." lignes de valeurs modifiées<br />";
if ($GLOBALS['nb_delete'] > 0) ; $msg_enr_modifs.=$nb_delete." lignes de valeurs suprimées<br />";
$msg_enr_modifs.='</font>';
///// ---------------------
////----- Partie recherche des scenari pour cet utilisateur --------
//recup id_utilisateur dans la variable de session
$Id_user=$_SESSION['Id_user'];// ici aussi j'ai Undefined value
//recup du choix eventuel dans la liste déroulante scénario
if(isset($_POST['liste_scenario'])){
$scenario=$_POST['liste_scenario'];
}else{
$scenario="";
}
$sql="SELECT * FROM scenario WHERE Id_user='".$Id_user."' ";
//echo "<br />".$sql;
$requete = $db->query($sql);
//comptage du nb de scénario trouvé pour cet utilisateur
$row_cnt = mysqli_num_rows($requete);
if($row_cnt>0){
//si il y un ou des scénario, on affiche la page avec la liste déroulante
la partie html
?>
ThEBiShOp
Messages postés
8378
Date d'inscription
jeudi 22 mars 2007
Statut
Contributeur
Dernière intervention
8 février 2021
1 566
18 avril 2013 à 10:31
18 avril 2013 à 10:31
tu peux oublier les globals déjà vu que tu restes dans ta page.
Mihawk
Messages postés
4315
Date d'inscription
mercredi 29 mars 2006
Statut
Contributeur
Dernière intervention
6 janvier 2015
846
18 avril 2013 à 10:36
18 avril 2013 à 10:36
J'ai l'impression que tu déclares tes variables dans le :
Si jamais tu ne passes pas dans ce if, tu ne déclares pas.
if(isset($_POST['enr_modifs'])){
Si jamais tu ne passes pas dans ce if, tu ne déclares pas.
Mihawk
Messages postés
4315
Date d'inscription
mercredi 29 mars 2006
Statut
Contributeur
Dernière intervention
6 janvier 2015
846
18 avril 2013 à 10:34
18 avril 2013 à 10:34
Au temps pour moi pour les globales, il faut les déclarer et les affecter indépendamment.
global $nb_insert, $nb_update, $nb_delete; $nb_update=0; $nb_delete=0; $nb_delete=0;
ThEBiShOp
Messages postés
8378
Date d'inscription
jeudi 22 mars 2007
Statut
Contributeur
Dernière intervention
8 février 2021
1 566
18 avril 2013 à 10:35
18 avril 2013 à 10:35
et c'est censé lui apporter quoi dans son code ?
Mihawk
Messages postés
4315
Date d'inscription
mercredi 29 mars 2006
Statut
Contributeur
Dernière intervention
6 janvier 2015
846
18 avril 2013 à 10:44
18 avril 2013 à 10:44
C'était pour gérer le cas où il appelait les compteurs dans 2 scripts différents sans avoir à relire tout son code ;-)
Mihawk ;
j'ai essayé avec ton dernier code il m'affiche encore que les 3 compteurs sont Undefined :(
j'ai essayé avec ton dernier code il m'affiche encore que les 3 compteurs sont Undefined :(
ThEBiShOp
Messages postés
8378
Date d'inscription
jeudi 22 mars 2007
Statut
Contributeur
Dernière intervention
8 février 2021
1 566
18 avril 2013 à 10:45
18 avril 2013 à 10:45
oublie cette histoire de globals.
Mihawk
Messages postés
4315
Date d'inscription
mercredi 29 mars 2006
Statut
Contributeur
Dernière intervention
6 janvier 2015
846
18 avril 2013 à 10:45
18 avril 2013 à 10:45
Place un echo("Debug"); au niveau de la déclaration des compteurs, et voit si le mot "Debug" s'affiche sur la page ; si il ne s'affiche pas c'est que tu ne passe pas dans le if.
j'ai utilisé il l'a pas affiché et j'ai mis l'initialisation de compteurs comme commentaire il m'a affiché l'erreur (Undefined ) dans l'autre partie du coup pour l'initialisation il y a pas de problème c'est dans cette portion de code que ne connait pas les compteurs
$msg_enr_modifs='<font color="green">';
if ($GLOBALS['nb_insert'] > 0) ; $msg_enr_modifs.=$nb_insert." ajout de lignes de valeurs<br />";
if ($GLOBALS['nb_update'] > 0) ;$msg_enr_modifs.=$nb_update." lignes de valeurs modifiées<br />";
if ($GLOBALS['nb_delete'] > 0) ; $msg_enr_modifs.=$nb_delete." lignes de valeurs suprimées<br />";
$msg_enr_modifs.='</font>';
$msg_enr_modifs='<font color="green">';
if ($GLOBALS['nb_insert'] > 0) ; $msg_enr_modifs.=$nb_insert." ajout de lignes de valeurs<br />";
if ($GLOBALS['nb_update'] > 0) ;$msg_enr_modifs.=$nb_update." lignes de valeurs modifiées<br />";
if ($GLOBALS['nb_delete'] > 0) ; $msg_enr_modifs.=$nb_delete." lignes de valeurs suprimées<br />";
$msg_enr_modifs.='</font>';
ThEBiShOp
Messages postés
8378
Date d'inscription
jeudi 22 mars 2007
Statut
Contributeur
Dernière intervention
8 février 2021
1 566
18 avril 2013 à 11:03
18 avril 2013 à 11:03
sinon t'enlèves les globals vu que ça sert à rien...
3x que je le dis quand même :/
3x que je le dis quand même :/
dans le 2 cas avec ou bien sans global il m'affiche toujours le même erreur , vous savez pas d'ou vient cet erreur :((((((
ThEBiShOp
Messages postés
8378
Date d'inscription
jeudi 22 mars 2007
Statut
Contributeur
Dernière intervention
8 février 2021
1 566
18 avril 2013 à 11:07
18 avril 2013 à 11:07
remontre ton code sans les globals.
Mihawk
Messages postés
4315
Date d'inscription
mercredi 29 mars 2006
Statut
Contributeur
Dernière intervention
6 janvier 2015
846
18 avril 2013 à 11:21
18 avril 2013 à 11:21
Fais pas une fixette là-dessus, ça change rien
voilà le code sans Global
<?php
require_once('dbconnect.php');
?>
<?php
$msg_enr_modifs="";
//// -- partie enregistrement des modifs scénario ----
if(isset($_POST['enr_modifs'])){
//le bouton enr modifs a été cliqué
$cof_eau_du_sol = $_POST['cof_eau_du_sol'];
$niv_de_debordement = $_POST['niv_de_debordement'];
$taux_concentration = $_POST['taux_concentration'];
$pour_etanchite = $_POST['pour_etanchite'];
$niv_depart = $_POST['niv_depart'];
$sal_sol = $_POST['sal_sol'];
$but = $_POST['but'];
$choix_sortie = $_POST['choix_sortie'];
$origine_iragation = $_POST['origine_iragation'];
$sal_eau_entre = $_POST['sal_eau_entre'];
$condition_climatique = $_POST['condition_climatique'];
$annee = $_POST['annee'];
//$Mois = $_POST['Mois'];
$titre=$_POST['titre'];
$commentaire=$_POST['commentaire'];
//on UPDATE d'abord dans la table scenario les modifs éventuelles de titre et commentaire
$sql_1="UPDATE scenario SET titre='".$titre."',commentaire='".$commentaire."' WHERE id_scenario='".$id_scenario."'";
$requete1 = $db->query($sql_1) ;
//puis Update ou insert ou Delete dans table valeurs
//init compteurs
$nb_insert=0;
$nb_update=0;
$nb_delete=0;
// 3 cas: ajout, modif, supression
if(empty($cof_eau_du_sol) && empty($niv_de_debordement) && empty($taux_concentration)&& empty($pour_etanchite)&& empty($niv_depart)
&& empty($sal_sol)&& empty($but)&& empty($choix_sortie)&& empty($origine_iragation)&& empty($sal_eau_entre)&& empty($condition_climatique)){
//les champs ne sont pas vides mais étaient vides avant, c'est un ajout donc INSERT
$sql='insert into valeurs_a_saisir(Id_valeur,cof_eau_du_sol, niv_de_debordement, taux_concentration, pour_etanchite, niv_depart, sal_sol, but, choix_sortie, origine_iragation, sal_eau_entre, condition_climatique, annee, Mois,id_scenario) values ("'.$cof_eau_du_sol.'", "'.$niv_de_debordement.'", "'.$taux_concentration.'", "'.$pour_etanchite.'", "'.$niv_depart.'", "'.$sal_sol.'", "'.$arraybut[$mois].'", "'.$choix_sortie.'", "'.$origine_iragation.'", "'.$sal_eau_entre.'", "'.$condition_climatique.'", "'.$annee.'", "'.$Mois.'","'.$id_scenario.'")';
$requete = $db->query($sql) ;//or die( mysql_error() );
}
echo "<br />".$sql;
$requete = $db->query($sql) ;
$nb_insert++;
//}
//un ou les champs ont eté modifiés, donc UPDATE
$sql="UPDATE valeurs SET cof_eau_du_sol='".$cof_eau_du_sol."', niv_de_debordement='".$niv_de_debordement."' taux_concentration='".$taux_concentration."'pour_etanchite='".$pour_etanchite."'niv_depart='".$niv_depart."'sal_sol='".$sal_sol."'but='".$arraybut[$mois]."'choix_sortie='".$choix_sortie."'origine_iragation='".$origine_iragation."'sal_eau_entre='".$sal_eau_entre."'condition_climatique='".$condition_climatique."'annee='".$annee."' WHERE id_scenario ='".$id_scenario."' AND mois='".$mois."'";
echo "<br />".$sql;
$requete = $db->query($sql) ;
$nb_update++;
if(empty($cof_eau_du_sol) && empty($niv_de_debordement) && empty($taux_concentration)&& empty($pour_etanchite)&& empty($niv_depart)
&& empty($sal_sol)&& empty($but)&& empty($choix_sortie)&& empty($origine_iragation)&& empty($sal_eau_entre)&& empty($condition_climatique)){
//les champs sont vides mais n'étaient pas vides avant, c'est une suppression de valeurs donc DELETE
$sql="DELETE FROM valeurs_a_saisir WHERE id_scenario ='".$id_scenario."'";
echo "<br />".$sql;
$requete = $db->query($sql) ;
$nb_delete++;
}
}
//message du nombre d'enr dans la BDD
$msg_enr_modifs='<font color="green">';
if($nb_insert>0) $msg_enr_modifs.=$nb_insert." ajout de lignes de valeurs<br />";
if($nb_update>0) $msg_enr_modifs.=$nb_update." lignes de valeurs modifiées<br />";
if($nb_delete>0) $msg_enr_modifs.=$nb_delete." lignes de valeurs suprimées<br />";
$msg_enr_modifs.='</font>';
// c'est ici qu'il m'affiche l'erreur
///// ---------------------
////----- Partie recherche des scenari pour cet utilisateur --------
//recup id_utilisateur dans la variable de session
$Id_user=$_SESSION['Id_user'];// ici même erreur
//recup du choix eventuel dans la liste déroulante scénario
if(isset($_POST['liste_scenario'])){
$scenario=$_POST['liste_scenario'];
}else{
$scenario="";
}
$sql="SELECT * FROM scenario WHERE Id_user='".$Id_user."' ";
//echo "<br />".$sql;
$requete = $db->query($sql);
//comptage du nb de scénario trouvé pour cet utilisateur
$row_cnt = mysqli_num_rows($requete);
if($row_cnt>0){
//si il y un ou des scénario, on affiche la page avec la liste déroulante
?>
<?php
require_once('dbconnect.php');
?>
<?php
$msg_enr_modifs="";
//// -- partie enregistrement des modifs scénario ----
if(isset($_POST['enr_modifs'])){
//le bouton enr modifs a été cliqué
$cof_eau_du_sol = $_POST['cof_eau_du_sol'];
$niv_de_debordement = $_POST['niv_de_debordement'];
$taux_concentration = $_POST['taux_concentration'];
$pour_etanchite = $_POST['pour_etanchite'];
$niv_depart = $_POST['niv_depart'];
$sal_sol = $_POST['sal_sol'];
$but = $_POST['but'];
$choix_sortie = $_POST['choix_sortie'];
$origine_iragation = $_POST['origine_iragation'];
$sal_eau_entre = $_POST['sal_eau_entre'];
$condition_climatique = $_POST['condition_climatique'];
$annee = $_POST['annee'];
//$Mois = $_POST['Mois'];
$titre=$_POST['titre'];
$commentaire=$_POST['commentaire'];
//on UPDATE d'abord dans la table scenario les modifs éventuelles de titre et commentaire
$sql_1="UPDATE scenario SET titre='".$titre."',commentaire='".$commentaire."' WHERE id_scenario='".$id_scenario."'";
$requete1 = $db->query($sql_1) ;
//puis Update ou insert ou Delete dans table valeurs
//init compteurs
$nb_insert=0;
$nb_update=0;
$nb_delete=0;
// 3 cas: ajout, modif, supression
if(empty($cof_eau_du_sol) && empty($niv_de_debordement) && empty($taux_concentration)&& empty($pour_etanchite)&& empty($niv_depart)
&& empty($sal_sol)&& empty($but)&& empty($choix_sortie)&& empty($origine_iragation)&& empty($sal_eau_entre)&& empty($condition_climatique)){
//les champs ne sont pas vides mais étaient vides avant, c'est un ajout donc INSERT
$sql='insert into valeurs_a_saisir(Id_valeur,cof_eau_du_sol, niv_de_debordement, taux_concentration, pour_etanchite, niv_depart, sal_sol, but, choix_sortie, origine_iragation, sal_eau_entre, condition_climatique, annee, Mois,id_scenario) values ("'.$cof_eau_du_sol.'", "'.$niv_de_debordement.'", "'.$taux_concentration.'", "'.$pour_etanchite.'", "'.$niv_depart.'", "'.$sal_sol.'", "'.$arraybut[$mois].'", "'.$choix_sortie.'", "'.$origine_iragation.'", "'.$sal_eau_entre.'", "'.$condition_climatique.'", "'.$annee.'", "'.$Mois.'","'.$id_scenario.'")';
$requete = $db->query($sql) ;//or die( mysql_error() );
}
echo "<br />".$sql;
$requete = $db->query($sql) ;
$nb_insert++;
//}
//un ou les champs ont eté modifiés, donc UPDATE
$sql="UPDATE valeurs SET cof_eau_du_sol='".$cof_eau_du_sol."', niv_de_debordement='".$niv_de_debordement."' taux_concentration='".$taux_concentration."'pour_etanchite='".$pour_etanchite."'niv_depart='".$niv_depart."'sal_sol='".$sal_sol."'but='".$arraybut[$mois]."'choix_sortie='".$choix_sortie."'origine_iragation='".$origine_iragation."'sal_eau_entre='".$sal_eau_entre."'condition_climatique='".$condition_climatique."'annee='".$annee."' WHERE id_scenario ='".$id_scenario."' AND mois='".$mois."'";
echo "<br />".$sql;
$requete = $db->query($sql) ;
$nb_update++;
if(empty($cof_eau_du_sol) && empty($niv_de_debordement) && empty($taux_concentration)&& empty($pour_etanchite)&& empty($niv_depart)
&& empty($sal_sol)&& empty($but)&& empty($choix_sortie)&& empty($origine_iragation)&& empty($sal_eau_entre)&& empty($condition_climatique)){
//les champs sont vides mais n'étaient pas vides avant, c'est une suppression de valeurs donc DELETE
$sql="DELETE FROM valeurs_a_saisir WHERE id_scenario ='".$id_scenario."'";
echo "<br />".$sql;
$requete = $db->query($sql) ;
$nb_delete++;
}
}
//message du nombre d'enr dans la BDD
$msg_enr_modifs='<font color="green">';
if($nb_insert>0) $msg_enr_modifs.=$nb_insert." ajout de lignes de valeurs<br />";
if($nb_update>0) $msg_enr_modifs.=$nb_update." lignes de valeurs modifiées<br />";
if($nb_delete>0) $msg_enr_modifs.=$nb_delete." lignes de valeurs suprimées<br />";
$msg_enr_modifs.='</font>';
// c'est ici qu'il m'affiche l'erreur
///// ---------------------
////----- Partie recherche des scenari pour cet utilisateur --------
//recup id_utilisateur dans la variable de session
$Id_user=$_SESSION['Id_user'];// ici même erreur
//recup du choix eventuel dans la liste déroulante scénario
if(isset($_POST['liste_scenario'])){
$scenario=$_POST['liste_scenario'];
}else{
$scenario="";
}
$sql="SELECT * FROM scenario WHERE Id_user='".$Id_user."' ";
//echo "<br />".$sql;
$requete = $db->query($sql);
//comptage du nb de scénario trouvé pour cet utilisateur
$row_cnt = mysqli_num_rows($requete);
if($row_cnt>0){
//si il y un ou des scénario, on affiche la page avec la liste déroulante
?>
ThEBiShOp
Messages postés
8378
Date d'inscription
jeudi 22 mars 2007
Statut
Contributeur
Dernière intervention
8 février 2021
1 566
18 avril 2013 à 11:15
18 avril 2013 à 11:15
tes variables sont déclarées dans :
if (isset($_POST['enr_modifs'])) {
si tu ne rentres pas là dedans, tes variables seront undefined.
if (isset($_POST['enr_modifs'])) {
si tu ne rentres pas là dedans, tes variables seront undefined.
alors j'élimine la if (isset($_POST['enr_modifs'])) ????
ThEBiShOp
Messages postés
8378
Date d'inscription
jeudi 22 mars 2007
Statut
Contributeur
Dernière intervention
8 février 2021
1 566
18 avril 2013 à 11:20
18 avril 2013 à 11:20
bah si t'estimes que t'en as pas besoin, peut être...
Mihawk
Messages postés
4315
Date d'inscription
mercredi 29 mars 2006
Statut
Contributeur
Dernière intervention
6 janvier 2015
846
18 avril 2013 à 11:21
18 avril 2013 à 11:21
Déplace l'initialisation des compteurs au début du code :
<?php $msg_enr_modifs=""; //init compteurs $nb_insert=0; $nb_update=0; $nb_delete=0;
ThEBiShOp
Messages postés
8378
Date d'inscription
jeudi 22 mars 2007
Statut
Contributeur
Dernière intervention
8 février 2021
1 566
Modifié par ThEBiShOp le 18/04/2013 à 11:22
Modifié par ThEBiShOp le 18/04/2013 à 11:22
oui, mieux ^^
mais je pense que si tu ne fais pas ton traitement, il ne devrait pas y avoir d'inscription en base, si ?
mais je pense que si tu ne fais pas ton traitement, il ne devrait pas y avoir d'inscription en base, si ?
j'ai éliminé la partie if (isset($_POST['enr_modifs']))
il m'a afficher que tous mes variables son Undifined non seulement les 3 compteurs
il m'a afficher que tous mes variables son Undifined non seulement les 3 compteurs
Merci Mihawk, merci ThEBiShOp je faisais comme tu m'as dit Mihawk là c'est bon pour les compteurs mais pour l'id_user tjrs il es undifined
//recup id_utilisateur dans la variable de session
$Id_user=$_SESSION['Id_user'];// ici l'erreur
//recup id_utilisateur dans la variable de session
$Id_user=$_SESSION['Id_user'];// ici l'erreur
Mihawk
Messages postés
4315
Date d'inscription
mercredi 29 mars 2006
Statut
Contributeur
Dernière intervention
6 janvier 2015
846
18 avril 2013 à 11:27
18 avril 2013 à 11:27
C'est un "Undefined variable" ou un "Undefined index" ce coup-là ?
ThEBiShOp
Messages postés
8378
Date d'inscription
jeudi 22 mars 2007
Statut
Contributeur
Dernière intervention
8 février 2021
1 566
Modifié par ThEBiShOp le 18/04/2013 à 11:29
Modifié par ThEBiShOp le 18/04/2013 à 11:29
$_SESSION['Id_user'] sort de nulle part, c'est normal
il te faut un session_start(); au début de ton code de préférence, et il faut que tu instancies cette variable quelque part dans ton code, sinon ça ne va pas marcher
il te faut un session_start(); au début de ton code de préférence, et il faut que tu instancies cette variable quelque part dans ton code, sinon ça ne va pas marcher
Mihawk: il m'affiche Undefined index:
ThEBiShOp : pour la sussion_start() j'ai inclue une page head dans la quelle il y la sussion_start()
ThEBiShOp : pour la sussion_start() j'ai inclue une page head dans la quelle il y la sussion_start()
ThEBiShOp
Messages postés
8378
Date d'inscription
jeudi 22 mars 2007
Statut
Contributeur
Dernière intervention
8 février 2021
1 566
18 avril 2013 à 11:33
18 avril 2013 à 11:33
et tu mets quelque chose dans $_SESSION['Id_user'] un moment donné dans tes pages ?
Mihawk
Messages postés
4315
Date d'inscription
mercredi 29 mars 2006
Statut
Contributeur
Dernière intervention
6 janvier 2015
846
18 avril 2013 à 11:37
18 avril 2013 à 11:37
Il faut gérer le cas où tu n'as pas de Id_User :
///// --------------------- ////----- Partie recherche des scenari pour cet utilisateur -------- $Id_user = (isset($_SESSION['Id_user'])) ? $_SESSION['Id_user'] : null; //recup du choix eventuel dans la liste déroulante scénario if ($Id_user != null){ if(isset($_POST['liste_scenario'])){ $scenario=$_POST['liste_scenario']; } else { $scenario=""; } $sql="SELECT * FROM scenario WHERE Id_user='".$Id_user."' "; //echo "<br />".$sql; $requete = $db->query($sql); //comptage du nb de scénario trouvé pour cet utilisateur $row_cnt = mysqli_num_rows($requete); if($row_cnt>0){
en fait pour la page head il juste session_start();
et j'ai la page accueil dans la quelle si un user est connecté j'affiche tous les pages que lui concerne du coup j'ai utilisé
<?php
// si l'utilisateur est connecté comme simple utilisateur ...
if($_SESSION['privilege'] == "user") { // Affichage conditionnel : si et seulement si l'utilisateur est connecté avec le privilege utilisateur simple ?>
<strong><u>En tant qu'utilisateur simple vous ne pouvez pas effectuer d'actions</u></strong>
<?php }
et j'ai la page accueil dans la quelle si un user est connecté j'affiche tous les pages que lui concerne du coup j'ai utilisé
<?php
// si l'utilisateur est connecté comme simple utilisateur ...
if($_SESSION['privilege'] == "user") { // Affichage conditionnel : si et seulement si l'utilisateur est connecté avec le privilege utilisateur simple ?>
<strong><u>En tant qu'utilisateur simple vous ne pouvez pas effectuer d'actions</u></strong>
<?php }
merci Mihawk c'est bon il m'affiche plus l'erreur de Undfined index il m'a afficher le tableau de valeur normal et qd j'ai inséré mes valeurs et j'ai cliqué sur enregistré il m'a afficher un autre erreur "Notice: Undefined index: Id_user in C:"
et cet erreur vient de cette ligne de code dans ma deuxièmme page .
//on enregistre d'abord dans la table scenario
$sql_1="INSERT INTO scenario (id_scenario,Id_user,titre,commentaire) VALUES('','".$_SESSION['user']."','".$titre."','".$commentaire."')";
echo $sql_1;
pouratnt dans mes 2 table ( User et scenario) sql j'en ai l'id_user
et cet erreur vient de cette ligne de code dans ma deuxièmme page .
//on enregistre d'abord dans la table scenario
$sql_1="INSERT INTO scenario (id_scenario,Id_user,titre,commentaire) VALUES('','".$_SESSION['user']."','".$titre."','".$commentaire."')";
echo $sql_1;
pouratnt dans mes 2 table ( User et scenario) sql j'en ai l'id_user
Mihawk
Messages postés
4315
Date d'inscription
mercredi 29 mars 2006
Statut
Contributeur
Dernière intervention
6 janvier 2015
846
18 avril 2013 à 12:12
18 avril 2013 à 12:12
Tu respectes bien les majuscules / minuscules dans les noms de champ de ta table ?
je te donne le code de la 2 émme page :
<?php
require_once('dbconnect.php');
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="styles.css" rel="stylesheet" type="text/css">
</head>
<body>
<p align="center" class="titre"><strong>- : : : Veuillez remplir ce tableau : : : -</strong></p>
<?php
//On verifie que le formulaire a été envoye
if(isset($_POST['enregistrer']))
{
// on récupère les valeurs qui ont poster
$cof_eau_du_sol = $_POST['cof_eau_du_sol'];
$niv_de_debordement = $_POST['niv_de_debordement'];
$taux_concentration = $_POST['taux_concentration'];
$pour_etanchite = $_POST['pour_etanchite'];
$niv_depart = $_POST['niv_depart'];
$sal_sol = $_POST['sal_sol'];
$but = $_POST['but'];
$choix_sortie = $_POST['choix_sortie'];
$origine_iragation = $_POST['origine_iragation'];
$sal_eau_entre = $_POST['sal_eau_entre'];
$condition_climatique = $_POST['condition_climatique'];
$annee = $_POST['annee'];
//$arrayMois = $_POST['Mois'];
$titre=$_POST['titre'];
$commentaire=$_POST['commentaire'];
//on enregistre d'abord dans la table scenario
$sql_1="INSERT INTO scenario (id_scenario,Id_user,titre,commentaire) VALUES('','".$_SESSION['Id_user']."','".$titre."','".$commentaire."')";
echo $sql_1; // ici je faisais echo pour voir quoi il m'affiche
$requete1 = $db->query($sql_1) ;
//recup de l'ID
$id_scenario= mysql_insert_id();
$sql='insert into valeurs_a_saisir(id_valeur,cof_eau_du_sol, niv_de_debordement, taux_concentration, pour_etanchite, niv_depart, sal_sol, but, choix_sortie, origine_iragation, sal_eau_entre, condition_climatique, annee, id_scenario) values ("'.$cof_eau_du_sol.'", "'.$niv_de_debordement.'", "'.$taux_concentration.'", "'.$pour_etanchite.'", "'.$niv_depart.'", "'.$sal_sol.'", "'.$but.'", "'.$choix_sortie.'", "'.$origine_iragation.'", "'.$sal_eau_entre.'", "'.$condition_climatique.'", "'.$annee.'", "'.$id_scenario.'")';
$requete = $db->query($sql) ;//or die( mysql_error() );
}
?>
<?php
require_once('dbconnect.php');
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="styles.css" rel="stylesheet" type="text/css">
</head>
<body>
<p align="center" class="titre"><strong>- : : : Veuillez remplir ce tableau : : : -</strong></p>
<?php
//On verifie que le formulaire a été envoye
if(isset($_POST['enregistrer']))
{
// on récupère les valeurs qui ont poster
$cof_eau_du_sol = $_POST['cof_eau_du_sol'];
$niv_de_debordement = $_POST['niv_de_debordement'];
$taux_concentration = $_POST['taux_concentration'];
$pour_etanchite = $_POST['pour_etanchite'];
$niv_depart = $_POST['niv_depart'];
$sal_sol = $_POST['sal_sol'];
$but = $_POST['but'];
$choix_sortie = $_POST['choix_sortie'];
$origine_iragation = $_POST['origine_iragation'];
$sal_eau_entre = $_POST['sal_eau_entre'];
$condition_climatique = $_POST['condition_climatique'];
$annee = $_POST['annee'];
//$arrayMois = $_POST['Mois'];
$titre=$_POST['titre'];
$commentaire=$_POST['commentaire'];
//on enregistre d'abord dans la table scenario
$sql_1="INSERT INTO scenario (id_scenario,Id_user,titre,commentaire) VALUES('','".$_SESSION['Id_user']."','".$titre."','".$commentaire."')";
echo $sql_1; // ici je faisais echo pour voir quoi il m'affiche
$requete1 = $db->query($sql_1) ;
//recup de l'ID
$id_scenario= mysql_insert_id();
$sql='insert into valeurs_a_saisir(id_valeur,cof_eau_du_sol, niv_de_debordement, taux_concentration, pour_etanchite, niv_depart, sal_sol, but, choix_sortie, origine_iragation, sal_eau_entre, condition_climatique, annee, id_scenario) values ("'.$cof_eau_du_sol.'", "'.$niv_de_debordement.'", "'.$taux_concentration.'", "'.$pour_etanchite.'", "'.$niv_depart.'", "'.$sal_sol.'", "'.$but.'", "'.$choix_sortie.'", "'.$origine_iragation.'", "'.$sal_eau_entre.'", "'.$condition_climatique.'", "'.$annee.'", "'.$id_scenario.'")';
$requete = $db->query($sql) ;//or die( mysql_error() );
}
?>