Lancer script php via bouton [Résolu]

Signaler
Messages postés
531
Date d'inscription
mercredi 28 septembre 2005
Statut
Membre
Dernière intervention
6 mars 2009
-
flopad
Messages postés
531
Date d'inscription
mercredi 28 septembre 2005
Statut
Membre
Dernière intervention
6 mars 2009
-
Bonjour tout le monde,
J'ai le code suivant, je voudrais lancer ce script via un bouton cliquable, et que ca me demande ensuite de télécharger le fichier, comment faire????

CODE :
<?php

$base="D:\\Qualite\Annuaire\Annuaire.mdb";
$Annuaire="Annuaire";

//connection au serveur:
$cnx = odbc_connect( "DSN_Annuaire","" ,"") or die ("Impossible de se connecter à la base de donnée") ;

$requete = "SELECT * FROM $Annuaire ORDER BY Nom" ; // on sélectionne les enregistrements
$req = odbc_do($cnx, $requete);
$res = odbc_num_rows($req); // on compte le nombre de résultats

$file = ("..\Annu\Annuaire.xls"); // le fichier doit déjà exister
if(!$file = fopen($file, "w")) //on ouvre le fichier
{
print("'$file' n'existe pas!\n");
exit;
}

while ( odbc_fetch_row($req) ) { // chaque fois que "$req" est dif. de "$i", donc qu'il y a un enreg.

//on récupère les champs
$Nom = odbc_result($req,"Nom");
$Societe = odbc_result($req,"Societe");
$Service = odbc_result($req,"Service");
$Fixe = odbc_result($req,"Fixe");
$Fixe_abrege = odbc_result($req,"Fixe_abrege");
$Fax = odbc_result($req,"Fax");
$Portable = odbc_result($req,"Portable");
$Abrege_fp = odbc_result($req,"Abrege_fp");
$Mail = odbc_result($req,"Mail");


//ecriture
fputs($file,"$Nom\t $Societe\t $Service\t $Fixe\t $Fixe_abrege\t $Fax\t $Portable\t $Abrege_fp\t $Mail\n"); //une tabulation \t pour changer de colonne et un retour chariot \n pour changer de ligne

}

?>

MERCI

8 réponses

Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8
en haut de ton script, et ensuite le readfile tu le mets en bas.

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
20
Hello,

il faut passer par une soumission de formulaire, pour le bouton.
PHP, pour la énième fois, est exécuté côté SERVEUR, et ne peut donc pas être exécuté à partir d'un évènement côté client (sauf en passant par les requêtes xmlhttp, mais juste pour ça, ce serait inutile je pense).
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8
Salut,

pour lancer ce script via un lien bah c'est comme tu le ferais : [page.php <li>]Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
Messages postés
531
Date d'inscription
mercredi 28 septembre 2005
Statut
Membre
Dernière intervention
6 mars 2009

Ok mais je comprends pas ou mettre ceci :

<?php
header("Content-disposition: attachment; filename=(..\Annu\Annuaire.xls)");
header("Content-Type: application/force-download");
readfile("..\Annu\Annuaire.xls");
?>
Messages postés
531
Date d'inscription
mercredi 28 septembre 2005
Statut
Membre
Dernière intervention
6 mars 2009

J'ai l'erreur suivante.... et ca m'affiche tout le contenu de ma bdd sur ma page php au lieu de me lancer le téléchargement :
Warning: Cannot modify header information - headers already sent by (output started at D:\qualite\convertisseur.php:8) in D:\qualite\convertisseur.php on line 9

Warning: Cannot modify header information - headers already sent by (output started at D:\qualite\convertisseur.php:8) in D:\qualite\convertisseur.php on line 10

CODE :
<html>


<head>
</head>





<?php
header("Content-disposition: attachment; filename= (..\Annu\Annuaire.xls)");
header("Content-Type: application/force-download");
?>


<?php


$base ="D:\\Qualite\Annuaire\Annuaire.mdb";
$Annuaire="Annuaire";


//connection au serveur:
$cnx = odbc_connect( "DSN_Annuaire","" ,"") or die ("Impossible de se connecter à la base de donnée") ;


$requete = "SELECT * FROM $Annuaire ORDER BY Nom" ; // on sélectionne les enregistrements
$req = odbc_do($cnx, $requete);
$res = odbc_num_rows($req); // on compte le nombre de résultats

$file = ("..\Annu\Annuaire.xls"); // le fichier doit déjà exister
if(!$file = fopen($file, "w")) //on ouvre le fichier
{
print("'$file' n'existe pas!\n");
exit;
}

while ( odbc_fetch_row($req) ) { // chaque fois que "$req" est dif. de "$i", donc qu'il y a un enreg.

//on récupère les champs
$Nom = odbc_result($req,"Nom");
$Societe = odbc_result($req,"Societe");
$Service = odbc_result($req,"Service");
$Fixe = odbc_result($req,"Fixe");
$Fixe_abrege = odbc_result($req,"Fixe_abrege");
$Fax = odbc_result($req,"Fax");
$Portable = odbc_result($req,"Portable");
$Abrege_fp = odbc_result($req,"Abrege_fp");
$Mail = odbc_result($req,"Mail");


//ecriture
fputs($file,"$Nom\t $Societe\t $Service\t $Fixe\t $Fixe_abrege\t $Fax\t $Portable\t $Abrege_fp\t $Mail\n"); //une tabulation \t pour changer de colonne et un retour chariot \n pour changer de ligne


}
readfile("..\Annu\Annuaire.xls");
?>





</html>

Merci encore....
Messages postés
531
Date d'inscription
mercredi 28 septembre 2005
Statut
Membre
Dernière intervention
6 mars 2009

C'est bon, j'ai viré les balises html qui ne servaient strictement à rien....
Messages postés
531
Date d'inscription
mercredi 28 septembre 2005
Statut
Membre
Dernière intervention
6 mars 2009

Excusez moi j'ai encore un dernier soucis....
Quand le lance le téléchargement, ce n'est pas le bon nom de fichier qui s'affiche autrement dit Annuaire.xls mais le nom de ma page php (Convertisseur)....
Comment résoudre ça??

MERCI.....
Messages postés
531
Date d'inscription
mercredi 28 septembre 2005
Statut
Membre
Dernière intervention
6 mars 2009

Aussi, si je récupère ce fichier "convertisseur" portant le nom de la page php et que j'essaie de l'ouvrir avec excel, j'ai une erreur dedans qui dit :

Warning: readfile(Resource id #3): failed to open stream: No such file or directory in D:\qualite\Convertisseur.php on line 45