prob de variable de session

prob de variable de session - PHP - Programmation

Marsh Posté le 15-06-2004 à 16:07:07    

bonjour,
 
g deux pages gestsuivindf.php qui affiche la liste des notes de frais et qui n'est accessible que par la direction selon le login.
et sauve_ndf.php qui enregistre la validation ou non de la note de frais. Mon prob c que qd une personne soumet une ndf à la direction, celle ci la valide ou la refuse. Jusque la c cool. Qd on recharge gestsuivindf.php, la variable change et gestsuivindf.php s'affcihe avec le login de la personne qui soumettait la ndf.
 
je voudrait savoir pkoi et si on peut forcer la recharge avec le login direction?
 
merci

Reply

Marsh Posté le 15-06-2004 à 16:07:07   

Reply

Marsh Posté le 15-06-2004 à 16:16:52    

si vous voulez + de précision je peux vous filer l'adresse avec login et mdp pour tester

Reply

Marsh Posté le 15-06-2004 à 16:19:02    

il faut tester les variables de sessions à l'entrée dans gestsuivindf.php. Si ce n'est pas la direction, il faut détruire la session et rediriger vers la page de login


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
Reply

Marsh Posté le 15-06-2004 à 16:37:17    

tu as bien mis un session_start() sur les deux pages?
(si j'ai bien compris il y a deux fichiers différents?)

Reply

Marsh Posté le 15-06-2004 à 16:57:49    

lut T509,
a l'entree g bien le login de direction. mais lorsque on entre dans la page sauvendf le login change. ze capte plus grand chose. ya des session start sur toutes mes pages.

Reply

Marsh Posté le 15-06-2004 à 16:58:52    

en fait ya 3 pages : une form_ndf qui correspond au formulaire de note de frais.

Reply

Marsh Posté le 15-06-2004 à 17:15:33    

ca fait gestsuivindf --> form_ndf --> sauve_ndf --> recharge gestsuivindf

Reply

Marsh Posté le 16-06-2004 à 09:37:19    

svp aidez moi !!! c le dernier bug qu'il me reste....

Reply

Marsh Posté le 16-06-2004 à 09:41:40    

donne ton code, les messges d'erreur, ...


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
Reply

Marsh Posté le 16-06-2004 à 09:57:22    

voici le code épuré de sauve_ndf :
<? session_start();
$log = $_SESSION['login'];
 
include("sql.inc.php" );
include("authenticate.php" );
print("<script language='javascript'>window.alert('login1 : $log');</script>" );
if ($mode=='add') {
 if (file_exists($fichier)) {
     print ("<script language='javascript'>alert('Le fichier $fichier existe déja'); window.history.back();</script>" );
     exit;
 }
 else {
 $fd = fopen ("$fichier","a+b" );
 }
}
else if($mode=='modif' || $mode=='valid' || $mode=='corriger' || $mode=='refuser')
{
$fd = fopen ("$fichier","w" );
}
 
//ouverture du fichier
 
$j=1;
if (count($HTTP_POST_VARS) != 0 ) {
 $form_args=$HTTP_POST_VARS;
} else {
 $form_args=$HTTP_GET_VARS;
}
// on ignore les 3 premiers paramètres passés : nom du fichier phpid et action
$nb_args=5;
for ($i=0;$i<=$nb_args;$i++){next($form_args);}
 
for ($i=0;$i<count($form_args);$i++) {
 $v = current($form_args);
 $content = $v;
 $content = "$content|";
 if($j=='9') {
  $content = "$content\n";
  $j=0;
 }
 $j++;
 
 $content = stripslashes($content);
 if (!fwrite($fd, $content)) {
       print "Impossible d'&eacute;crire dans le fichier ($fichier)";
       exit;
    }
next($form_args);  
}
// Enregistrement dans la base de données
// mode ajout
if ($mode=='add') {
 $sql="INSERT INTO intra_ndf VALUES ('','$fichier','$matricule','$etat','$annee','$mois')";
 if (mysql_query($sql)) {
  print("<script language='javascript'>window.alert('Enregistrement dans la base OK'); window.opener.location.reload();window.close();</script>" );
   
 }
 
}
// mode modification
else if ($mode=='modif') {
 $sql="UPDATE intra_ndf SET etat='$etat' where fichier='$fichier'";
 if (mysql_query($sql)) {
  print("<script language='javascript'>window.alert('Enregistrement dans la base OK'); window.opener.location.reload();window.close();</script>" );
 }
 
 
}
// mode validation
else if ($mode=='valid') {
 $sql="UPDATE intra_ndf SET etat='$etat' where fichier='$fichier'";
 if (mysql_query($sql)) {
  print("<script language='javascript'>window.alert('Enregistrement dans la base OK');</script>" );
   
  //header("Location:../gestsuivindf.php" );
 }  
 
}
// mode corriger
else if ($mode=='corriger') {
 $sql="UPDATE intra_ndf SET etat='$etat' where fichier='$fichier'";
 if (mysql_query($sql)) {
  print("<script language='javascript'>window.alert('Enregistrement dans la base OK'); window.opener.location.reload(); window.open('form_ndf.php?login=$log&mode=valid&fichier=$fichier&annee=$annee&mois=$mois');window.close();</script>" );
 }
}
//mode refuser
else if ($mode=='refuser') {
 $sql="UPDATE intra_ndf SET etat='$etat' where fichier='$fichier'";
 if (mysql_query($sql)) {
  print("<script language='javascript'>window.alert('Enregistrement dans la base OK'); window.opener.location.reload(); window.close();</script>" );
 }
}
fclose($fd);
 
?>

Reply

Marsh Posté le 16-06-2004 à 09:57:22   

Reply

Marsh Posté le 16-06-2004 à 10:02:48    

et voila le code non epure de form_ndf :
<? session_start();
include("sql.inc.php" );
include("authenticate.php" );  
$log = $_SESSION['login'];
print("login : ".$log);
if($mode<>'add') {
if($db <>0)
{
 
 $request = "select matricule from intra_ndf where fichier='$fichier'";
 $result = mysql_query($request);
 if($result <> FALSE) {
    while ($y=mysql_fetch_array($result)) {
   $matricule=$y["matricule"];
   $request2 = "select * from intra_users_intranet where matricule='$matricule'";
   $result2 = mysql_query($request2);
   $users_tbl= mysql_fetch_array($result2);
           $nom=$users_tbl['nom'];
           $prenom=$users_tbl['prenom'];
           $login=$users_tbl['login'];
           $matricule=$users_tbl['matricule'];
       }
   }
else print("pb" );  
}
}
?>
<html>
<head>
<title>NOTE DE FRAIS</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<LINK REL=stylesheet TYPE="text/css" HREF="../ndf.css">
<?
if (empty($annee)){$annee = date("y" );}
if (empty($mois)) {$mois = date("m" );}
$mois_tbl=array('Janvier','F&eacute;vrier','Mars','Avril','Mai','Juin','Juillet','Aout','Septembre','Octobre','Novembre','D&eacute;cembre');
$mois_tbl2=array('01','02','03','04','05','06','07','08','09','10','11','12');
$NbrJours = date("t", mktime(0,0,0,$mois,1,$annee));
$b=date("ym", mktime(0,0,0,$mois,1,$annee));
$firstdate=date("d/m/Y",mktime(0,0,0,$mois,1,$annee));
$lastdate=date("d/m/Y",mktime(0,0,0,$mois+1,0,$annee));
 
print("<SCRIPT LANGUAGE=\"JavaScript\">" );
for ($i = 1; $i <= $NbrJours ; $i++)
{
$id=$b.$i;
 
echo " function calc$i() { \n";
echo " document.form.".$login.$id."9.value = Number(document.form.".$login.$id."2.value) + Number(document.form.".$login.$id."3.value) + Number(document.form.".$login.$id."4.value) + Number(document.form.".$login.$id."5.value) + Number(document.form.".$login.$id."6.value) +  Number(document.form.".$login.$id."7.value) + Number(document.form.".$login.$id."8.value)    } \n\n";
}
 
echo "function calcT() { \n";
echo " document.form.WLT.value = ";
 
for ($i = 1; $i <= $NbrJours ; $i++)
{
$id=$b.$i;
echo "Number(document.form.".$login.$id."9.value) + ";;
}
echo " \" €uros\" }\n\n";
 
?>
</script>
 
</head>
 
<body>
 
<div align="center">
  <table width="650"  border="0" align="center" cellpadding="0" cellspacing="0">
    <tr>
      <td valign="bottom"><table width="182"  border="1" align="left" cellpadding="5" cellspacing="0" bordercolor="#333333">
        <tr>
          <td>            <table width="100%"  border="0" cellpadding="4" cellspacing="0">
            <tr>
              <td width="42%"><strong>NOM :</strong></td>
              <td width="58%"><? print($nom); ?></td>
            </tr>
            <tr>
              <td><strong>Pr&eacute;nom :</strong></td>
              <td><? print($prenom); ?></td>
            </tr>
            <tr>
              <td><strong>Matricule :</strong></td>
              <td><? print($matricule); ?></td>
            </tr>
          </table>
       </td>
        </tr>
        <tr>
          <td><table width="100%"  border="0" cellspacing="0">
              <tr>
                <td><strong>PERIODE </strong>:</td>
                <td><? print("du $firstdate<br>au $lastdate" ); ?></td>
              </tr>
            </table></td>
        </tr>
      </table></td>
      <td width="450" align="center"><table width="250"  border="0" cellspacing="3">
        <tr>
          <td align="center"><img src="../images/logo-ndf.gif" width="210" height="80"></td>
        </tr>
        <tr>
          <td><table width="100%"  border="1" cellpadding="4" cellspacing="0" bordercolor="#333333">
            <tr>
              <td align="center"><strong>NOTE DE FRAIS </strong></td>
            </tr>
          </table></td>
        </tr>
      </table></td>
      <td width="182"><table width="100%"  border="1" cellpadding="3" cellspacing="0" bordercolor="#333333">
        <tr>
          <td width="44%"><strong>ANNEE : </strong></td>
    <? //Debut du formulaire selection annee en mode add
    if ($mode=='add'){
    print("<form name=\"form1\"><td valign=\"middle\">" );
    print("<select name=\"menu_annee\" onChange=\"location.href='?login=$log&mode=$mode'+document.form1.menu_annee.value+document.form2.menu_mois.value\">\n" );  
    print("<option value=\"&annee=04\" " );
    if ($annee=='04') {print("selected" );}
    print(">2004</option>\n" );
    print("<option value=\"&annee=05\" " );
    if ($annee=='05') {print("selected" );}
    print(">2005</option>\n" );
    print("<option value=\"&annee=06\" " );
    if ($annee=='06') {print("selected" );}
    print(">2006</option>\n" );
    print("</select></td></form>" );
         }
   else {
   print("<td valign=\"middle\">20$annee</td>" );
   }
    ?>
        </tr>
        <tr>
          <td><strong>MOIS : </strong></td>
    <? //Debut du formulaire selection mois en mode add
    if ($mode=='add'){
    print("<form name=\"form2\"><td valign=\"middle\"><select name=\"menu_mois\" onChange=\"location.href='?login=$log&mode=$mode'+document.form1.menu_annee.value+document.form2.menu_mois.value\">\n" );  
    for ($i=0;$i<=11;$i++) {
    $m = $i + 1;
     print("<option value=\"&mois=$mois_tbl2[$i]\" " );
     if ($mois==$mois_tbl2[$i]) {print("selected" );}
     print(">$mois_tbl[$i]</option>\n" );
    }
    print("</select></td></form>" );
    }
    else {
    $i=abs($mois)-1;
    print("<td valign=\"middle\">$mois_tbl[$i]</td>" );
    }
    ?>
     
        </tr>
      </table></td>
    </tr>
 
</table>  
<form action="" method="post" name="form">
<?  
$date = date("_ym", mktime(0,0,0,$mois,1,$annee));;
if (empty($fichier)) {
$fichier = "../ndf/ndf_$login$date.ndf";
}
 
?>  
<input type='hidden' name='login' value="<? print($log); ?>">
<input type='hidden' name='fichier' value="<? print($fichier); ?>">
<input type='hidden' name='mode' value="<? print($mode); ?>">
<input type='hidden' name='etat' id='etat' value="">
<input type='hidden' name='mois' value="<? print($mois); ?>">
<input type='hidden' name='annee' value="<? print($annee); ?>">
<table width='650' border='1' align='center' cellpadding='1' cellspacing='0' bordercolor="#333333">
  <tr align="center" valign="middle">
    <td rowspan="2"><strong>Date <br>
    </strong></td>
    <td rowspan="2"><strong>D&eacute;signation </strong></td>
    <td colspan="6"><strong>Montants d&eacute;taill&eacute;s des frais </strong></td>
    <td rowspan="2"><strong>Forfait</strong></td>
    <td rowspan="2" bgcolor="#6699FF"><strong>TOTAL</strong></td>
  </tr>
  <tr align="center" valign="middle">  
 <td colspan="2"><strong>Voiture (*)</strong></td>
    <td><strong>Parking Autoroute</strong></td>
    <td><strong>Frais de repas</strong></td>
    <td><strong> H&ocirc;tel</strong></td>
    <td><strong>Divers</strong></td>
  </tr>
  <tr align="center" valign="middle">  
    <td bgcolor="#CCCCCC">&nbsp;</td>
    <td bgcolor="#CCCCCC">&nbsp;</td>
    <td>Essence</td>
    <td>ou nbr kms</td>
    <td bgcolor="#CCCCCC">&nbsp;</td>
    <td bgcolor="#CCCCCC">&nbsp;</td>
    <td bgcolor="#CCCCCC">&nbsp;</td>
    <td bgcolor="#CCCCCC">&nbsp;</td>
    <td bgcolor="#CCCCCC">&nbsp;</td>
    <td bgcolor="#6699FF">&nbsp;</td>
  </tr>
   
<?PHP
if($mode=='modif' || $mode=='valid') {$fp=fopen($fichier,"r" );}  
for ($i = 1; $i <= $NbrJours ; $i++)
{
if($mode=='modif' || $mode=='valid') {
 $ligne = fgets($fp,1024); // On se déplace d'une ligne  
 $var = explode("|",$ligne); // Champs séparés par |, on en fait un tableau  
 }
 if($mode=='add'){$var=array('','','','','','','','','0.00');}
$id=date("ym", mktime(0,0,0,$mois,1,$annee)).$i;
echo " <tr align='center' valign='middle'> \n";
echo " <td> <b>$i/$mois/$annee</b> </td> \n";  
echo " <td> <input name='".$login.$id."1' type='text' size='20' value='".$var[0]."'></td> \n";
echo " <td> <input name='".$login.$id."2' type='text' size='5' onKeyUp='javascript:calc$i();calcT();verifvoit(\"".$login.$id."2\",\"".$login.$id."3\" )' onBlur='javascript:verifnum(\"".$login.$id."2\" )' value='".$var[1]."'></td> \n";
echo " <td> <input name='".$login.$id."3' type='text' size='5' onKeyUp='javascript:calc$i();calcT();verifvoit(\"".$login.$id."2\",\"".$login.$id."3\" )' onBlur='javascript:verifnum(\"".$login.$id."3\" )' value='".$var[2]."'></td> \n";
echo " <td> <input name='".$login.$id."4' type='text' size='5' onKeyUp='javascript:calc$i();calcT()' onBlur='javascript:verifnum(\"".$login.$id."4\" )' value='".$var[3]."'></td> \n";
echo " <td> <input name='".$login.$id."5' type='text' size='5' onKeyUp='javascript:calc$i();calcT()' onBlur='javascript:verifnum(\"".$login.$id."5\" )' value='".$var[4]."'></td> \n";
echo " <td> <input name='".$login.$id."6' type='text' size='5' onKeyUp='javascript:calc$i();calcT()' onBlur='javascript:verifnum(\"".$login.$id."6\" )' value='".$var[5]."'></td> \n";
echo " <td> <input name='".$login.$id."7' type='text' size='5' onKeyUp='javascript:calc$i();calcT()' onBlur='javascript:verifnum(\"".$login.$id."7\" )' value='".$var[6]."'></td> \n";
echo " <td> <input name='".$login.$id."8' type='text' size='5' onKeyUp='javascript:calc$i();calcT()' onBlur='javascript:verifnum(\"".$login.$id."8\" )' value='".$var[7]."'></td> \n";
echo " <td bgcolor='#6699FF'> <input name='".$login.$id."9' type='text' size='10' value='".$var[8]."'> <font color='white'>€</font></td> \n";
echo " </tr> \n";
}
 
?>
 
  <tr align="center" valign="middle">  
    <td colspan="10">&nbsp;</td>
  </tr>
  <tr align="center" valign="middle">  
 
      <td>Total</td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td bgcolor="#6699FF">
   <?
   if($mode=='modif' || $mode=='valid') {
   $ligne = fgets($fp,1024); // On se déplace d'une ligne  
    $var = explode("|",$ligne); // Champs séparés par |, on en fait un tableau  
   }
 
  ?>
    <input name="WLT" type="text" size="14" value='<? if (!empty($var)) {print($var[0]);} ?>'>
      </td>
  </tr>
</table>
  <div align="center"><br>
    <script language="JavaScript">
function verif_form(etape)
{
 if (etape=='sauvegarder') {document.form.etat.value='0';}
 else if (etape=='envoyer') {document.form.etat.value='1'; }
 else if (etape=='valid') {document.form.etat.value='2'; }
 else if (etape=='corriger') {document.form.etat.value='1'; document.form.mode.value='corriger'}
 else if (etape=='refuser') {document.form.etat.value='3'; document.form.mode.value='refuser'}
 document.form.action='sauve_ndf.php';
 document.form.submit();
}
// Fonction verifiant la saisie des montants
function verifnum(champ)
{
 var a=document.form.elements[champ].value;
 if (isNaN(a)) {
  alert("Erreur de saisie. Vous devez saisir un nombre" );
  document.form.elements[champ].value="";
  document.form.elements[champ].focus();
  }
}
//Fonction vérifiant que l'utilisateur n'a saisi qu'un seul champs dans l'intitulé voiture : soit essence soit kms
function verifvoit(champ, champ2)
{
 var a=document.form.elements[champ].value;
 var b=document.form.elements[champ2].value;
 if ( a !== "" ) {
  if ( b !== "" ) {
   alert("Vous ne devez saisir qu'un des champs : Essence ou Kms" );
   document.form.elements[champ].value="";
   document.form.elements[champ2].value="";
  }
 }
}
</script>
<?
 
if($mode=='add' || $mode=='modif')
 {
 print(" <input type=\"button\" name=\"SAUVEGARDER\" value=\"SAUVEGARDER\" onclick=\"verif_form('sauvegarder')\">" );
 print("<br><br><input type=\"button\" name=\"ENVOYER\" value=\"ENVOYER A CONSEPT\" onclick=\"verif_form('envoyer')\">" );
 }
else if($mode=='valid') {
 print(" <input type=\"button\" name=\"CORRIGER\" value=\"CORRIGER\" onclick=\"verif_form('corriger')\">" );
 print(" <input type=\"button\" name=\"REFUSER\" value=\"REFUSER\" onclick=\"verif_form('refuser')\">" );
 print("<br><br><input type=\"button\" name=\"VALIDER\" value=\"VALIDER\" onclick=\"verif_form('valid')\">" );
 }
 ?>
  </div>
</form>
  <br>
  Bugs &amp; Remarques &agrave; envoyer &agrave; : <a href="mailto:wilfried.launay@consept-informatique.com">wilfried.launay@consept-informatique.com</a>
</body>
</html>
<? if($mode=='modif' || $mode=='valid') {fclose($fp);} ?>

Reply

Marsh Posté le 16-06-2004 à 10:03:58    

le login change à l'entree de sauve_ndf. ça doit venir alors de form_ndf...

Reply

Marsh Posté le 16-06-2004 à 10:28:12    

Et ya quoi dans authenticate.php ?
 
Parce que dans un de tes fichiers tu inclus authenticate.php avant de déclarer $log=$_SESSION['login'] et dans l'autre après.
 
De plus : merci de mettre ton code entre des balises [ cpp ] et[ /cpp]

Reply

Marsh Posté le 16-06-2004 à 10:34:42    

Code :
  1. <?
  2. $request=mysql_query("select * from intra_users_intranet where login='$login'" );
  3. if(mysql_num_rows($request)==0)
  4. { header("Location:login.php" ); }
  5. else {
  6. while ($row = mysql_fetch_array($request))
  7.  {
  8.  $user = $row["prenom"];
  9.  $profil = $row["typeaccess"];
  10.  $prenom = $row["prenom"];
  11.  $nom = $row["nom"];
  12.  $matricule = $row["matricule"];
  13.  $login = $row["login"];
  14.   }
  15.  }
  16. ?>

Reply

Marsh Posté le 16-06-2004 à 10:55:38    

Ben ça serait bien de donner l'adresse avec login et mdp pour voir.
 
Une chose bizarre déjà dans "form_ndf"

Code :
  1. <input type='hidden' name='login' value="<? print($log); ?>">


 
Pourquoi faire passer une valeur contenue dans ta session ($log=$_SESSION['login']) dans un champ caché (et le faire passer en $_POST, donc).
 
Je n'ai pas examiné tout ton code, mais essaie déjà d'éliminer cette ligne !
 
PS : et puis édite tes premiers messages avec du code en rajoutant les balises [ cpp] steuplait !


Message édité par deliriumtremens le 16-06-2004 à 10:55:57
Reply

Marsh Posté le 16-06-2004 à 11:31:33    

Code :
  1. <? session_start();
  2. $log = $_SESSION['login'];
  3. include("sql.inc.php" );
  4. include("authenticate.php" );
  5. print("<script language='javascript'>window.alert('login1 : $log');</script>" );
  6. if ($mode=='add') {
  7. if (file_exists($fichier)) {
  8.      print ("<script language='javascript'>alert('Le fichier $fichier existe déja'); window.history.back();</script>" );
  9.      exit;
  10. }
  11. else {
  12. $fd = fopen ("$fichier","a+b" );
  13. }
  14. }
  15. else if($mode=='modif' || $mode=='valid' || $mode=='corriger' || $mode=='refuser')
  16. {
  17. $fd = fopen ("$fichier","w" );
  18. }
  19. //ouverture du fichier  
  20. $j=1;
  21. if (count($HTTP_POST_VARS) != 0 ) {
  22. $form_args=$HTTP_POST_VARS;
  23. } else {
  24. $form_args=$HTTP_GET_VARS;
  25. }
  26. // on ignore les 3 premiers paramètres passés : nom du fichier phpid et action  
  27. $nb_args=5;
  28. for ($i=0;$i<=$nb_args;$i++){next($form_args);}
  29. for ($i=0;$i<count($form_args);$i++) {
  30. $v = current($form_args);
  31. $content = $v;
  32. $content = "$content|";
  33. if($j=='9') {
  34.   $content = "$content\n";
  35.   $j=0;
  36. }
  37. $j++;
  38.  
  39. $content = stripslashes($content);
  40. if (!fwrite($fd, $content)) {
  41.        print "Impossible d'&eacute;crire dans le fichier ($fichier)";
  42.        exit;
  43.     }
  44. next($form_args); 
  45. }
  46. // Enregistrement dans la base de données  
  47. // mode ajout  
  48. if ($mode=='add') {
  49. $sql="INSERT INTO intra_ndf VALUES ('','$fichier','$matricule','$etat','$annee','$mois')";
  50. if (mysql_query($sql)) {
  51.   print("<script language='javascript'>window.alert('Enregistrement dans la base OK'); window.opener.location.reload();window.close();</script>" );
  52.  
  53. }
  54.  
  55. }
  56. // mode modification  
  57. else if ($mode=='modif') {
  58. $sql="UPDATE intra_ndf SET etat='$etat' where fichier='$fichier'";
  59. if (mysql_query($sql)) {
  60.   print("<script language='javascript'>window.alert('Enregistrement dans la base OK'); window.opener.location.reload();window.close();</script>" );
  61. }
  62.  
  63.  
  64. }
  65. // mode validation  
  66. else if ($mode=='valid') {
  67. $sql="UPDATE intra_ndf SET etat='$etat' where fichier='$fichier'";
  68. if (mysql_query($sql)) {
  69.   print("<script language='javascript'>window.alert('Enregistrement dans la base OK');</script>" );
  70.  
  71.   //header("Location:../gestsuivindf.php" );  
  72.  
  73. }
  74. // mode corriger  
  75. else if ($mode=='corriger') {
  76. $sql="UPDATE intra_ndf SET etat='$etat' where fichier='$fichier'";
  77. if (mysql_query($sql)) {
  78.   print("<script language='javascript'>window.alert('Enregistrement dans la base OK'); window.opener.location.reload(); window.open('form_ndf.php?login=$log&mode=valid&fichier=$fichier&annee=$annee&mois=$mois');window.close();</script>" );
  79. }
  80. }
  81. //mode refuser  
  82. else if ($mode=='refuser') {
  83. $sql="UPDATE intra_ndf SET etat='$etat' where fichier='$fichier'";
  84. if (mysql_query($sql)) {
  85.   print("<script language='javascript'>window.alert('Enregistrement dans la base OK'); window.opener.location.reload(); window.close();</script>" );
  86. }
  87. }
  88. fclose($fd);
  89. ?>


pour sauve_ndf

Reply

Marsh Posté le 16-06-2004 à 11:32:39    

Code :
  1. <? session_start();
  2. include("sql.inc.php" );
  3. include("authenticate.php" ); 
  4. $log = $_SESSION['login'];
  5. print("login : ".$log);
  6. if($mode<>'add') {
  7. if($db <>0)
  8. {
  9. $request = "select matricule from intra_ndf where fichier='$fichier'";
  10. $result = mysql_query($request);
  11. if($result <> FALSE) {
  12.     while ($y=mysql_fetch_array($result)) {
  13.    $matricule=$y["matricule"];
  14.    $request2 = "select * from intra_users_intranet where matricule='$matricule'";
  15.    $result2 = mysql_query($request2);
  16.    $users_tbl= mysql_fetch_array($result2);
  17.            $nom=$users_tbl['nom'];
  18.            $prenom=$users_tbl['prenom'];
  19.            $login=$users_tbl['login'];
  20.            $matricule=$users_tbl['matricule'];
  21.        }
  22.    }
  23. else print("pb" ); 
  24. }
  25. }
  26. ?>
  27. <html>
  28. <head>
  29. <title>NOTE DE FRAIS</title>
  30. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  31. <LINK REL=stylesheet TYPE="text/css" HREF="../ndf.css">
  32. <?
  33. if (empty($annee)){$annee = date("y" );}
  34. if (empty($mois)) {$mois = date("m" );}
  35. $mois_tbl=array('Janvier','F&eacute;vrier','Mars','Avril','Mai','Juin','Juillet','Aout','Septembre','Octobre','Novembre','D&eacute;cembre');
  36. $mois_tbl2=array('01','02','03','04','05','06','07','08','09','10','11','12');
  37. $NbrJours = date("t", mktime(0,0,0,$mois,1,$annee));
  38. $b=date("ym", mktime(0,0,0,$mois,1,$annee));
  39. $firstdate=date("d/m/Y",mktime(0,0,0,$mois,1,$annee));
  40. $lastdate=date("d/m/Y",mktime(0,0,0,$mois+1,0,$annee));
  41. print("<SCRIPT LANGUAGE=\"JavaScript\">" );
  42. for ($i = 1; $i <= $NbrJours ; $i++)
  43. {
  44. $id=$b.$i;
  45. echo " function calc$i() { \n";
  46. echo " document.form.".$login.$id."9.value = Number(document.form.".$login.$id."2.value) + Number(document.form.".$login.$id."3.value) + Number(document.form.".$login.$id."4.value) + Number(document.form.".$login.$id."5.value) + Number(document.form.".$login.$id."6.value) +  Number(document.form.".$login.$id."7.value) + Number(document.form.".$login.$id."8.value)    } \n\n";
  47. }
  48. echo "function calcT() { \n";
  49. echo " document.form.WLT.value = ";
  50. for ($i = 1; $i <= $NbrJours ; $i++)
  51. {
  52. $id=$b.$i;
  53. echo "Number(document.form.".$login.$id."9.value) + ";;
  54. }
  55. echo " \" €uros\" }\n\n";
  56. ?>
  57. </script>
  58. </head>
  59. <body>
  60. <div align="center">
  61.   <table width="650"  border="0" align="center" cellpadding="0" cellspacing="0">
  62.     <tr>
  63.       <td valign="bottom"><table width="182"  border="1" align="left" cellpadding="5" cellspacing="0" bordercolor="#333333">
  64.         <tr>
  65.           <td>            <table width="100%"  border="0" cellpadding="4" cellspacing="0">
  66.             <tr>
  67.               <td width="42%"><strong>NOM :</strong></td>
  68.               <td width="58%"><? print($nom); ?></td>
  69.             </tr>
  70.             <tr>
  71.               <td><strong>Pr&eacute;nom :</strong></td>
  72.               <td><? print($prenom); ?></td>
  73.             </tr>
  74.             <tr>
  75.               <td><strong>Matricule :</strong></td>
  76.               <td><? print($matricule); ?></td>
  77.             </tr>
  78.           </table>
  79.        </td>
  80.         </tr>
  81.         <tr>
  82.           <td><table width="100%"  border="0" cellspacing="0">
  83.               <tr>
  84.                 <td><strong>PERIODE </strong>:</td>
  85.                 <td><? print("du $firstdate<br>au $lastdate" ); ?></td>
  86.               </tr>
  87.             </table></td>
  88.         </tr>
  89.       </table></td>
  90.       <td width="450" align="center"><table width="250"  border="0" cellspacing="3">
  91.         <tr>
  92.           <td align="center"><img src="../images/logo-ndf.gif" width="210" height="80"></td>
  93.         </tr>
  94.         <tr>
  95.           <td><table width="100%"  border="1" cellpadding="4" cellspacing="0" bordercolor="#333333">
  96.             <tr>
  97.               <td align="center"><strong>NOTE DE FRAIS </strong></td>
  98.             </tr>
  99.           </table></td>
  100.         </tr>
  101.       </table></td>
  102.       <td width="182"><table width="100%"  border="1" cellpadding="3" cellspacing="0" bordercolor="#333333">
  103.         <tr>
  104.           <td width="44%"><strong>ANNEE : </strong></td>
  105.     <? //Debut du formulaire selection annee en mode add  
  106.     if ($mode=='add'){
  107.     print("<form name=\"form1\"><td valign=\"middle\">" );
  108.     print("<select name=\"menu_annee\" onChange=\"location.href='?login=$log&mode=$mode'+document.form1.menu_annee.value+document.form2.menu_mois.value\">\n" ); 
  109.     print("<option value=\"&annee=04\" " );
  110.     if ($annee=='04') {print("selected" );}
  111.     print(">2004</option>\n" );
  112.     print("<option value=\"&annee=05\" " );
  113.     if ($annee=='05') {print("selected" );}
  114.     print(">2005</option>\n" );
  115.     print("<option value=\"&annee=06\" " );
  116.     if ($annee=='06') {print("selected" );}
  117.     print(">2006</option>\n" );
  118.     print("</select></td></form>" );
  119.          }
  120.    else {
  121.    print("<td valign=\"middle\">20$annee</td>" );
  122.    }
  123.     ?>
  124.         </tr>
  125.         <tr>
  126.           <td><strong>MOIS : </strong></td>
  127.     <? //Debut du formulaire selection mois en mode add  
  128.     if ($mode=='add'){
  129.     print("<form name=\"form2\"><td valign=\"middle\"><select name=\"menu_mois\" onChange=\"location.href='?login=$log&mode=$mode'+document.form1.menu_annee.value+document.form2.menu_mois.value\">\n" ); 
  130.     for ($i=0;$i<=11;$i++) {
  131.     $m = $i + 1;
  132.      print("<option value=\"&mois=$mois_tbl2[$i]\" " );
  133.      if ($mois==$mois_tbl2[$i]) {print("selected" );}
  134.      print(">$mois_tbl[$i]</option>\n" );
  135.     }
  136.     print("</select></td></form>" );
  137.     }
  138.     else {
  139.     $i=abs($mois)-1;
  140.     print("<td valign=\"middle\">$mois_tbl[$i]</td>" );
  141.     }
  142.     ?>
  143.      
  144.         </tr>
  145.       </table></td>
  146.     </tr>
  147. </table> 
  148. <form action="" method="post" name="form">
  149. <? 
  150. $date = date("_ym", mktime(0,0,0,$mois,1,$annee));;
  151. if (empty($fichier)) {
  152. $fichier = "../ndf/ndf_$login$date.ndf";
  153. }
  154. ?> 
  155. <input type='hidden' name='login' value="<? print($log); ?>">
  156. <input type='hidden' name='fichier' value="<? print($fichier); ?>">
  157. <input type='hidden' name='mode' value="<? print($mode); ?>">
  158. <input type='hidden' name='etat' id='etat' value="">
  159. <input type='hidden' name='mois' value="<? print($mois); ?>">
  160. <input type='hidden' name='annee' value="<? print($annee); ?>">
  161. <table width='650' border='1' align='center' cellpadding='1' cellspacing='0' bordercolor="#333333">
  162.   <tr align="center" valign="middle">
  163.     <td rowspan="2"><strong>Date <br>
  164.     </strong></td>
  165.     <td rowspan="2"><strong>D&eacute;signation </strong></td>
  166.     <td colspan="6"><strong>Montants d&eacute;taill&eacute;s des frais </strong></td>
  167.     <td rowspan="2"><strong>Forfait</strong></td>
  168.     <td rowspan="2" bgcolor="#6699FF"><strong>TOTAL</strong></td>
  169.   </tr>
  170.   <tr align="center" valign="middle"> 
  171. <td colspan="2"><strong>Voiture (*)</strong></td>
  172.     <td><strong>Parking Autoroute</strong></td>
  173.     <td><strong>Frais de repas</strong></td>
  174.     <td><strong> H&ocirc;tel</strong></td>
  175.     <td><strong>Divers</strong></td>
  176.   </tr>
  177.   <tr align="center" valign="middle"> 
  178.     <td bgcolor="#CCCCCC">&nbsp;</td>
  179.     <td bgcolor="#CCCCCC">&nbsp;</td>
  180.     <td>Essence</td>
  181.     <td>ou nbr kms</td>
  182.     <td bgcolor="#CCCCCC">&nbsp;</td>
  183.     <td bgcolor="#CCCCCC">&nbsp;</td>
  184.     <td bgcolor="#CCCCCC">&nbsp;</td>
  185.     <td bgcolor="#CCCCCC">&nbsp;</td>
  186.     <td bgcolor="#CCCCCC">&nbsp;</td>
  187.     <td bgcolor="#6699FF">&nbsp;</td>
  188.   </tr>
  189.  
  190. <?PHP
  191. if($mode=='modif' || $mode=='valid') {$fp=fopen($fichier,"r" );} 
  192. for ($i = 1; $i <= $NbrJours ; $i++)
  193. {
  194. if($mode=='modif' || $mode=='valid') {
  195. $ligne = fgets($fp,1024); // On se déplace d'une ligne   
  196. $var = explode("|",$ligne); // Champs séparés par |, on en fait un tableau   
  197. }
  198. if($mode=='add'){$var=array('','','','','','','','','0.00');}
  199. $id=date("ym", mktime(0,0,0,$mois,1,$annee)).$i;
  200. echo " <tr align='center' valign='middle'> \n";
  201. echo " <td> <b>$i/$mois/$annee</b> </td> \n"; 
  202. echo " <td> <input name='".$login.$id."1' type='text' size='20' value='".$var[0]."'></td> \n";
  203. echo " <td> <input name='".$login.$id."2' type='text' size='5' onKeyUp='javascript:calc$i();calcT();verifvoit(\"".$login.$id."2\",\"".$login.$id."3\" )' onBlur='javascript:verifnum(\"".$login.$id."2\" )' value='".$var[1]."'></td> \n";
  204. echo " <td> <input name='".$login.$id."3' type='text' size='5' onKeyUp='javascript:calc$i();calcT();verifvoit(\"".$login.$id."2\",\"".$login.$id."3\" )' onBlur='javascript:verifnum(\"".$login.$id."3\" )' value='".$var[2]."'></td> \n";
  205. echo " <td> <input name='".$login.$id."4' type='text' size='5' onKeyUp='javascript:calc$i();calcT()' onBlur='javascript:verifnum(\"".$login.$id."4\" )' value='".$var[3]."'></td> \n";
  206. echo " <td> <input name='".$login.$id."5' type='text' size='5' onKeyUp='javascript:calc$i();calcT()' onBlur='javascript:verifnum(\"".$login.$id."5\" )' value='".$var[4]."'></td> \n";
  207. echo " <td> <input name='".$login.$id."6' type='text' size='5' onKeyUp='javascript:calc$i();calcT()' onBlur='javascript:verifnum(\"".$login.$id."6\" )' value='".$var[5]."'></td> \n";
  208. echo " <td> <input name='".$login.$id."7' type='text' size='5' onKeyUp='javascript:calc$i();calcT()' onBlur='javascript:verifnum(\"".$login.$id."7\" )' value='".$var[6]."'></td> \n";
  209. echo " <td> <input name='".$login.$id."8' type='text' size='5' onKeyUp='javascript:calc$i();calcT()' onBlur='javascript:verifnum(\"".$login.$id."8\" )' value='".$var[7]."'></td> \n";
  210. echo " <td bgcolor='#6699FF'> <input name='".$login.$id."9' type='text' size='10' value='".$var[8]."'> <font color='white'>€</font></td> \n";
  211. echo " </tr> \n";
  212. }
  213. ?>
  214.   <tr align="center" valign="middle"> 
  215.     <td colspan="10">&nbsp;</td>
  216.   </tr>
  217.   <tr align="center" valign="middle"> 
  218.       <td>Total</td>
  219.       <td>&nbsp;</td>
  220.       <td>&nbsp;</td>
  221.       <td>&nbsp;</td>
  222.       <td>&nbsp;</td>
  223.       <td>&nbsp;</td>
  224.       <td>&nbsp;</td>
  225.       <td>&nbsp;</td>
  226.       <td>&nbsp;</td>
  227.       <td bgcolor="#6699FF">
  228.    <?
  229.    if($mode=='modif' || $mode=='valid') {
  230.    $ligne = fgets($fp,1024); // On se déplace d'une ligne   
  231.     $var = explode("|",$ligne); // Champs séparés par |, on en fait un tableau   
  232.    }
  233.  
  234.   ?>
  235.     <input name="WLT" type="text" size="14" value='<? if (!empty($var)) {print($var[0]);} ?>'>
  236.       </td>
  237.   </tr>
  238. </table>
  239.   <div align="center"><br>
  240.     <script language="JavaScript">
  241. function verif_form(etape)
  242. {
  243. if (etape=='sauvegarder') {document.form.etat.value='0';}
  244. else if (etape=='envoyer') {document.form.etat.value='1'; }
  245. else if (etape=='valid') {document.form.etat.value='2'; }
  246. else if (etape=='corriger') {document.form.etat.value='1'; document.form.mode.value='corriger'}
  247. else if (etape=='refuser') {document.form.etat.value='3'; document.form.mode.value='refuser'}
  248. document.form.action='sauve_ndf.php';
  249. document.form.submit();
  250. }
  251. // Fonction verifiant la saisie des montants  
  252. function verifnum(champ)
  253. {
  254. var a=document.form.elements[champ].value;
  255. if (isNaN(a)) {
  256.   alert("Erreur de saisie. Vous devez saisir un nombre" );
  257.   document.form.elements[champ].value="";
  258.   document.form.elements[champ].focus();
  259.   }
  260. }
  261. //Fonction vérifiant que l'utilisateur n'a saisi qu'un seul champs dans l'intitulé voiture : soit essence soit kms  
  262. function verifvoit(champ, champ2)
  263. {
  264. var a=document.form.elements[champ].value;
  265. var b=document.form.elements[champ2].value;
  266. if ( a !== "" ) {
  267.   if ( b !== "" ) {
  268.    alert("Vous ne devez saisir qu'un des champs : Essence ou Kms" );
  269.    document.form.elements[champ].value="";
  270.    document.form.elements[champ2].value="";
  271.   }
  272. }
  273. }
  274. </script>
  275. <?
  276. if($mode=='add' || $mode=='modif')
  277. {
  278. print(" <input type=\"button\" name=\"SAUVEGARDER\" value=\"SAUVEGARDER\" onclick=\"verif_form('sauvegarder')\">" );
  279. print("<br><br><input type=\"button\" name=\"ENVOYER\" value=\"ENVOYER A CONSEPT\" onclick=\"verif_form('envoyer')\">" );
  280. }
  281. else if($mode=='valid') {
  282. print(" <input type=\"button\" name=\"CORRIGER\" value=\"CORRIGER\" onclick=\"verif_form('corriger')\">" );
  283. print(" <input type=\"button\" name=\"REFUSER\" value=\"REFUSER\" onclick=\"verif_form('refuser')\">" );
  284. print("<br><br><input type=\"button\" name=\"VALIDER\" value=\"VALIDER\" onclick=\"verif_form('valid')\">" );
  285. }
  286. ?>
  287.   </div>
  288. </form>
  289.   <br>
  290.   Bugs &amp; Remarques &agrave; envoyer &agrave; : <a href="mailto:wilfried.launay@consept-informatique.com">wilfried.launay@consept-informatique.com</a>
  291. </body>
  292. </html>
  293. <? if($mode=='modif' || $mode=='valid') {fclose($fp);} ?>


et pour form_ndf

Reply

Marsh Posté le 16-06-2004 à 11:35:33    

je te file l'adresse : http//www.consept-informatique.com/intranet/
login util (pour creer note de frais) : dmo et mdp: mornet
login direction (pour validation) : wla et mdp: will

Reply

Marsh Posté le 16-06-2004 à 12:40:53    

Je crois que l'erreur vient du javascript.
 
En login direction, en en cliquant sur corriger une note de frais, l'ai eu un message d'alerte "attention login1, dmo", c'est pas normal, j'etais sous wla.
Le traitement Valider, ne fait rien
 
Ensuite cela peut aussi venir du fait que tu utilises les pop-up pour ouvrir les fenêtres de validation.


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
Reply

Marsh Posté le 16-06-2004 à 14:13:12    

je sais je m'etais planté de source pour le form_ndf.
mais le "login1 : dmo" c normal c moi qui veut afficher la var $log.

Reply

Marsh Posté le 16-06-2004 à 14:17:48    

g remis la source ou la validation fonctionne. mais le login change toujours.

Reply

Marsh Posté le 16-06-2004 à 14:19:54    

http://www.consept-informatique.com/intranet/
 
Au fait, tu sais qu'il y a une faute d'orthographe dans ton nom de domaine ?


Message édité par T509 le 16-06-2004 à 14:20:58

---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
Reply

Marsh Posté le 16-06-2004 à 14:21:31    

tu parle du s de conSept, c normal la boite s'apelle comme ca.

Reply

Marsh Posté le 16-06-2004 à 14:32:58    

J'ai bien compris, ce doit être un jeu de mot, mais pour quelqu'un d'extérieur, cela peut paraitre bizarre et amener des questions sur le sérieux.
 
En ce qui concerne tes pages, il doit y avoir un cafouilli dans les variables.
Sous wla, j'ouvre une note de frais pour la valider., une pop-up s'ouvre avec la note de frais. Une fois que cette note est validée, cette même pop-up passe à l'affichage sous le login dmo.
J'ai donc à ce moment là 2 fenêtres 1 dmo et 1 wla.
Un rafraichissement de la fenêtre WLA la transforme en DMO
A un moment, tu dois surement écraser ta variable de login de session avec le login de la personne dont la note est en cours de validation.
 
j'ai du mal à t'aider car PHP/HTML/Javascript sont très fortement imbriqués


Message édité par T509 le 16-06-2004 à 14:33:30

---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
Reply

Marsh Posté le 16-06-2004 à 14:53:58    

c con parce que la je seche

Reply

Marsh Posté le 16-06-2004 à 14:59:19    

tu as vérifié cette variable de session que tu dois écraser à un moment ?
à différentes étapes de ton processus, enregistre dans un fichier log l'état de ta variable de session avec la zonne d'appel. exple :
 
verif session - login : ...
verif données - login : ...
valisation - login ...


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
Reply

Marsh Posté le 16-06-2004 à 15:16:27    

je vois pas comment faire si tu pouvais m'avancer ce serai cool.
je pete un cable ça fait + de 2 jours que je cherche ce put1 de bug. heureusement g du soutien :)

Reply

Marsh Posté le 16-06-2004 à 15:39:23    

ben tu ajoute une fonction dans tes scripts :

Code :
  1. function log_session($variable_session, $texte = "" ) {
  2. $fichier_log = "log.txt";
  3. $fic = fopen($fichier_log, "a+" );
  4. $ligne = $texte.$_SESSION[$variable_session];
  5. fwrite($fic, $ligne);
  6. fclose($fic);
  7. }


 
ensuite tu place des appels dans tes scripts
log_session("login", "etape 1 : login = " );
 
Tu auras après avoir testé ton bug, un fichier log.txt que tu pourras analyser


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
Reply

Marsh Posté le 16-06-2004 à 16:25:14    

merci g crée le log.txt
et c'est bon g repere le probleme, ca marche......
merci de ta patience et de ton soutien...
Youpi :) :) :) :)

Reply

Marsh Posté le 16-06-2004 à 16:27:16    

Explique nous ce qui se passait et à quel moment.


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
Reply

Marsh Posté le 16-06-2004 à 16:34:13    

en fait c'etait au nivo de ma requete2
 

Code :
  1. if($result <> FALSE) {
  2.    while ($y=mysql_fetch_array($result)) {
  3.   $matricule=$y["matricule"];
  4.   $request2 = "select * from intra_users_intranet where matricule='$matricule'";
  5.   $result2 = mysql_query($request2);
  6.   $users_tbl= mysql_fetch_array($result2);
  7.           $nom=$users_tbl['nom'];
  8.           $prenom=$users_tbl['prenom'];
  9.           $login=$users_tbl['login'];
  10.           $matricule=$users_tbl['matricule'];
  11.       }


deux variables avaient le meme nom.
g change $login=$users_tbl['login']; en $login1 et tous les autres du code et c du bonheur..... :)

Reply

Marsh Posté le 16-06-2004 à 16:41:55    

Bon, c'est cool.


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed