IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

créer un fichier et le remplir


Sujet :

Langage PHP

  1. #1
    Membre actif
    Avatar de yorukaze
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    285
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 285
    Points : 299
    Points
    299
    Par défaut créer un fichier et le remplir
    voila mon soucis.
    je voudrai mettre en place une plateforme pour déposer des tuto.
    Les tuto seront sur le serveur a l'adresse /tuto/tuto1.php

    pour l'instant en phase de test j'ai fait un simple formulaire avec un champ titre et un champ contenu.
    quand on valide, on exécute le script ajouter_tuto.php qui est ci dessous:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    <?php
    	$titre= $_POST['titre'].'.php';
    	$donnee= $_POST['contenu'];
     
    	if (!isset($_POST['titre']))
    	{ echo 'il manque le titre';
    		if(!isset($_POST['contenu']))
    		{echo 'vous devez mettre un contenu avant de valider !';
    		}
    	}
    	else{
    	$path = "./tuto/";
    	$path_ref = "./";
    	$cf = fopen($path."$titre",'w+') or die("fichier $titre.html est inaccessible"); //on ecrit dans le fichier dans le repertoire tuto. Si le fichier existe pas, il est créé
    	$ref = fopen($path_ref."gabarit.php", 'r');
    	fwrite($cf, $ref);
    	fclose($ref);
    	fclose($cf);
    	echo 'votre tuto à bien été enregistré et va donc etre soumis a validation par nos équipes';
    	echo'<a href="/">retour à l\'acceuil du site</a>';
    	}
    ?>
    gabarit.php est une copie du gabarit de mes pages que voila :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
     
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
    	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
     
    	<title>$titre</title>
     
    	<link rel="shortcut icon" type="image/x-icon" href="/image/favicon.ico" />
    	<link rel="stylesheet" type="text/css" media="screen,projection" href="./ecran.css" />
    </head>
     
    <body>
     
    <div id="global">
    <?php
    	include("./header.html");
    ?>
    <?php
    	include("./connexion_utilisateur.html");
    ?>
     
    <?php
    	include("./menu.html");
    ?>
    	<div id="contenu">
    	<?php echo $_post['contenu']; ?>
    	<?php echo $contenu; ?>
    	</div>
     
    <?php
    	include("./footer.html");
    ?>
     
    </div>
     
    </body>
    </html>
    le but du jeu est en fait lorsque je fini de remplir mon formulaire, je le valide est ca me créer une page /tuto/$titre.php.
    cette page $titre.php est formée a partir du gabarit, dans le head, <title> est rempli avec $titre, et dans le div="contenu" on doit trouver la totalité du contenu ecrit
    Avec ma méthode, le fichier est créé sans soucis la ou il faut mais qd je l'ouvre je trouve ressource id # 4.
    voila le dilemne.

  2. #2
    Membre actif
    Avatar de yorukaze
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    285
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 285
    Points : 299
    Points
    299
    Par défaut
    en parti resolu puisque j'ai fait mon barbare.
    En argument de fwrite j'ai passé tout le texte de gabarit.
    j'ai donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    <?php
    	$titre= $_POST['titre'].'.php';
    	$donnee= $_POST['contenu'];
     
    	if (!isset($_POST['titre']))
    	{ echo 'il manque le titre';
    		if(!isset($_POST['contenu']))
    		{echo 'vous devez mettre un contenu avant de valider !';
    		}
    	}
    	else{
    	$path = "./tuto/";
    	$path_ref = "./";
    	$cf = fopen($path."$titre",'w+') or die("fichier $titre.html est inaccessible"); //on ecrit dans le fichier dans le repertoire tuto. Si le fichier existe pas, il est cr&eacute;;&eacute;;
    	fwrite($cf, "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">
    
    <html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"fr\" lang=\"fr\">
    <head>
    	<meta http-equiv=\"Content-Type\" content=\"text/html; charset=\"ISO-8859\" />
    	<title>$titre</title>
    	
    	<link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/image/favicon.ico\" />
    	<link rel=\"stylesheet\" type=\"text/css\" media=\"screen,projection\" href=\"../ecran.css\" />
    </head>
    
    <body>
    
    <div id=\"global\">
    <?php
    	include(\"../header.html\");
    ?>
    <?php
    	include(\"../connexion_utilisateur.html\");
    ?>
     
    <?php
    	include(\"../menu.html\");
    ?>
    	<div id=\"contenu\">
    	<?php echo '$donnee' ?>
    	</div>
     
    <?php
    	include(\"../footer.html\");
    ?>
     
    </div>
     
    </body>
    </html>
    ");
    	fclose($cf);
    	echo 'votre tuto &agrave; bien &eacute;t&eacute; enregistr&eacute; et va donc etre soumis a validation par nos &eacute;quipes' .'<br/>';
    	echo'<a href="/index_tuto.php">retour &agrave; la page des tutoriels</a>';
    	}
    ?>
    le hic c'est que je trouve la methode trop barbare mais je sais pas faire autrement.
    Autre soucis, le texte envoyé avec la méthode POST n'apparait pas dans le fchier créé !
    Une idée?

Discussions similaires

  1. Créer un fichier Excel et le remplir depuis une table MySQL
    Par sihamnet dans le forum Développement Web en Java
    Réponses: 3
    Dernier message: 13/10/2012, 22h24
  2. Créer un fichier d'enregistrements
    Par Oregor dans le forum Langage
    Réponses: 19
    Dernier message: 02/06/2012, 20h02
  3. Réponses: 7
    Dernier message: 26/06/2003, 09h11
  4. [] [Stratégie] Comment créer un fichier log
    Par Skeezo dans le forum Installation, Déploiement et Sécurité
    Réponses: 4
    Dernier message: 16/09/2002, 18h30
  5. Instruction pour créer un fichier text ???
    Par Soulsurfer dans le forum Langage
    Réponses: 2
    Dernier message: 06/08/2002, 11h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo