begin process at 2012 05 31 15:24:51
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive PHP

 > 

Archives

 > 

AU SECOURS !!!

 > 

sauvegarde de clic sur boutons, dans une feuille excel


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

sauvegarde de clic sur boutons, dans une feuille excel

mardi 14 février 2006 à 13:35:04 | sauvegarde de clic sur boutons, dans une feuille excel

dam_37

Salut à tous,
je dispose d'une page avec 4 boutons contenant des liens vers des fichiers pdf.
un clique sur un bouton fait appel à une fonction sauve qui va enregistrer dans un fichier excel l'appui sur ce bouton.
Pour cela, j'ai dû utiliser la méthode post dans un formulaire avec les 4 boutons submit.

Malheureusement, avec cette méthode, dès que je réactualise ma page, sans appuyer sur un bouton, j'enregistre automatiquement un appui dans mon fichier excel:
mon code ressemble à ça:

Formulaire des boutons:
 <TABLE id="table" style="position:absolute; top:24em;" border="1">
  <tr align=justify>
   <form name="click" method="POST" action="validformulaireOK.php">
    <INPUT TYPE="hidden" Name="valid" value='1'>
    <td><span id="valid"><INPUT TYPE="submit" value='Gamme emballage' onClick="OuvrirChoix('http://127.0.0.1/documents/GE.pdf')"></span></td> 
   </form>
   <form name="click" method="POST" action="validformulaireOK.php">
    <INPUT TYPE="hidden" Name="valid" value='2'>
    <td><span id="valid"><INPUT TYPE="submit" value='fiche production' onClick="OuvrirChoix('http://127.0.0.1/documents/fp.pdf')"></span></td>
   </form>
   <form name="click" method="POST" action="validformulaireOK.php">
    <INPUT TYPE="hidden" Name="valid" value='3'>
    <td><span id="valid"><INPUT TYPE="submit" value='photos' onClick="OuvrirChoix('http://127.0.0.1/documents/photos.doc')"></span></td>
   </form>
    <td><span id="valid"><INPUT TYPE="button" value='flow' onClick="OuvrirChoix('http://127.0.0.1/documents/flow.pdf')"></span></td>  
 </tr>
 </table> 

switch case:

 switch($_POST['valid'])
 {
  case "1" : $ge='oui';
        session_register('ge');
        $_SESSION['ge']=$ge;
        sauve();
        break;
  case "2" : $fp='oui';
        session_register('fp');
        $_SESSION['fp']=$fp;
        sauve();
        break;
  case "3" : break;
  default   : break;

fonction sauve:
 function sauve()
 {
  $ref=$_SESSION['ref'];
  $employe=$_SESSION['employe'];
  $date=$_SESSION['date'];
  $ge=$_SESSION['ge'];
  $fp=$_SESSION['fp'];
  /********************  enregistrement des données dans lun fichier excel  ********************************/
  //le fichier, une fois ouvert, renvoit un pointeur $file
  $nomfichier="C:\Program Files\EasyPHP1-8\www\documents/testxls.csv";
  //ouverture du fichier en mode a+: lecture en début et écriture en fin de fichier
  $file = fopen($nomfichier,"a+");
  $chaine=fread($file,filesize($nomfichier));
  if(!$chaine)
  {
   $contenu="   REFERENCE   ;   EMPLOYE   ;   JOUR   ;FICHE PRODUCTION;PHOTOS\n";
   fputs($file,$contenu); // enregistrement des données ds le fichier
   $contenu="  $ref ; $employe  ;   $date   ;  $ge       ;    $fp     \n";
  }
  else $contenu="  $ref ; $employe  ;   $date   ;  $ge       ;    $fp     \n";
  //écriture dans le fichier puis fermeture
  fputs($file,$contenu); // enregistrement des données ds le fichier  
  fclose($file);

Si quelqu'un avait une petite idée...
C'est assez dur à comprendre, si vous avez des kestions, faut pas hésiter, ça m'aiderait beaucoup!!!!!

mardi 14 février 2006 à 13:59:42 | Re : sauvegarde de clic sur boutons, dans une feuille excel

J_G

Réponse acceptée !
Salut,

Le problème vient du rechargement de la page (réactualisation). Lors de cette action, le navigateur renvoit les même informations que lors de la précédante soumission. Donc aussi les info passées en POST (sauve-moi).

Pour cela, il existe des codes sur ce site. Par exemple, des petits script pour éviter que les gens votent deux fois...

Dans le principe, il faut que tu identifie les pages que tu fait afficher. Puis lors de la soumission de nouvelles données, vérifier que cette soumission provient bien de la dernière page affichée...

Je m'explique mieux :
------------- un page à afficher -------------
<?php
session_start();

// Là, tu identifie la page que tu va afficher
$id = uniqid(time()); // identifiant unique
$_SESSION['IDpage'] = $id; // sauvegarde de l'id en session

?>
<html>
<body>
<form>
<!-- Là, tu envoi son matricule à la page... il sera transmit lors de chaque soumission -->
<input type="hidden" name="IDpage" value="<?php echo $id;?>" />
</form>
</body>
</html>

-------------------------------------------------------

-------------- traitement des données soumise ---------
<?php
// c'est très simple... tu compares !
$IDpage = isset($_POST['IDpage']) ? $_POST['IDPage'] : '';
if( $IDpage==$_SESSION['IDpage'] ) {
    // C'est OK... C'est bien la réponse de la page que tu viens d'envoyer
}
else {
    // Les données ne proviennent pas de la page que tu attendais (réactualisation ?)
}
?>

----------------------------------------------


Tout ça est bien beau... mais nécessite les Cookies !!!
Il y'a bien d'autres façno de faire. Cherches sur le site.

Voili, A+
mardi 14 février 2006 à 14:09:04 | Re : sauvegarde de clic sur boutons, dans une feuille excel

cacoucatatonique



 cacoucatatonique
mardi 14 février 2006 à 14:14:07 | Re : sauvegarde de clic sur boutons, dans une feuille excel

cacoucatatonique

pour faire une page xls moi jutilise la methode suivante:
l'appel je le fait par un simple bouton
<?
           echo "<br>sortir le récapitulatif de ce type d'article sous excel";
echo "<form action='dl_excel.php' method='POST'>
         <input type='hidden' name='choix' value='Ré'>
        <input type='submit' value=\"valider\"></form>";
        ?>

et je vais vert une page de generation de fichier xls:

<html>

<head>
  <title></title>
  <style type="text/css">
<!--
body {
    background-color: #CCCC99;
}
-->
</style>
</head>

<body>

<?php

        $connexion = mysql_connect("****","*****","*****")
               or die ("probleme de connection");
        $db = mysql_select_db("chimie",$connexion)
              or die ("probleme de selection de base de donnée");

$choix=$_POST['choix'];

if ($choix=="Ré")
{$choix1="Réactifs";}
if ($choix=="Co")
{$choix1="Consommables";}
if ($choix=="Pi")
{$choix1="Pièces détachées";}

echo "$choix1";

$link="SELECT prod FROM mois1" ;
$result = mysql_query($link);
$num_rows = mysql_num_rows($result);
$num=$num_rows+1;

$file = ("commentaires.xls");  // le fichier doit déjà exister

if(!$myfile = fopen($file, "w"))     //on ouvre le fichier
{
     print("erreur: ");
     print("'$filename' n'existe pas!\n");
     exit;
}
fputs($myfile,"article\tjanv\tfevr\tmars\tavr\tmai\tjuin\tjuil\taoût\tsept\toct\tnov\tdec\ttotal année\n");

$t=2;
for ($i=1;$i<$num;$i++)
{

    $req="SELECT prod,temp3 FROM stock WHERE ID='$i' " ;
            $query = mysql_query($req);
            $data = mysql_fetch_array($query, MYSQL_ASSOC);

$prod=$data['prod'];$temp3=$data['temp3'];

            if ($temp3==$choix)
            {
             $req="SELECT  janvier, fevrier, mars, avril, mai, juin, juillet, aout, septembre, octobre, novembre, decembre FROM mois1 WHERE prod='$prod'" ;
            $query = mysql_query($req);
            $data = mysql_fetch_array($query, MYSQL_ASSOC);

$janvier=$data['janvier'];$fevrier=$data['fevrier'];$mars=$data['mars'];$avril=$data['avril'];$mai=$data['mai'];
$juin=$data['juin'];$juillet=$data['juillet'];$aout=$data['aout'];$septembre=$data['septembre'];$octobre=$data['octobre'];$novembre=$data['novembre'];
$decembre=$data['decembre'];
             //ecriture
            fputs($myfile,"$prod\t$janvier\t$fevrier\t$mars\t$avril\t$mai\t$juin\t$juillet\t$aout\t$septembre\t$octobre\t$novembre\t$decembre\t=SOMME(B$t:M$t)\n ");
            //on insère une tabulation \t pour changer de colonne et un retour chariot \n pour changer de ligne
            $t++;
            }
}
//fermeture fichier
fclose($myfile);   //on ferme le fichier
echo "La table a été sauvegardée...";

$date = date("d-m");
$file = ('commentaires.xls');
$file_copy = ($date.$choix1.'.xls');

copy($file,$file_copy);

     $req="UPDATE excel SET lien='$file_copy' WHERE ID='1'" ;
      $resultat = mysql_query($req)
       or die ("la requete ne peut etre execute flex");

mysql_close();  // 9. on ferme la connexion

header("location:$file_copy");
?>
</body>
</html>

part cette methode il ny a aucun probleme, le fichier de sortie est de la forme xls, parcontre il faut que le fichier commentaire soit deja existant!!!

 cacoucatatonique
mardi 14 février 2006 à 16:10:43 | Re : sauvegarde de clic sur boutons, dans une feuille excel

dam_37

Je vais essayer

mardi 14 février 2006 à 16:13:37 | Re : sauvegarde de clic sur boutons, dans une feuille excel

dam_37

oups, petit pb d'écriture, je recommence

je vais essayer la méthode des id uniques mais j'aurais voulu savoir si l'utilisation des cookies était obligatoire?

en tout cas merci pour vos reponses, ça fait plaisir d'avoir des explications bien détaillées!

@+

mardi 14 février 2006 à 16:27:23 | Re : sauvegarde de clic sur boutons, dans une feuille excel

J_G

Les Cookies sont nécessaires pour l'utilisation des sessions... Donc c'est pour ça (et uniquement) qu'ils sont nécessaires pour l'histoire des id.

Pour contourner le problème... il faut passer les identifiants de session dans l'URL. Enfin bref une question de configuration.

Bonne chance !
mardi 14 février 2006 à 16:41:43 | Re : sauvegarde de clic sur boutons, dans une feuille excel

cacoucatatonique

bien deja la fonction ecriture tu peut l'utiliser sans passer par une session en fesant passer les parametres par POST , si tu veux etre sur que la page s'efectue que lorsque tu le desire, tu test la variable qui passe par POST et si elle n'est pas vide tu effectue l'ecriture par exemple.
et en faite l'iddée de l'ID unique c'est la création d'une table tempon qui va me servir à faire passer tous les paramettre necessaire à la fonction que je veux effectuer, je fait la meme chose quand j'utilise la fonction fpdf, je suis pas un tres grand expert en la matiere mais c'est un moyen facile et relativement rapide de faire passer plusieurs variables de page en page et cela grace à une table tempon situé dans dnas ma bdd.

 cacoucatatonique
vendredi 17 février 2006 à 10:57:47 | Re : sauvegarde de clic sur boutons, dans une feuille excel

dam_37

merci mec, ton idée sur les idpages m'a bien aidé!
j'avais laissé de côté qq jours et puis j'ai réussi à m'en sortir avec
tchao et bon week end.



Cette discussion est classée dans : fichier, file, session, fp, ge


Répondre à ce message

Sujets en rapport avec ce message

créé 1 zip avec un file [ par Stephane ] salubeh voila je voudrai savoir si c possible et si oui comment, créé un zip avec 1 fichier dedan (je n'ai besoin que d'y mettre 1 fichier)merci bcp ! Enregistrer un textarea dans un fichier !! [ par Cr0w ] Bonjour, j'ai un textarea à enregistrer dans un fichier...Malheureusement je ne vois po comment faire ...J'ai essayé la méthode suivante : function Re fonction : execution de fichier sql [ par flagada42 ] function execute_fichier_sql($chemin) { // Ouverture du fichier contenant les requètes SQL $file = fopen($chemin, "r"); //Tant que l'on est pa Problème d'upload de fichier [ par phenixoiseau ] phénixOiseauBonjour,Voilà j'ai écrit un script pour charger un fichier vers un serveur. Lorsque j'execute le script depuis ma machine le chargement du Problème d'upload de fichier [ par phenixoiseau ] phénixOiseauBonjour,Voilà j'ai écrit un script pour charger un fichier vers un serveur. Lorsque j'execute le script depuis ma machine le chargement du Problème d'upload de fichier [ par phenixoiseau ] phénixOiseauBonjour,Voilà j'ai écrit un script pour charger un fichier vers un serveur. Lorsque j'execute le script depuis ma machine le chargement du formulaire + champ de type "File" [ par ironnyc ] Salut a tous!!j ai un petit prob avec mon formulaire pour faire un upload.Dans mon ficher "Formulaire.htm"j utilise un champ de type "File" (avec encr caddie virtuel avec des sessions... [ par roul ] Bon, j'explique mon probleme, je débute en php et là je vais m'arracher les cheveux sur un truc qui à l'air tout simple, mais là j'en peux plus; alors Probleme d'upload [ par morgandetoi06 ] bonjour,voila sur mon site j ai fait une page où les visiteurs peuvent uploader une photo perso, et elle sera affichée sur cette meme page.le principe à l'aide svp probleme d'upload [ par morgandetoi06 ] svp aidez moi j ai deja posté ce message sur le forum mais n ayant pas eu de reponse je le repostebonjour,voila sur mon site j ai fait une page où les


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,123 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales