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 :

copier mon livre d'or dans une autre page en rajoutant une information [PHP 5.0]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 390
    Par défaut copier mon livre d'or dans une autre page en rajoutant une information
    Bonjour à toutes et à tous,

    Voici mon problème du jour.

    J'ai un livre d'or sans base MySQL qui écrit les messages dans un fichier txt
    après moult corrections ça fonctionne bien.
    J'aurais besoin de dupliquer en live les données sur une autre page pour y rajouter une donnée, l'ip du visiteur et du fait je ne veux pas qu'elle soit visible à tous les autres visiteurs du site.
    j'ai trois fichiers un writeguest.php, guestbook.php et un guestbook.txt

    voici les codes des deux fichiers :

    writeguest.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
    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
    <head>
     
    <meta name="description" CONTENT="">
    <meta HTTP-EQUIV="IMAGETOOLBAR" content="no" SCROLLING="yes" >
    <meta name="keywords" CONTENT="">
    <head>
     
      <title></title>
     
    </head>
    <body>
     
     
    <?php
     
    //Ouverture du fichier en écriture
     
    $fp = fopen("/htdocs/livredor/guestbook.txt",a);
     
    //On convertit les caracteres html
     
    echo htmlspecialchars_decode(htmlentities($chaine, ENT_NOQUOTES, 'ISO-8859-1'));
     
    $nom = htmlspecialchars(stripslashes($_POST['nom']));
     
    $mail = htmlspecialchars(stripslashes($_POST['mail']));
     
    $message = htmlspecialchars(stripslashes($_POST['message']));
     
    $ipvisiteur = $_SERVER["REMOTE_ADDR"];
    $d = date ( "d/m/Y H:i:s" );
     
    function censorWords($find=array(),$text=null){
    $replace = ' **** ';
    return preg_replace($find,$replace,$text);
    }
     
    /*liste des mots a filtrer ou expression aussi longue que tu veux*/
    $file = 'guestbook.txt';
    $find = array(
    '/censuré\s/i',
    '/censuré\s/i',
    '/censuré\s/i',
    '/censuré\s/i',
    '/censuré\s/i',
    '/censuré\s/i',
    '/censuré\s/i',
    );
    $newmail = censorWords($find,$mail);
    $newnom = censorWords($find,$nom);
    $newmessage = censorWords($find,$message);
    $page = "";
    $page .= "&nbsp;<b>$newnom</b> &nbsp; $newmail<br> &nbsp;le:&nbsp; $d<br>&nbsp;$newmessage<br><hr>\n";
    //On rajoute le message
    fwrite($fp,"$page" ,strlen("$page"));
    //fermeture du fichier
     
    fclose($fp);
     
    ?>
     
    <?php include("guestbook.php"); ?>
    </body>
    </html>
    et le code guestbook.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
    <!DOCTYPE html>
     
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
    <meta name="description" CONTENT="">
    <meta HTTP-EQUIV="IMAGETOOLBAR" content="no" SCROLLING="yes" >
    <meta name="keywords" CONTENT="">
    <head>
    <title>Livre d'or</title>
     
    <style type="text/css">
    	body { 
    		background: #000000; 
    		color: #000000;
    		font-family: Verdana ;
    	color:white;
    font-size:14px;
        }
     
    </style> 
    <style type="text/css">
    div.grande 
        { 
     
        width : 70%; 
        } 
    p{
      line-height:25px;
    }
     
    </style>
     
    </head>
    <body>
    <form method=post action=writeguest.php 
    onSubmit='if ( this.nom.value.length < 2 ) { return false ;}' >
      <BR><p align="center"><FONT FACE="gabriola" size="9" color="white">titre</FONT></BR><FONT FACE="gabriola" size="6" color="white">Livre d'or </FONT></p></FONT>	
     
    <table border="0" align="center"> 
    <tr><td><img src="test.jpg"></td><td>
     <Div>
    <table>
    <tr><td><FONT FACE="monotype corsiva" size="4" color="white">Nom :</FONT></td>
        <td><input type=text name=nom size=25 ></td></tr>
    <tr><td><FONT FACE="monotype corsiva" size="4" color="white">Mail :</FONT></td>
        <td><input type=text name=mail size=25 ></td></tr>
    <tr><td><FONT FACE="monotupe corsiva" size="4" color="white">Message:</FONT></td><td colspan=1>
            <textarea name=message rows=6 cols=47></textarea>
        </td></tr>
    </table>
    </Div>
     
    </td><td><img src="livre.jpg"></td></td></tr></table>
     
     
    <div style="text-align:center;"><INPUT border=0 src="envoyer.jpg" type=image name="sub" value="Envoyer" /></div>
    </form>
    <div style="text-align:center;"><a href="http://fils-de-saone.fr/index.htm"onMouseOver="window.status='';return true"><img src="bfermer.jpg"  BORDER="0" alt=""/></a></div>
     
    <div align="center" ><div class="grande" style="border:3px solid #000000; padding 1px;"><div style="text-align:left;"><FONT FACE="gabriola" size="6" color="white"  >Vos impressions, commentaires:</FONT></div></div>
    <div align="center" >
    <div class="grande" style="border:3px solid #FFFFFF; padding 3px;"><div style="text-align:left;">
     <?php include("guestbook.txt"); ?></div></div>
     
     
     
    </BR>
    <div style="text-align:center;"><a href="http://test.htm"onMouseOver="window.status='';return true"><img src="bfermer.jpg"  BORDER="0" alt=""/></a></div>
    <div style="text-align:center"><FONT face="gabriola" size="3"color="#FFFFF"><P> Tous drois reserv&eacute;s - All rights reserved, reproduction interdite</font>
    </body>
    </html>
    J'aurais donc besoin de récupérer la variable $ipvisiteur; dans la page copie en l'incérant comme ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $page .= "&nbsp;<b>$newnom</b> &nbsp; $newmail<br> &nbsp;le:&nbsp;$d:&nbsp;Ip:$ipvisiteur<br>&nbsp;$newmessage<br><hr>\n";?>
    J'ai donc pensé créer trois nouveaux fichiers guestbook2.php, writeguest2.php et guestbook2.txt en y ajoutant une session start ( dans les deux pages bien sur ) comme ceci
    dans les deux pages.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php 
    session_start(); 
    $_SESSION['mail'] = $newmail; 
    $_SESSION['nom'] = $newnom;
    $_SESSION['message'] = $newmessage;
    $_SESSION['ipvisiteur'] = $ipvisiteur;
    ?>
    <!DOCTYPE html>
    <head>
    Evidement ça ne fonctionne pas, quelqu'un peut-il m'explique peut être une méthode plus simple ou m'aider à réaliser cela en partant de cette idée de méthode ?
    Par avance merci à tous

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    seul le code d'affichage change. Les données du fichier texte non.

    writeguest.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $page .= "&nbsp;<b>$newnom</b> &nbsp; $newmail<br> &nbsp;le:&nbsp; $d<br>&nbsp;$newmessage<br><hr>\n";
    writeguest2.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $page .= "&nbsp;<b>$newnom</b> &nbsp; $newmail<br> &nbsp;le:&nbsp;$d:&nbsp;Ip:$ipvisiteur<br>&nbsp;$newmessage<br><hr>\n";
    C'est (presque) tout ce qu'il faut modifier.
    Il faut aussi changer les noms des fichiers (+ DANS le code aussi !) :
    • writeguest.php -> writeguest-ip.php
    • guestbook.php -> guestbook-ip.php
    Dernière modification par Invité ; 28/08/2013 à 13h13.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 390
    Par défaut
    Bonjour Jreaux62, oui tout à fait mais dans une page ipguest.php par exemple

  4. #4
    Invité
    Invité(e)
    Par défaut
    1/ guestbook-ip.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
    <!DOCTYPE html>
     
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
    <meta name="description" CONTENT="">
    <meta HTTP-EQUIV="IMAGETOOLBAR" content="no" SCROLLING="yes" >
    <meta name="keywords" CONTENT="">
    <head>
    <title>Livre d'or</title>
     
    <style type="text/css">
    	body { 
    		background: #000000; 
    		color: #000000;
    		font-family: Verdana ;
    	color:white;
    font-size:14px;
        }
     
    </style> 
    <style type="text/css">
    div.grande 
        { 
     
        width : 70%; 
        } 
    p{
      line-height:25px;
    }
     
    </style>
     
    </head>
    <body>
    <form method="post" action="writeguest-ip.php" 
    onSubmit='if ( this.nom.value.length < 2 ) { return false ;}' >
      <BR><p align="center"><FONT FACE="gabriola" size="9" color="white">titre</FONT></BR><FONT FACE="gabriola" size="6" color="white">Livre d'or </FONT></p></FONT>	
     
    <table border="0" align="center"> 
    <tr><td><img src="test.jpg"></td><td>
     <Div>
    <table>
    <tr><td><FONT FACE="monotype corsiva" size="4" color="white">Nom :</FONT></td>
        <td><input type=text name=nom size=25 ></td></tr>
    <tr><td><FONT FACE="monotype corsiva" size="4" color="white">Mail :</FONT></td>
        <td><input type=text name=mail size=25 ></td></tr>
    <tr><td><FONT FACE="monotupe corsiva" size="4" color="white">Message:</FONT></td><td colspan=1>
            <textarea name=message rows=6 cols=47></textarea>
        </td></tr>
    </table>
    </Div>
     
    </td><td><img src="livre.jpg"></td></td></tr></table>
     
     
    <div style="text-align:center;"><INPUT border=0 src="envoyer.jpg" type=image name="sub" value="Envoyer" /></div>
    </form>
    <div style="text-align:center;"><a href="http://fils-de-saone.fr/index.htm"onMouseOver="window.status='';return true"><img src="bfermer.jpg"  BORDER="0" alt=""/></a></div>
     
    <div align="center" ><div class="grande" style="border:3px solid #000000; padding 1px;"><div style="text-align:left;"><FONT FACE="gabriola" size="6" color="white"  >Vos impressions, commentaires:</FONT></div></div>
    <div align="center" >
    <div class="grande" style="border:3px solid #FFFFFF; padding 3px;"><div style="text-align:left;">
     <?php include("guestbook.txt"); ?></div></div>
     
     
     
    </BR>
    <div style="text-align:center;"><a href="http://test.htm"onMouseOver="window.status='';return true"><img src="bfermer.jpg"  BORDER="0" alt=""/></a></div>
    <div style="text-align:center"><FONT face="gabriola" size="3"color="#FFFFF"><P> Tous drois reserv&eacute;s - All rights reserved, reproduction interdite</font>
    </body>
    </html>
    1 ligne modifiée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form method="post" action="writeguest-ip.php"
    2/ writeguest-ip.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
    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
    <head>
     
    <meta name="description" CONTENT="">
    <meta HTTP-EQUIV="IMAGETOOLBAR" content="no" SCROLLING="yes" >
    <meta name="keywords" CONTENT="">
    <head>
     
      <title></title>
     
    </head>
    <body>
     
     
    <?php
     
    //Ouverture du fichier en écriture
     
    $fp = fopen("/htdocs/livredor/guestbook.txt",a);
     
    //On convertit les caracteres html
     
    echo htmlspecialchars_decode(htmlentities($chaine, ENT_NOQUOTES, 'ISO-8859-1'));
     
    $nom = htmlspecialchars(stripslashes($_POST['nom']));
     
    $mail = htmlspecialchars(stripslashes($_POST['mail']));
     
    $message = htmlspecialchars(stripslashes($_POST['message']));
     
    $ipvisiteur = $_SERVER["REMOTE_ADDR"];
    $d = date ( "d/m/Y H:i:s" );
     
    function censorWords($find=array(),$text=null){
    $replace = ' **** ';
    return preg_replace($find,$replace,$text);
    }
     
    /*liste des mots a filtrer ou expression aussi longue que tu veux*/
    $file = 'guestbook.txt';
    $find = array(
    '/censuré\s/i',
    '/censuré\s/i',
    '/censuré\s/i',
    '/censuré\s/i',
    '/censuré\s/i',
    '/censuré\s/i',
    '/censuré\s/i',
    );
    $newmail = censorWords($find,$mail);
    $newnom = censorWords($find,$nom);
    $newmessage = censorWords($find,$message);
    $page = "";
    $page .= "&nbsp;<b>$newnom</b> &nbsp; $newmail<br> &nbsp;le:&nbsp;$d:&nbsp;Ip:$ipvisiteur<br>&nbsp;$newmessage<br><hr>\n";
    //On rajoute le message
    fwrite($fp,"$page" ,strlen("$page"));
    //fermeture du fichier
     
    fclose($fp);
     
    ?>
     
    <?php include("guestbook-ip.php"); ?>
    </body>
    </html>
    2 lignes modifiées :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $page .= "&nbsp;<b>$newnom</b> &nbsp; $newmail<br> &nbsp;le:&nbsp;$d:&nbsp;Ip:$ipvisiteur<br>&nbsp;$newmessage<br><hr>\n";
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php include("guestbook-ip.php"); ?>
    Dernière modification par Invité ; 28/08/2013 à 13h11.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 390
    Par défaut
    Je te remercie infiniment je suis de garde jusqu'à demain soir mais dès que je rentre je test et je reviens vers toi pour te rendre compte de mon avancé
    Encore merci à toi, bonne soirée

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 390
    Par défaut
    Bonjour,
    En relisant la dernière réponse, je me dit comment avoir l'ip supplémentaire dans guets book-ip sans l'afficher dans guets book.php si l'on utilise la même source de stockage guets book.txt ?

  7. #7
    Invité
    Invité(e)
    Par défaut
    Comme tu l'as dit : à l'affichage !

    C'est ce qui est affiché qui est... visible !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ipvisiteur = $_SERVER["REMOTE_ADDR"];
    Pour l'afficher, et donc le rendre visible :
    Tant que tu n'as pas utilisé echo, l'IP n'est pas visible, car pas écrite dans le code html vu par l'internaute.

    Est-ce clair ?

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 390
    Par défaut
    Si j'ai bien compris, le fichier txt serra incrémenté pour chaques requetes de deux lignes, l'une sans adresse ip et l'autre avec cette dernière ?
    Et chaque fichier php afficheront la ligne concernée ?

  9. #9
    Invité
    Invité(e)
    Par défaut
    Il suffit de tester, non ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 14/02/2009, 09h43
  2. appel d'une autre frame à partir d'une autre classe
    Par oceane751 dans le forum AWT/Swing
    Réponses: 18
    Dernier message: 19/01/2008, 06h41
  3. variable d une page html vers une autre page html
    Par éloi_75 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 06/09/2007, 16h20
  4. Réponses: 18
    Dernier message: 22/02/2006, 14h53
  5. Réponses: 7
    Dernier message: 13/12/2005, 16h22

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