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

PHP & Base de données Discussion :

Ecrire dans un fichier html avec php


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2023
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2023
    Messages : 5
    Par défaut Ecrire dans un fichier html avec php
    Bonjour,
    je cherche à écrire à l'intérieur un fichier html avec le code php suivant :
    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
    <?php
     
    $quantity= $_POST['quantity'];
     
    $price = $_POST['price'];
     
    $name= $_POST['name'];
     
    $total = $name* $price;
     
    $data= array("$quantity","$price","$total");
     
    $D4 = fopen('fichier.html,'w');
    
    fwrite($D4,"$name|$quantity|$price|$total|@");
    
    fclose($D4);
    ?>
    Je souhaiterais faire en sorte d'écrire à l'intérieur du body du fichier html or avec ma méthode un fichier vierge est créé (même si je le créé avant)
    Mais je ne sais pas comment faire...
    Pouvez vous m'aider ?
    Merci beaucoup !

  2. #2
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 315
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 315
    Billets dans le blog
    17
    Par défaut
    C'est normal, le mode w ouvre le fichier en écriture et le vide
    Pour ajouter des données à un fichier on l'ouvre en mode a (pour append)
    Il existe d'autres modes d'ouverture, voir la doc de fopen()

    Généralement on n'écrit pas dans un fichier HTML, on génère dynamiquement du HTML en PHP (page en .php)

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2023
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2023
    Messages : 5
    Par défaut
    J'ai cherché comment générer dynamiquement du HTML en PHP et voilà à quoi je suis arrivé !
    Seulement, le tableau ainsi généré ne garde pas en mémoire les informations. Si je rentre un autre nom et prénom dans mon formulaire le nom/prénom précédent est effacé (je voudrais que mon php me retourne un tableau avec une liste de nom prénom).
    J'imagine que cela ce fait avec fopen("a") mais je n'arrive pas à le placer dans mon code pour faire en sorte que ça fonctionne... :/

    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
    <?php
      $nom = $_POST['nom'];
      $prenom = $_POST['prenom'];
        $tb = "<table>
                <tr>
                <th>Nom</th>
                <th>Prénom.</th>
                </tr>";
        $tb .= "<tr>
                <td>$nom</td>
                <td>$prenom</td>
                </tr>";
        $tb .= '</table>';
     
        $code=<<<heredocs
        <!DOCTYPE html>
        <html lang='fr'>
        <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <style type='text/css'>
        #tb
        {
            position:relative;
            float:left;
            margin:2% 5%;
            width:80%;
            font-size:14px;
            background-color:white;
        }
        </style>
        </head>
        <body bgcolor='#a0a0a0'>
        <center>
        <h1>Liste</h1>
        <br>
        <div id='tb'>
        $tb
        </div>
        </body>
        </html>
    heredocs;
        echo $code;

  4. #4
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 597
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 597
    Par défaut
    il vaut mieux séparer les données et l'affichage.
    vous n'avez pas accès à un sgbd comme mysql par exemple ?

  5. #5
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 315
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 315
    Billets dans le blog
    17
    Par défaut
    Il faut stocker les informations dans une base de données.
    Pour cela on utilise MySQL, PostgreSQL, ou d'autres.
    Pour débuter je peux te montrer comment enregistrer les données dans un fichier plat CSV qui fera office de base de données du pauvre

    Il faut créer un fichier data.csv et un fichier index.php côte à côte.

    index.php :
    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
    <?php
        $data_file = __DIR__ . '/data.csv';
     
        if (isset($_POST['last_name'], $_POST['first_name'])) { // Le formulaire a-t-il été soumis ?
            $stream = fopen($data_file, 'a'); // Si oui on ouvre le fichier de données
            fputcsv($stream, [$_POST['last_name'], $_POST['first_name']], ',', '"', ''); // On y ajoute les valeurs soumises en CSV
            fclose($stream);
        }
     
        $stream = fopen($data_file, 'r'); // Ouverture du fichier de données
    ?>
    <!doctype html>
    <meta charset="utf-8">
    <title>Mon premier formulaire</title>
    <form method="post">
        <input type="text" name="last_name" placeholder="Nom">
        <input type="text" name="first_name" placeholder="Prénom">
        <input type="submit">
    </form>
    <table border="1">
        <tr>
            <th>Nom</th>
            <th>Prénom</th>
        </tr>
        <?php while ($record = fgetcsv($stream, 0, ',', '"', '')): // Parcour du fichier de données ?>
            <tr>
                <td><?= htmlspecialchars($record[0]) ?></td>
                <td><?= htmlspecialchars($record[1]) ?></td>
            </tr>
        <?php endwhile ?>
    </table>
    Avec ceci tu as une page web PHP dynamique alimentée par un fichier CSV.

Discussions similaires

  1. Réponses: 5
    Dernier message: 02/10/2015, 15h52
  2. ecrire dans un fichier xml avec php
    Par gilbertbicot dans le forum Langage
    Réponses: 1
    Dernier message: 21/01/2009, 13h10
  3. Réponses: 3
    Dernier message: 27/11/2006, 19h57
  4. creer fichier .html avec php
    Par nicerico dans le forum Langage
    Réponses: 3
    Dernier message: 16/10/2006, 12h23
  5. Réponses: 9
    Dernier message: 22/05/2006, 12h21

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