Problème avec script de création de fichier
ndixweb
-
HostOfSeraphim Messages postés 7340 Statut Contributeur -
HostOfSeraphim Messages postés 7340 Statut Contributeur -
Bonjour,
Je suis entrain de coder une interface d'administration pour mon site web.
J'ai trouvé un script qui me permet de créer un fichier (script ci-dessous)
<?php
// Si la formulaire n'est pas envoyé, on l'affiche
if (!isset($_POST['form'])) {
echo "<form action=\"ecriture.php\" method=\"POST\">
Nom du fichier : <input type=\"text\" name=\"filename\" value=\"exemple.txt\"><br><br>
Contenu :<br><textarea name=\"contenu\" cols=70 rows=20>Contenu du fichier</textarea><br><br>
<input type=\"hidden\" name=\"form\" value=\"1\">
<input type=\"submit\" value=\"Créer\">";
} else {
// Création du fichier
$fichier = fopen($_POST['filename'],"w");
// Vérification de l'écriture
if (fwrite($fichier,$_POST['contenu'])) {
echo "Le fichier à été créé avec succès";
} else {
// Erreur
echo "Impossible de créer le fichier";
}
fclose($fichier);
} ?>
Mais ce script enregistre le fichier dans son dossier et moi je souhaite qu'il l'enregistre dans un autre dossier de mon serveur par ex : /home/www/web/nouvelleversion/systeme/contenu/
Je souhaite donc avoir votre aide pour arranger cela.
Merci d'avance pour vos réponses.
Je suis entrain de coder une interface d'administration pour mon site web.
J'ai trouvé un script qui me permet de créer un fichier (script ci-dessous)
<?php
// Si la formulaire n'est pas envoyé, on l'affiche
if (!isset($_POST['form'])) {
echo "<form action=\"ecriture.php\" method=\"POST\">
Nom du fichier : <input type=\"text\" name=\"filename\" value=\"exemple.txt\"><br><br>
Contenu :<br><textarea name=\"contenu\" cols=70 rows=20>Contenu du fichier</textarea><br><br>
<input type=\"hidden\" name=\"form\" value=\"1\">
<input type=\"submit\" value=\"Créer\">";
} else {
// Création du fichier
$fichier = fopen($_POST['filename'],"w");
// Vérification de l'écriture
if (fwrite($fichier,$_POST['contenu'])) {
echo "Le fichier à été créé avec succès";
} else {
// Erreur
echo "Impossible de créer le fichier";
}
fclose($fichier);
} ?>
Mais ce script enregistre le fichier dans son dossier et moi je souhaite qu'il l'enregistre dans un autre dossier de mon serveur par ex : /home/www/web/nouvelleversion/systeme/contenu/
Je souhaite donc avoir votre aide pour arranger cela.
Merci d'avance pour vos réponses.
A voir également:
- Problème avec script de création de fichier
- Fichier bin - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier .dat - Guide
9 réponses
je vien d'en faire un moi la donc tien je te le donne et il fait tou se que tu demande tien :
<?php
session_start();
/*
si la variable de session login n'existe pas cela siginifie que le visiteur
n'a pas de session ouverte, il n'est donc pas logué ni autorisé à
acceder à l'espace membres
*/
if(!isset($_SESSION['login'])) {
echo 'Vous n\'êtes pas autoris´ à acceder à cette zone';
include('index.html');
exit;
}
//augmente le temps d'execution pour que les requêtes aboutissent
set_time_limit(600);
//connexion au serveur MySQL
$connexion = mysql_connect("localhost","root","") or die ("Connexion impossible au SGBD.");
//sélection de la BDD
$base = mysql_selectdb("LaMoulinetteCACE", $connexion) or die ("Sélection de la base impossible.");
$req1="SELECT Compte, CodeCtrl, LibelleCompte, DebN1, CredN1, DebN, CredN, SoldeN1, SoldeN, VariationE, VariationP, IdCodeBafi, AP, IdCodeSysiphe, DossierPermanent, LibelleTri1, LibelleTri2, LibelleTri3, Classe, LibelleCycle FROM balance, Compte, Cycle, Tri1, Tri2, Tri3 WHERE Balance.Compte=Compte.IdCompte AND Compte.IdCycle=Cycle.IdCycle AND Tri1.CodeTri1=Compte.Tri1 AND Tri2.CodeTri2=Compte.Tri2 AND Tri3.CodeTri3=Compte.Tri3 GROUP BY Compte";
$rs1=mysql_query($req1)or die (mysql_error());
//la ligne suivante suffit à envoyer le résultat du script dans une feuille Excel
header("Content-Type: application/force-download; name=\"BalanceTraitee.csv\"");
header("Content-Transfer-Encoding: binary");
header("Content-Disposition: attachment; filename=\"BalanceTraitee.csv\"");
header("Expires: 0");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
readfile("BalanceTraitee.csv");
if ($f = fopen('BalanceTraitee.csv', 'w'))
{
$col = array(Compte, CodeCtrl, Libelle, "Debit N-1", "Credit N-1", DebitN, CreditN, "Solde N-1", SoldeN, "Variation €", "Variation %", Cycle, CodeBafi, CodeSysiphe, DossierPermanent, Tri1, Tri2, Tri3, "A/P", Classe);
fputcsv($f, $col,";");
while($ligne1 = mysql_fetch_row($rs1))
{
$Compte = $ligne1[0];
$CodeCtrl = $ligne1[1];
$Libelle = $ligne1[2];
$SoldeDebN1 = $ligne1[3];
$SoldeCredN1 = $ligne1[4];
$SoldeDebN = $ligne1[5];
$SoldeCredN = $ligne1[6];
$SoldeN1 = $ligne1[7];
$SoldeN = $ligne1[8];
$VariationE = $ligne1[9];
$VariationP = $ligne1[10];
$Cycle = $ligne1[19];
$CodeBAFI = $ligne1[11];
$CodeSysiphe = $ligne1[13];
$DossierPermanent = $ligne1[14];
$Tri1 = $ligne1[15];
$Tri2 = $ligne1[16];
$Tri3 = $ligne1[17];
$AP = $ligne1[12];
$AP=$AP." ";
$Classe = $ligne1[18];
$data = array("$Compte", "$CodeCtrl", "$Libelle", "$SoldeDebN1", "$SoldeCredN1", "$SoldeDebN", "$SoldeCredN", "$SoldeN1", "$SoldeN", "$VariationE", "$VariationP", "$Cycle", "$CodeBAFI", "$CodeSysiphe", "$DossierPermanent", "$Tri1", "$Tri2", "$Tri3", "$AP", "$Classe");
fputcsv($f, $data,";");
}
echo "Bravo vous avez bien enregistré votre fichier";
}
else
{
echo "Impossible d'accéder au fichier.";
}
fclose($f);
?>
bonne chance et bonne continuation si tu a besoin d'aide n'ésite pas j'ai aussi fait un script d'import si tu préfère.
<?php
session_start();
/*
si la variable de session login n'existe pas cela siginifie que le visiteur
n'a pas de session ouverte, il n'est donc pas logué ni autorisé à
acceder à l'espace membres
*/
if(!isset($_SESSION['login'])) {
echo 'Vous n\'êtes pas autoris´ à acceder à cette zone';
include('index.html');
exit;
}
//augmente le temps d'execution pour que les requêtes aboutissent
set_time_limit(600);
//connexion au serveur MySQL
$connexion = mysql_connect("localhost","root","") or die ("Connexion impossible au SGBD.");
//sélection de la BDD
$base = mysql_selectdb("LaMoulinetteCACE", $connexion) or die ("Sélection de la base impossible.");
$req1="SELECT Compte, CodeCtrl, LibelleCompte, DebN1, CredN1, DebN, CredN, SoldeN1, SoldeN, VariationE, VariationP, IdCodeBafi, AP, IdCodeSysiphe, DossierPermanent, LibelleTri1, LibelleTri2, LibelleTri3, Classe, LibelleCycle FROM balance, Compte, Cycle, Tri1, Tri2, Tri3 WHERE Balance.Compte=Compte.IdCompte AND Compte.IdCycle=Cycle.IdCycle AND Tri1.CodeTri1=Compte.Tri1 AND Tri2.CodeTri2=Compte.Tri2 AND Tri3.CodeTri3=Compte.Tri3 GROUP BY Compte";
$rs1=mysql_query($req1)or die (mysql_error());
//la ligne suivante suffit à envoyer le résultat du script dans une feuille Excel
header("Content-Type: application/force-download; name=\"BalanceTraitee.csv\"");
header("Content-Transfer-Encoding: binary");
header("Content-Disposition: attachment; filename=\"BalanceTraitee.csv\"");
header("Expires: 0");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
readfile("BalanceTraitee.csv");
if ($f = fopen('BalanceTraitee.csv', 'w'))
{
$col = array(Compte, CodeCtrl, Libelle, "Debit N-1", "Credit N-1", DebitN, CreditN, "Solde N-1", SoldeN, "Variation €", "Variation %", Cycle, CodeBafi, CodeSysiphe, DossierPermanent, Tri1, Tri2, Tri3, "A/P", Classe);
fputcsv($f, $col,";");
while($ligne1 = mysql_fetch_row($rs1))
{
$Compte = $ligne1[0];
$CodeCtrl = $ligne1[1];
$Libelle = $ligne1[2];
$SoldeDebN1 = $ligne1[3];
$SoldeCredN1 = $ligne1[4];
$SoldeDebN = $ligne1[5];
$SoldeCredN = $ligne1[6];
$SoldeN1 = $ligne1[7];
$SoldeN = $ligne1[8];
$VariationE = $ligne1[9];
$VariationP = $ligne1[10];
$Cycle = $ligne1[19];
$CodeBAFI = $ligne1[11];
$CodeSysiphe = $ligne1[13];
$DossierPermanent = $ligne1[14];
$Tri1 = $ligne1[15];
$Tri2 = $ligne1[16];
$Tri3 = $ligne1[17];
$AP = $ligne1[12];
$AP=$AP." ";
$Classe = $ligne1[18];
$data = array("$Compte", "$CodeCtrl", "$Libelle", "$SoldeDebN1", "$SoldeCredN1", "$SoldeDebN", "$SoldeCredN", "$SoldeN1", "$SoldeN", "$VariationE", "$VariationP", "$Cycle", "$CodeBAFI", "$CodeSysiphe", "$DossierPermanent", "$Tri1", "$Tri2", "$Tri3", "$AP", "$Classe");
fputcsv($f, $data,";");
}
echo "Bravo vous avez bien enregistré votre fichier";
}
else
{
echo "Impossible d'accéder au fichier.";
}
fclose($f);
?>
bonne chance et bonne continuation si tu a besoin d'aide n'ésite pas j'ai aussi fait un script d'import si tu préfère.
Bonjour,
@ giheller : Mon but est justement d'éviter de faire des transferts du serveur vers mon pc. Le système va être utilisé par des personnes qui n'y connaissent pas grand chose dans le domaine. Et donc pas toujours depuis le même pc. Mais merci quand même ;)
@ jeinny : Ton script n'est pas fait pour créer un fichier mais pour ouvrir une session. Et je veux évité d'utiliser une BDD.
@ giheller : Mon but est justement d'éviter de faire des transferts du serveur vers mon pc. Le système va être utilisé par des personnes qui n'y connaissent pas grand chose dans le domaine. Et donc pas toujours depuis le même pc. Mais merci quand même ;)
@ jeinny : Ton script n'est pas fait pour créer un fichier mais pour ouvrir une session. Et je veux évité d'utiliser une BDD.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
nan nan je sai encore se que j'ai fait et je tassur que se script sert à créer un fichier csv avec des données de ma base dedans !!!!!!!! mai après tu peu bien mettre se qe tu veu si tu veu pa mettre de donné de base mais le qhéma est la
ok gamin ! je le sais, t'inquiète pas pour moi !! et ce n'est pas la sujet ici et je pense que tou le monde aurai compris
Tu peux le faire dans le répertoire de ton choix :
Voir la doc de la fonction fopen() :
http://www.manuelphp.com/php/function.fopen.php
Voir la doc de la fonction fopen() :
http://www.manuelphp.com/php/function.fopen.php