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 :

Séparer mon code PHP du code HTML


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    416
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 416
    Points : 63
    Points
    63
    Par défaut Séparer mon code PHP du code HTML
    Bonjour,

    J' ai un fichier guestbook.php et je voudrais séparer le code en 3 parties :

    1 fichier : form.html
    2 fichier : insert.php
    3 fichier : affiche.php

    Pouvez vous m'aider ?

    Merci à vous.

    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
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
     
    <?php
     
    // Inclusion du fichier infos_sql.php
     
    include 'infos_sql.php';  
     
    // Test du champ caché posted.
     
    if($_POST['posted'])
    {
     
       // Si tous les champs sont remplis.
     
        if(!empty($_POST['pseudo']) AND !empty($_POST['email']) AND !empty($_POST['message']))
        {
     
        // On nettoie les données (sauts de ligne en trop…).
     
        $pseudo = trim(ucfirst(addslashes($_POST['pseudo'])));
        $email = trim(addslashes($_POST['email']));
        $message = trim(ucfirst(addslashes($_POST['message'])));
     
        // On définit la requête d’insertion.
     
        $insert = "INSERT INTO guestbook VALUES('','$pseudo','$email','$message','$date')";
     
        // On exécute l’insertion des données dans la table.
     
        $query = mysql_query($insert) OR die("Impossible d’ajouter le message<br>".mysql_error());
     
        // On affiche un message de remerciement au visiteur.
     
        echo '<script language="JavaScript">';
        echo 'alert("Merci pour votre message !");';
        echo '</script>';
     
        }
          // sinon on affiche un message d’erreur et on redirige.
          else
        {
        echo '<script language="Javascript">';
        echo 'alert("Remplissez chaque champ svp !");';
        echo 'javascript:history.back(1);';
        echo '</script>';
        }
    }
     
    ?>
    <html>
    <head>
    <title>Livre d'or</title>
    </head>
    <body>
    <form action="<?php echo $PHP_SELF; ?>" method="POST">
    <input type="hidden" name="posted" value="1">
    <div align="center">
    <center>
    <table border="0" cellpadding="4" cellspacing="5" width="60%" height="107" style="border-style: solid; border-width: 0">
    <tr>
    <td width="32%" height="22" style="border: 1px solid #008000">Votre Pseudo :</td>
    <td width="68%" height="22" style="border: 1 px solid #008000"><input type="text" name="pseudo" size="46"></td>
    </tr>
    <tr>
    <td width="32%" height="21" style="border: 1px solid #008000">Votre Email :</td>
    <td width="68%" height="22" style="border: 1px solid #008000"><input type="text" name="email" size="46"></td>
    </tr>
    <tr>
    <td width="32%" height="21" valign="top" style="border: 1 solid #008000">Votre Message</td>
    <td width="68%" height="21" style="border: 1px solid #008000"><textarea rows="9" name="message" cols="63"></textarea></td>
    </tr>
    <tr>
    <td width="32%" height="21" style="border: 1px solid #008000"></td>
    <td width="68%" height="21" style="border: 1px solid #008000"><input type="submit" value="Soumettre" name="submit">
    <input type="reset" value="Recommencer" name="reset"></td>
    </tr>
    </table>
    </center>
    </div>
    </form>
    <?php
     
    // On vérifie à quel endroit dans la table on récupère les messages.
     
    if(!$start) {$start=0;}
     
    // On effectue une requête de recherche et de sélection des messages.
    $rec = mysql_query("SELECT * FROM guestbook ORDER BY id DESC LIMIT ".$start.",".$nb);
     
    // On extrait les données une à une à l’aide d’une boucle While() ;
     
    while ($row = mysql_fetch_assoc($rec)) 
    {
     
    ?>
    <div align="center">
    <center>
    <table border="0" cellpadding="4" cellspacing="0" width="60%">
    <tr>
    <td width="100%" style="border: 1 solid #000000">&nbsp;De <?php echo stripslashes($row['pseudo']); ?> le <?php echo $row['date']; ?></td>
    </tr>
    <tr>
    <td width="100%" style="border: 1 solid #000000"><?php echo nl2br(stripslashes($row['message'])); ?></td>
    </tr>
    </table>
    </center>
    </div>
    <br><br>
    <?php
    }
     
    // On libère la mémoire cache après la requête.
     
    mysql_free_result($rec);
     
    // On compte le nombre d’enregistrements.
     
    $result=mysql_query("SELECT COUNT(*) FROM guestbook");
    $row = mysql_fetch_row($result);
    ?>
    <p align="left"></p>
    <p align="center">
    <?php
     
    // On utilise un script pour un affichage du nombre de pages :
     
    if ($start == "0") {
    echo"<b><font size=\"1\" face=\"Verdana\">[1]</font></b>";
    } else {
    echo"<a href=\"guestbook.php?start=0\">[1]</a> ";
    }
    for($index=1;($index*$nb)<$row[0];$index++) {
    $pg = $index+1;
    if(($index*$nb)!=$start) {
    print("<a href=\"guestbook.php?start=".($index*$nb)."\">");
    echo"[".$pg."]";
    print("</a>");
    }
    else {
    echo" <b><font size=\"1\" face=\"Verdana\">[".$pg."]</font></b>";
    } }
    ?>
    </p>
    <p align="center">&nbsp;</p>
    </body>
    </html>

  2. #2
    Membre du Club Avatar de cybercandyman
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2005
    Messages
    56
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 56
    Points : 57
    Points
    57
    Par défaut
    Je te conseille de :

    + Faire une classe d'abstraction pour le traitement en Base de Donnée
    -> tu n'auras que ce fichier à changer/mettre à jour si tu changes de Bdd = insert.php (mais faut que ce soit plus générique que ça)
    + D'utiliser un moteur de templates (cf smarty, tres tres bon à mon sens bien que un peu lourd) = form.html
    + Isoler les traitements dans ton fichier = affiche.php

    Fais des recherches du coté du MVC ( qui est une recommandation de dvpt : Modéle Vue Controler), je crois me souvenir qu'il y'a de tres bon exemples sur ce site en PHP.

    Bon dev,
    Cyril

  3. #3
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    416
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 416
    Points : 63
    Points
    63
    Par défaut
    Il y a pas plus simple a faire ?

  4. #4
    Membre actif
    Inscrit en
    Juillet 2007
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 201
    Points : 241
    Points
    241
    Par défaut
    form.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
    <form action="insert.php" method="POST">
    <input type="hidden" name="posted" value="1">
    <div align="center">
    <center>
    <table border="0" cellpadding="4" cellspacing="5" width="60%" height="107" style="border-style: solid; border-width: 0">
     
    <tr>
    <td width="32%" height="22" style="border: 1px solid #008000">Votre Pseudo :</td>
    <td width="68%" height="22" style="border: 1 px solid #008000"><input type="text" name="pseudo" size="46"></td>
    </tr>
    <tr>
    <td width="32%" height="21" style="border: 1px solid #008000">Votre Email :</td>
    <td width="68%" height="22" style="border: 1px solid #008000"><input type="text" name="email" size="46"></td>
    </tr>
    <tr>
    <td width="32%" height="21" valign="top" style="border: 1 solid #008000">Votre Message</td>
    <td width="68%" height="21" style="border: 1px solid #008000"><textarea rows="9" name="message" cols="63"></textarea></td>
    </tr>
    <tr>
    <td width="32%" height="21" style="border: 1px solid #008000"></td>
    <td width="68%" height="21" style="border: 1px solid #008000"><input type="submit" value="Soumettre" name="submit">
    <input type="reset" value="Recommencer" name="reset"></td>
    </tr>
    </table>
    </center>
    </div>
    </form>

    insert.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
    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
    57
    58
    <?php
     
    // Ici tu recupères toutes tes variable envoyer par le formulaire en post...........
     
    $pseudo=$_POST['pseudo']; 
    .....................
     
     
     
    // Inclusion du fichier infos_sql.php
     
    include 'infos_sql.php';  
     
    // Test du champ caché posted.
     
    if($_POST['posted'])
    {
     
       // Si tous les champs sont remplis.
     
        if(!empty($_POST['pseudo']) AND !empty($_POST['email']) AND !empty($_POST['message']))
        {
     
        // On nettoie les données (sauts de ligne en trop…).
     
        $pseudo = trim(ucfirst(addslashes($_POST['pseudo'])));
        $email = trim(addslashes($_POST['email']));
        $message = trim(ucfirst(addslashes($_POST['message'])));
     
        // On définit la requête d’insertion.
     
        $insert = "INSERT INTO guestbook VALUES('','$pseudo','$email','$message','$date')";
     
        // On exécute l’insertion des données dans la table.
     
        $query = mysql_query($insert) OR die("Impossible d’ajouter le message<br>".mysql_error());
     
        // On affiche un message de remerciement au visiteur.
     
        echo '<script language="JavaScript">';
        echo 'alert("Merci pour votre message !");';
        echo '</script>';
     
        }
          // sinon on affiche un message d’erreur et on redirige.
          else
        {
        echo '<script language="Javascript">';
        echo 'alert("Remplissez chaque champ svp !");';
        echo 'javascript:history.back(1);';
        echo '</script>';
        }
    }
     
    // Une fois que tu as fait tous tes traitements, tu renvoies le tout à affichage.php 
     
    echo "<script language=javascript>window.loction=\"affichage.php?pseudo='".$pseudo."'&toutes_les autres_variables \"></script>
    ?>


    affichage.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
    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
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    <?php
     
     
    // avec $_GET tu recupere toutes les infos que tu envoies dans ton lien...
    // On vérifie à quel endroit dans la table on récupère les messages.
     
    if(!$start) {$start=0;}
     
    // On effectue une requête de recherche et de sélection des messages.
    $rec = mysql_query("SELECT * FROM guestbook ORDER BY id DESC LIMIT ".$start.",".$nb);
     
    // On extrait les données une à une à l’aide d’une boucle While() ;
     
    while ($row = mysql_fetch_assoc($rec)) 
    {
     
    ?>
    <div align="center">
    <center>
    <table border="0" cellpadding="4" cellspacing="0" width="60%">
    <tr>
    <td width="100%" style="border: 1 solid #000000">&nbsp;De <?php echo stripslashes($row['pseudo']); ?> le <?php echo $row['date']; ?></td>
    </tr>
    <tr>
    <td width="100%" style="border: 1 solid #000000"><?php echo nl2br(stripslashes($row['message'])); ?></td>
    </tr>
    </table>
    </center>
    </div>
    <br><br>
    <?php
    }
     
    // On libère la mémoire cache après la requête.
     
    mysql_free_result($rec);
     
    // On compte le nombre d’enregistrements.
     
    $result=mysql_query("SELECT COUNT(*) FROM guestbook");
    $row = mysql_fetch_row($result);
    ?>
     
     
     
    <p align="left"></p>
    <p align="center">
    <?php
     
    //affichageee.php
     
    // On utilise un script pour un affichage du nombre de pages :
     
    if ($start == "0") {
    echo"<b><font size=\"1\" face=\"Verdana\">[1]</font></b>";
    } else {
    echo"<a href=\"guestbook.php?start=0\">[1]</a> ";
    }
    for($index=1;($index*$nb)<$row[0];$index++) {
    $pg = $index+1;
    if(($index*$nb)!=$start) {
    print("<a href=\"guestbook.php?start=".($index*$nb)."\">");
    echo"[".$pg."]";
    print("</a>");
    }
    else {
    echo" <b><font size=\"1\" face=\"Verdana\">[".$pg."]</font></b>";
    } }
    ?>
    </p>
    <p align="center">&nbsp;</p>
    </body>
    </html>
    pas tester demande peut etre une amelioration.........

  5. #5
    Rédacteur

    Avatar de Yoteco
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2004
    Messages
    1 099
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 099
    Points : 2 498
    Points
    2 498
    Par défaut
    Citation Envoyé par cdevl32 Voir le message
    Il y a pas plus simple a faire ?
    Sa dépend si tu veux commencer à coder proprement ou continuer à faire des trucs moyens... Un moteur de template et une structure MVC te permettra de rendre ton code beaucoup plus lisible et agréable à reprendre...

    Au début c'est dur mais une fois qu'on a compris on ne peut plus s'en passer.

  6. #6
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    416
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 416
    Points : 63
    Points
    63
    Par défaut
    Bonsoir,

    J'ai tester et séparer mon code mais cela ne fonctionne pas j'ai mon formulaire et quand je tape les infos et que je fais soumettre il ne fais rien, j'ai vérifié dans la db dans PhpAdmin rien non plus il ne fait pas l'INSERT et affiche rien non plus sur ma page ?

    Pouvez vous m'aider ? merci à vous.

    Voici mon code source :

    infos_sql.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
     
    <?php
     
    // ----------------------------------------------
    // Fichier de configuration infos_sql.php
    // ----------------------------------------------
     
    // Definition des variables d'accès à la base de donnée
     
    $serveur = "localhost"; // Votre serveur. Ex : localhost.
    $login = "root"; // Votre Login de connexion à la base.
    $pass = ""; // Votre Password de connexion à la base.
    $base = "livredor"; // Le Nom de votre Base de Données.
    $nb = 10; // Nombre de messages max par page.
     
    //------- A partir de la, ne touchez plus à rien -------------//
     
    $now_Y = date("Y");
    $now_m = date("m");
    $now_d = date("d");
    $now_H = date("H");
    $now_i = date("i");
    $now_s = date("s");
     
    $date = "$now_d-$now_m-$now_Y à $now_H:$now_i:$now_s";
     
    mysql_connect($serveur,$login,$pass) or die ("Le Serveur ne répond pas");
    mysql_select_db("$base") or die ("Connexion à la base $base impossible");
     
    ?>
    form.html

    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
     
    <html>
    <!-- Date de création: 29/10/2007 -->
    <head>
      <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
      <title></title>
      <meta name="description" content="">
      <meta name="keywords" content="">
    </head>
    <body>
     
    <form action="insert.php" method="POST">
    <input type="hidden" name="posted" value="1">
    <div align="center">
    <center>
    <table border="0" cellpadding="4" cellspacing="5" width="60%" height="107" style="border-style: solid; border-width: 0">
     
    <tr>
    <td width="32%" height="22" style="border: 1px solid #008000">Votre Pseudo :</td>
    <td width="68%" height="22" style="border: 1 px solid #008000"><input type="text" name="pseudo" size="46"></td>
    </tr>
    <tr>
    <td width="32%" height="21" style="border: 1px solid #008000">Votre Email :</td>
    <td width="68%" height="22" style="border: 1px solid #008000"><input type="text" name="email" size="46"></td>
    </tr>
    <tr>
    <td width="32%" height="21" valign="top" style="border: 1 solid #008000">Votre Message</td>
    <td width="68%" height="21" style="border: 1px solid #008000"><textarea rows="9" name="message" cols="63"></textarea></td>
    </tr>
    <tr>
    <td width="32%" height="21" style="border: 1px solid #008000"></td>
    <td width="68%" height="21" style="border: 1px solid #008000"><input type="submit" value="Soumettre" name="submit">
    <input type="reset" value="Recommencer" name="reset"></td>
    </tr>
    </table>
    </center>
    </div>
    </form>
    </body>
    </html>
    insert.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
    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
    57
    58
     
    <?php
     
    // Ici tu recupères toutes tes variable envoyer par le formulaire en post...........
     
    $pseudo=$_POST['pseudo']; 
    $email=$_POST['email'];
    $message=$_POST['message'];
     
    // Inclusion du fichier infos_sql.php
     
    include 'infos_sql.php';  
     
    // Test du champ caché posted.
     
    if($_POST['posted'])
    {
     
       // Si tous les champs sont remplis.
     
        if(!empty($_POST['pseudo']) AND !empty($_POST['email']) AND !empty($_POST['message']))
        {
     
        // On nettoie les données (sauts de ligne en trop…).
     
        $pseudo = trim(ucfirst(addslashes($_POST['pseudo'])));
        $email = trim(addslashes($_POST['email']));
        $message = trim(ucfirst(addslashes($_POST['message'])));
     
        // On définit la requête d’insertion.
     
        $insert = "INSERT INTO guestbook VALUES('','$pseudo','$email','$message','$date')";
     
        // On exécute l’insertion des données dans la table.
     
        $query = mysql_query($insert) OR die("Impossible d’ajouter le message<br>".mysql_error());
     
        // On affiche un message de remerciement au visiteur.
     
        echo '<script language="JavaScript">';
        echo 'alert("Merci pour votre message !");';
        echo '</script>';
     
        }
          // sinon on affiche un message d’erreur et on redirige.
          else
        {
        echo '<script language="Javascript">';
        echo 'alert("Remplissez chaque champ svp !");';
        echo 'javascript:history.back(1);';
        echo '</script>';
        }
    }
     
    // Une fois que tu as fait tous tes traitements, tu renvoies le tout à affichage.php 
     
    echo "<script language=javascript>window.loction=\"affichage.php?pseudo='".$pseudo."'&toutes_les autres_variables \"></script>
    ?>
    affichage.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
    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
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
     
    <?php
     
     
    // avec $_GET tu recupere toutes les infos que tu envoies dans ton lien...
    // On vérifie à quel endroit dans la table on récupère les messages.
     
    if(!$start) {$start=0;}
     
    // On effectue une requête de recherche et de sélection des messages.
    $rec = mysql_query("SELECT * FROM guestbook ORDER BY id DESC LIMIT ".$start.",".$nb);
     
    // On extrait les données une à une à l’aide d’une boucle While() ;
     
    while ($row = mysql_fetch_assoc($rec)) 
    {
     
    ?>
    <div align="center">
    <center>
    <table border="0" cellpadding="4" cellspacing="0" width="60%">
    <tr>
    <td width="100%" style="border: 1 solid #000000">&nbsp;De <?php echo stripslashes($row['pseudo']); ?> le <?php echo $row['date']; ?></td>
    </tr>
    <tr>
    <td width="100%" style="border: 1 solid #000000"><?php echo nl2br(stripslashes($row['message'])); ?></td>
    </tr>
    </table>
    </center>
    </div>
    <br><br>
    <?php
    }
     
    // On libère la mémoire cache après la requête.
     
    mysql_free_result($rec);
     
    // On compte le nombre d’enregistrements.
     
    $result=mysql_query("SELECT COUNT(*) FROM guestbook");
    $row = mysql_fetch_row($result);
    ?>
     
     
     
    <p align="left"></p>
    <p align="center">
    <?php
     
    //affichageee.php
     
    // On utilise un script pour un affichage du nombre de pages :
     
    if ($start == "0") {
    echo"<b><font size=\"1\" face=\"Verdana\">[1]</font></b>";
    } else {
    echo"<a href=\"guestbook.php?start=0\">[1]</a> ";
    }
    for($index=1;($index*$nb)<$row[0];$index++) {
    $pg = $index+1;
    if(($index*$nb)!=$start) {
    print("<a href=\"guestbook.php?start=".($index*$nb)."\">");
    echo"[".$pg."]";
    print("</a>");
    }
    else {
    echo" <b><font size=\"1\" face=\"Verdana\">[".$pg."]</font></b>";
    } }
    ?>
    </p>
    <p align="center">&nbsp;</p>
    </body>
    </html>

  7. #7
    Membre du Club Avatar de cybercandyman
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2005
    Messages
    56
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 56
    Points : 57
    Points
    57
    Par défaut
    Tu as une erreur de syntaxe dans insert.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo "<script language=javascript>window.loction=\"affichage.php?pseudo='".$pseudo."'&toutes_les autres_variables \"></script>
    Edit : meme deux erreurs, qui sont faciles à trouver.

    (Le soucis avec cette structure c'est que tu as toujours du code PHP et du HTML mélangé)

    Pense à activer l'affichage des erreurs quand tu fais du developpement

  8. #8
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    416
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 416
    Points : 63
    Points
    63
    Par défaut
    Bonjour,

    Mon Insert.php ne fonctionne tj pas pouvez vous voir ou est l'erreur dans mon fichier ?

    Merci à vous.

    Bonne journée.

    insert.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
    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
    57
    58
     
    <?php
     
    // Ici tu recupères toutes tes variable envoyer par le formulaire en post...........
     
    $pseudo=$_POST['pseudo']; 
    $email=$_POST['email'];
    $message=$_POST['message'];
     
    // Inclusion du fichier infos_sql.php
     
    include 'infos_sql.php';  
     
    // Test du champ caché posted.
     
    if($_POST['posted'])
    {
     
       // Si tous les champs sont remplis.
     
        if(!empty($_POST['pseudo']) AND !empty($_POST['email']) AND !empty($_POST['message']))
        {
     
        // On nettoie les données (sauts de ligne en trop…).
     
        $pseudo = trim(ucfirst(addslashes($_POST['pseudo'])));
        $email = trim(addslashes($_POST['email']));
        $message = trim(ucfirst(addslashes($_POST['message'])));
     
        // On définit la requête d’insertion.
     
        $insert = "INSERT INTO guestbook VALUES('','$pseudo','$email','$message','$date')";
     
        // On exécute l’insertion des données dans la table.
     
        $query = mysql_query($insert) OR die("Impossible d’ajouter le message<br>".mysql_error());
     
        // On affiche un message de remerciement au visiteur.
     
        echo '<script language="JavaScript">';
        echo 'alert("Merci pour votre message !");';
        echo '</script>';
     
        }
          // sinon on affiche un message d’erreur et on redirige.
          else
        {
        echo '<script language="Javascript">';
        echo 'alert("Remplissez chaque champ svp !");';
        echo 'javascript:history.back(1);';
        echo '</script>';
        }
    }
     
    // Une fois que tu as fait tous tes traitements, tu renvoies le tout à affichage.php 
     
    echo "<script language=javascript>window.loction=\"affichage.php?pseudo='".$pseudo.", ".$email.", ".$message.", ".$date."\"></script>
    ?>

  9. #9
    Membre actif
    Inscrit en
    Juillet 2007
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 201
    Points : 241
    Points
    241
    Par défaut
    As tu fais un echo de ton insert?que te renvoit til?

    Sinon je crois que ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    echo "<script language=javascript>window.loction=\"affichage.php?pseudo='".$pseudo.", ".$email.", ".$message.", ".$date."\"></script>
    ?>";
    devrait se remplancer

    par ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    echo "<script language=javascript>window.loction=\"affichage.php?pseudo='".$pseudo."&email= '".$email."'&message='".$message."'&date='".$date."'\"></script>
    ?>";

  10. #10
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    416
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 416
    Points : 63
    Points
    63
    Par défaut
    Bonsoir,

    Merci à vous pour votre aide mon insert fonctionne, mais par contre pour se qui est de l'affichage du message dans affichage.php la il ne fais rien après l'insert ?

    Pouvez vous me dire se qui ne vas pas dans mon fichier affichage.php

    Merci

    affichage.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
    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
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
     
    <?php
     
     
    // avec $_GET tu recupere toutes les infos que tu envoies dans ton lien...
    // On vérifie à quel endroit dans la table on récupère les messages.
     
    if(!$start) {$start=0;}
     
    // On effectue une requête de recherche et de sélection des messages.
    $rec = mysql_query("SELECT * FROM guestbook ORDER BY id DESC LIMIT ".$start.",".$nb);
     
    // On extrait les données une à une à l’aide d’une boucle While() ;
     
    while ($row = mysql_fetch_assoc($rec)) 
    {
     
    ?>
    <div align="center">
    <center>
    <table border="0" cellpadding="4" cellspacing="0" width="60%">
    <tr>
    <td width="100%" style="border: 1 solid #000000">&nbsp;De <?php echo stripslashes($row['pseudo']); ?> le <?php echo $row['date']; ?></td>
    </tr>
    <tr>
    <td width="100%" style="border: 1 solid #000000"><?php echo nl2br(stripslashes($row['message'])); ?></td>
    </tr>
    </table>
    </center>
    </div>
    <br><br>
    <?php
    }
     
    // On libère la mémoire cache après la requête.
     
    mysql_free_result($rec);
     
    // On compte le nombre d’enregistrements.
     
    $result=mysql_query("SELECT COUNT(*) FROM guestbook");
    $row = mysql_fetch_row($result);
    ?>
     
     
     
    <p align="left"></p>
    <p align="center">
    <?php
     
    //affichageee.php
     
    // On utilise un script pour un affichage du nombre de pages :
     
    if ($start == "0") {
    echo"<b><font size=\"1\" face=\"Verdana\">[1]</font></b>";
    } else {
    echo"<a href=\"guestbook.php?start=0\">[1]</a> ";
    }
    for($index=1;($index*$nb)<$row[0];$index++) {
    $pg = $index+1;
    if(($index*$nb)!=$start) {
    print("<a href=\"guestbook.php?start=".($index*$nb)."\">");
    echo"[".$pg."]";
    print("</a>");
    }
    else {
    echo" <b><font size=\"1\" face=\"Verdana\">[".$pg."]</font></b>";
    } }
    ?>
    </p>
    <p align="center">&nbsp;</p>
    </body>
    </html>

  11. #11
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    416
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 416
    Points : 63
    Points
    63
    Par défaut
    J'ai fini par garder tout sur une même page livreor.php.


    J'ai encore 2 problèmes :

    - quand je clique sur le bouton soumettre, il insère tout correctement dans la base de données, mais m'affiche 2 fois le message "merci pour votre message"

    - après cela, je voudrais qu'il revienne directement dans ma page livreor.php adaptée avec le nouveau message et tenant compte du CSS, au lieu de retourner sur une page qui ne tient pas compte du CSS.

    Pouvez-vous m'aider car je n'y arrive pas?

    merci.

    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
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
     
    <?php
     
    // Inclusion du fichier infos_sql.php
     
    include 'infos_sql.php';  
     
    // Test du champ caché posted.
     
    if($_POST['posted'])
    {
     
       // Si tous les champs sont remplis.
     
        if(!empty($_POST['pseudo']) AND !empty($_POST['email']) AND !empty($_POST['message']))
        {
     
        // On nettoie les données (sauts de ligne en trop…).
     
        $pseudo = trim(ucfirst(addslashes($_POST['pseudo'])));
        $email = trim(addslashes($_POST['email']));
        $message = trim(ucfirst(addslashes($_POST['message'])));
     
        // On définit la requête d’insertion.
     
        $insert = "INSERT INTO guestbook VALUES('','$pseudo','$email','$message','$date')";
     
        // On exécute l’insertion des données dans la table.
     
        $query = mysql_query($insert) OR die("Impossible d’ajouter le message<br>".mysql_error());
     
        // On affiche un message de remerciement au visiteur.
     
        echo '<script language="JavaScript">';
        echo 'alert("Merci pour votre message !")';
        echo '</script>';
     
        }
          // sinon on affiche un message d’erreur et on redirige.
          else
        {
        echo '<script language="Javascript">';
        echo 'alert("Remplissez chaque champ svp !");';
        echo 'javascript:history.back(1);';
        echo '</script>';
        }
    }
     
    ?>
    <!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">
    <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    <meta name="keywords" content="" />
    <meta name="description" content="" />
    <link href="CSS.css" rel="stylesheet" type="text/css" />
    </head>
    <body>
    <div class="bg">
    	<div id="header">
    		<div id="logo">
    			<h1><a href="index.html">D'un rêve à l'autre</a></h1>			
    		</div>
    		<div id="menu">
    			<h2>Navigation Menu</h2>
    			<ul>
    				<li><a href="index.html">Accueil</a></li>
    				<li><a href="produits.html">Produits</a></li>
    				<li><a href="services.html">Services</a></li>
    				<li><a href="livreor.php">Livre d'or</a></li>
    				<li><a href="contact.html">Contact</a></li>
    			</ul>
    		</div>
    	</div>
    	<div id="wrapper">
     
    			<div id="welcome">
    				<h2>Mon Livre d'Or</h2><br><br>
    				<form action="<?php echo $PHP_SELF; ?>" method="POST">
    <input type="hidden" name="posted" value="1">
    <div align="center">
    <center>
    <table border="0" cellpadding="4" cellspacing="5" width="60%" height="107" style="border-style: solid; border-width: 0">
     
    <tr>
    <td width="32%" height="21">Pseudo :</td>
    <td width="68%" height="22" ><input type="text" name="pseudo" size="46"></td>
    </tr>
    <tr>
    <td width="32%" height="21">E-mail :</td>
    <td width="68%" height="22" ><input type="text" name="email" size="46"></td>
    </tr>
    <tr>
    <td width="32%" height="21">Votre message :</td>
    <td width="68%" height="21" ><textarea rows="9" name="message" cols="63"></textarea></td>
    </tr>
    <tr>
    <td width="32%" height="21"></td>
    <td width="68%" height="21"><input type="submit" value="Soumettre" name="submit">
    <input type="reset" value="Recommencer" name="reset"></td>
    </tr>
    </table>
    </center>
     
    </form><br><br><br>
     
     
     
    <?php
     
    // On vérifie à quel endroit dans la table on récupère les messages.
     
    if(!$start) {$start=0;}
     
    // On effectue une requête de recherche et de sélection des messages.
    $rec = mysql_query("SELECT * FROM guestbook ORDER BY id DESC LIMIT ".$start.",".$nb);
     
    // On extrait les données une à une à l’aide d’une boucle While() ;
     
    while ($row = mysql_fetch_assoc($rec)) 
    {
     
    ?>
    <div align="center">
    <center>
     
    <tr>
    <td>De <?php echo stripslashes($row['pseudo']); ?> le <?php echo $row['date']; ?></td>
    </tr>
    <tr>
    <td><?php echo nl2br(stripslashes($row['message'])); ?></td>
    </tr>
     
    </center>
    </div>
    <br><br> 
     
    <?php
    }
     
    // On libère la mémoire cache après la requête.
     
    mysql_free_result($rec);
     
    // On compte le nombre d’enregistrements.
     
    $result=mysql_query("SELECT COUNT(*) FROM guestbook");
    $row = mysql_fetch_row($result);
    ?>
    <p align="left"></p>
    <p align="center">
    <?php
     
    // On utilise un script pour un affichage du nombre de pages :
     
    if ($start == "0") {
    echo"<b><font size=\"1\" face=\"Verdana\">[1]</font></b>";
    } else {
    echo"<a href=\"livreor.php?start=0\">[1]</a> ";
    }
    for($index=1;($index*$nb)<$row[0];$index++) {
    $pg = $index+1;
    if(($index*$nb)!=$start) {
    print("<a href=\"livreor.php?start=".($index*$nb)."\">");
    echo"[".$pg."]";
    print("</a>");
    }
    else {
    echo" <b><font size=\"1\" face=\"Verdana\">[".$pg."]</font></b>";
    } }	
     
    ?> 
    </div></div></div>
    <center>  
    <div id="footer">Copyright © 2007 Your Company Name, All rights reserved.<br /></div>
    </center>
    </body>
    </html>

Discussions similaires

  1. Séparation du code php du code html
    Par aymen8219 dans le forum Langage
    Réponses: 21
    Dernier message: 06/12/2012, 13h57
  2. [PHP 5.0] Code PHP dans balise HTML
    Par jojo971 dans le forum Langage
    Réponses: 8
    Dernier message: 28/11/2011, 10h45
  3. [PHP] Interpréter le code PHP des fichiers html
    Par adanall dans le forum Apache
    Réponses: 2
    Dernier message: 04/05/2008, 15h33
  4. Réponses: 9
    Dernier message: 04/07/2007, 19h27
  5. Réponses: 4
    Dernier message: 21/06/2006, 16h09

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