Jump to content

Need some help with a guestbook script urgently


daveclissold

Recommended Posts

I have just put together a personal site and am trying to integrate a php guestbook. I obtained a free guestbook, called easyboard and have followed the instructions asto the installation but the html page that I've incorprated the board isn't actually working it won't display anyof the test messages I enter.

 

Main PHP page which is linked to in my site - board html

 

 

<!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="en">



<head>

  <title>DaveClissold.com - Changing my life one day at a time</title>

  <meta http-equiv="content-type" content="text/html; charset=utf-8" />

  <meta name="keywords" content="" />

  <meta name="author" content="Will Rossiter" />

  <style type="text/css" media="screen">

    @import url(../images/styles.css);

.style18 {color: #CCCCCC; font-size: 12px; font-family: Verdana; }

  .style19 {color: #FFFFFF}

  .style20 {font-family: Verdana}

  .style21 {color: #FF0000}

  </style>

</head>



<body>

<!--RiteCounter--><script type="text/javascript" src="http://www.ritecounter.com/c/52/51905.js"></script><noscript><div><a href="http://logodesign.ritecounter.com"><img src="http://www.ritecounter.com/scripts/htmlc.php?id=51905" alt="Online Logo Design" style="border:0 hidden"/></a></div></noscript><!--END RiteCounter-->

<div id="container">



<div id="leftcol">



<h1><img src="/images/davelogo12.jpg" alt="" width="200" height="80" /></h1>

<p class="sub">Changing my life one day at a time <a href="http://www.willr.co.nz"></a></p>



<h3>Navigation</h3>

<ul>

<li><a href="/index.html"><span class="style18"><img src="/images/bullet.jpg" alt="bullet" width="11" height="11" /></span> Home</a></li>

<li><a href="/diary/diarymain.html"><span class="style19"><img src="/images/bullet.jpg" alt="bullet" width="11" height="11" /></span> Diary</a></li>

<li><a href="/recipes.html"><span class="style19"><img src="/images/bullet.jpg" alt="bullet" width="11" height="11" /></span> Recipes</a></li>

<li><a href="/photos.html"><span class="style19"><img src="/images/bullet.jpg" alt="bullet" width="11" height="11" /></span> Photos</a></li>

<li><a href="/links.html"><span class="style19"><img src="/images/bullet.jpg" alt="bullet" width="11" height="11" /></span> Links</a></li>

<li><a href="mailto:dave@daveclissold.com"><span class="style19"><img src="/images/bullet.jpg" alt="bullet" width="11" height="11" /></span> Contact</a></li>

</ul>

</div>





<div id="rightcol">



    <div align="left">

      <!-- 

    Switches, if these get deleted, easyboard will not have the functionality 

    they represent.



    spamprotect adds a _nospam_ to each email to avoid bots to scan your page

    for spamming



    increase:x defines how many guestbook entries will be displayed at a time 

    and enables the display of back / next links



    owner:email defines the owner of the guestbook, each entry will be sent 

    there as a copy

-->

      <!-- spamprotect -->

      <!-- increase:10 -->

      <!-- owner:dave.clissold@gmail.com -->

      

      <!-- ### The welcome message ### -->

      <!-- start:item -->

    </div>

  <p align="left">  

  <h4 align="left"><strong>%Name%</strong> email:<a href="mailto:%email%?body=Please remove the _nospam_ in the email" class="content">%email% wrote on %entrydate%</h4>

  </p>

    <p align="left">%message%</p>

  <p align="left">

  

    <div align="left"><br />

      <!-- end:item -->

  </div>

  <div align="right">

    <p>

      <!-- start:back -->

      <h2 class="style18"><a href="../backurl" class="content">< previous  </a>

        <!-- end:back --><!-- start:next --><a href="../nexturl" class="content">next ></a></h2>

        <h2 class="style18"><a href="..//board/easyboard.php?action=sign" class="content">Sign Guestbook</a></h2></p>

      

  <!-- ### The message displayed when someone tries to spam the book by reloading ### -->

  <!-- start:spam -->

  </div>

    <div class="warning">

      <p class="style21">Please do NOT spam this guestbook, thank you!</p>

    </div>

  <br />

  <div align="right">

    <p><h2 class="style18"><a href="..//board/easyboard.php?action=view" class="content">View Guestbook</a></h2></p>

  </div>

    <!-- end:spam -->

  

  <!-- ### The message displayed when someone forgot to enter a field ### -->

  <!-- ### the "field" comment  will get replaced with the missing field names ### -->

  <!-- start:forgottenfields -->

  <div class="warning">

    <p>Sorry you forgot to enter the following fields:

      <!-- fields -->

      Please re-enter them.</p>

  </div>

  <p><br />

      <!-- end:forgottenfields -->

    

      <!-- ### The message displayed when the entered email is invalid ### -->

      <!-- start:invalidemail -->

  </p>

  <div class="warning">

    <p>The email you entered was not valid</p>

  </div>

  <p><br />

      <!-- end:invalidemail -->

    

      <!-- ### The message displayed when someone succesfully signed the guestbook ### -->

      <!-- start:thanks -->

  </p>

  <div class="thanks">

    <p>Thank you for your support in my quest for completing this challenge and turning my life around.</p>

  </div>

  <br />

  <div><h2 class="style18" align="right"><a href="..//board/easyboard.php?action=view" class="content">View Guestbook</a></h2></div>

  <!-- end:thanks -->

  

  

  <!-- ### The entry form, each input element will be added as data ### -->

  <!-- ### See the easyboard homepage for more info! ### -->

  <!-- start:form -->

  <form method="post">

  <table border="0">

  <tr>

    <td class="content" width="10%"><p>Name:*</p></td>

      <td><input type="text" name="Name" size="20" class="input" value="%Name%" /></td>

  </tr>

  <tr>

    <td class="content" width="10%"><p>Email:*</p></td>

      <td><input type="text" name="email" size="20" class="input" value="%email%" /></td>

  </tr>

  <tr>

    <td class="content" width="10%"><p>Website</p></td>

      <td><input type="text" name="url" size="20" class="input" value="%url%" /></td>

  </tr>

  <tr>

    <td class="content" colspan="2"><p>Your Message:*</p></td>

  </tr>

  <tr>

    <td colspan="2"><textarea name="message" cols="40" rows="5" class="input" >%message%</textarea></td>

  </tr>

  <tr>

    <td colspan="2" align="center">

  <!-- ### these two fields are mandatory ### -->

  <input type="submit" value="Add to Guestbook"/></td>

  </tr>

  </table>

  </form>

  <br />

  <div align="right">

    <p><h2 class="style18"><a href="..//board/easyboard.php?action=view" class="content style19 style20">View Guestbook</a></h2></p>

  </div>

  <!-- end:form -->

  

  <!-- ### The display of the book ### -->

  <!-- start:item -->

  <div class="gbhead"><br />

  <p><h4><strong>%Name%</strong> email:<a href="mailto:%email%?body=Please remove the _nospam_ in the email" class="content">%email% wrote on %entrydate%</h4>

  </p>

  <p>%message%

  </p>

  <p></div>

  <br />

  <!-- end:item -->

  <div align="right">

    <p>

      <!-- start:back -->

      <h2 class="style18"><a href="../backurl" class="content">< previous  </a>

        <!-- end:back --><!-- start:next --><a href="../nexturl" class="content">next ></a></h2>

        <h2 class="style18"><a href="..//board/easyboard.php?action=sign" class="content">Sign Guestbook</a></h2></p>

  </div>

  

<!-- end:display -->  

  <p align="right"> Copyright © 2007, Dave Clissold.  All rights reserved</p>

</div></div>



<!-- Stats Script Start -->

<script type="text/javascript">

<!--

var FCS_Account="891";

var FCS_Server="http://www.statsrely.com/newdesign";

var FCS_Page="DetectName";

var FCS_Url="DetectUrl";

var FCS_Offset="8";

var FCS_Interval="24";

var FCS_Cntimg="100";

// -->

</script>

<script type="text/javascript" src="http://www.statsrely.com//js.php?usr=891">

</script>

<noscript>

<a href="http://www.statsrely.com/" target="_blank">

<img src="http://www.statsrely.com/newdesign/stat.php?usr=891&offset=8&interval=24&cntimg=100" title="Stats Rely Free Hit Counter!"></a>

</noscript>

<!-- Stats Script  End  -->

</body>

</html> 

 

 

 

 

 

This is the php script that I downloaded as part of the zip file entitled easyboard.php

 

 

 

 

<?php

/*

    Easyboard Version 3.4

    written by Christian Heilmann

    Homepage:http://www.onlinetools.org/



    Do not change any code here, the whole functionality is triggered by 

    comments in the HTML Template!

    requires entries.xml and guestbook_template.html to work.

*/





$action=$_GET['action'];

if ($_POST['action']!="") {$action=$_POST['action'];}

$start=$_GET['start'];

$action=strip_tags($action);

$start=strip_tags($start);



$HTML=load("board.html");



preg_match("/<!-- dateformat:(.*?) -->/",$HTML,$dateformat);

if($dateformat[1]==""){$dateformat = "M d Y H:i:s";}

else {$dateformat = $dateformat[1];}



if ($action==''){

    echo displaysetup("invalidemail,forgottenfields,thanks,form,display,spam");

}



if ($action=="view"){

    $gb=load("easyboard_entries.xml");

    if (untag($gb,"entry",1)!=""){

    $HTML=displaysetup("invalidemail,forgottenfields,thanks,form,hello,spam");

    preg_match_all("/<!-- start:item -->(.*?)<!-- end:item -->/si",$HTML,$item);    

    $entries=array_reverse(untag($gb,"entry",1));

    preg_match_all("/%(.*?)%/",$item[1][0],$vars);

    preg_match("/<!-- increase:(.*?) -->/si",$HTML,$inc);    

    if ($inc[1]==""){$increase=sizeof($entries);}

    else{$increase=$inc[1];}

    if(!$start){$start=0;}

    $end=$start+$increase;

    if ($start >= $increase){

    preg_match_all("/<!-- start:back -->(.*?)<!-- end:back -->/si",$HTML,$back);    

    $back=$back[1][0];

    $back=preg_replace("/backurl/",$PHP_SELF."?action=view&start=".($start-$increase),$back);

    $HTML=preg_replace("/<!-- start:back -->(.*?)<!-- end:back -->/si",$back,$HTML);    

    }

    else {$HTML=preg_replace("/<!-- start:back -->(.*?)<!-- end:back -->/si","",$HTML);}

    if ($end < sizeof($entries)){

    preg_match_all("/<!-- start:next -->(.*?)<!-- end:next -->/si",$HTML,$back);    

    $back=$back[1][0];

    $back=preg_replace("/nexturl/si",$PHP_SELF."?action=view&start=".($start+$increase),$back);

    $HTML=preg_replace("/<!-- start:next -->(.*?)<!-- end:next -->/si",$back,$HTML);    

    }

    else {$HTML=preg_replace("/<!-- start:next -->(.*?)<!-- end:next -->/si","",$HTML);}

    $disp=array_slice($entries,$start,$increase);

    $htmlinclude="";

    foreach ($disp as $e){

        $ditem=$item[1][0];

        foreach ($vars[1] as $v){

            $con=untag($e,$v,0);

            $ditem=preg_replace("/%".$v."%/si",stripslashes(nl2br(htmlentities($con))),$ditem);    

        }

        if (preg_match("/<!-- spamprotect -->/si",$HTML)){$ditem=preg_replace("/@/si","@_nospam_",$ditem);}

        $htmlinclude.= $ditem;

    }

    $HTML=preg_replace("/<!-- start:item -->.*?<!-- end:item -->/si",$htmlinclude,$HTML);    

    }

    else {

    $HTML=displaysetup("invalidemail,forgottenfields,thanks,form,display,spam");

    }

    echo $HTML;

}

if ($action=="sign"){

    $HTML=displaysetup("invalidemail,forgottenfields,thanks,display,hello,spam");

    $HTML=preg_replace("/%.*%/","",$HTML);

    echo $HTML;

}

if ($action=="verify"){

    $keys=array_keys($_POST);

    for ($i=0;$i<count($_POST);$i++){

        $HTML=preg_replace("/%".$keys[$i]."%/si",stripslashes($_POST[$keys[$i]]),$HTML);

    }

    $req=explode(",",$_POST['required']);

    foreach ($req as $r){

        if ($_POST[$r]==""){

            $errorfields[]=$r;

        }    

    }

/*

    

                              ZZZzz    |\      _,,,---,,_

Sometimes when I look at the       z   /,`.-'`'    -.  ;-;;,_.

amount of work on my schedule       zz|,4-  ) )-,_. ,\ (  `'-'

I wish that I was born a cat         '---''(_/--'  `-'\_)     

*/



    $HTML=displaysetup("display,hello");

    if ($errorfields[0]!=""){

        $inc="<ul>";

        foreach ($errorfields as $e){$inc.="<li>$e</li>";}

        $inc.="</ul>";

        $HTML=preg_replace("/<!-- fields -->/si",$inc,$HTML);

        $HTML=displaysetup("spam,thanks");

    }

    else {$HTML=displaysetup("forgottenfields");}

    if (checkmail($_POST['email'])){$HTML=displaysetup("invalidemail");}

    if (checkmail($_POST['email']) and $errorfields[0]==""){

        $gb=load("easyboard_entries.xml");

        $id=count(untag($gb,"entry",1));

        $allentries=untag($gb,"entry",1);

        if ($id==1 and $allentries[0]==""){$id=1;}

        else {$id++;}

        $data="\n<entry>";

        $data.="\n\t<entryid>$id</entryid>";

        $data.="\n\t<entrydate>".date ($dateformat)."</entrydate>";

        $mail.="New Entry id:$id\nDate:".date ($dateformat)."\n";

        $keys=array_keys($_POST);

        for ($i=0;$i<count($_POST);$i++){

            if ($keys[$i]!="required" and $keys[$i]!="action"){

            $data.="\n\t<".$keys[$i].">".stripslashes($_POST[$keys[$i]])."</".$keys[$i].">";

            $mail.="\n".$keys[$i].":".stripslashes($_POST[$keys[$i]]);

            }

        }

        $data.="\n</entry>";

        $preg="/\s|<entry>|<\/entry>|<entryid>.*?<\/entryid>|<entrydate>.*?<\/entrydate>/si";

        if(preg_replace($preg,"",$data) == preg_replace($preg,"",$allentries[count($allentries)-1])){$HTML=displaysetup("thanks,form");}

        else{save ("easyboard_entries.xml",preg_replace("/<\/guestbook>/","".$data."\n</guestbook>",$gb));

        $HTML=displaysetup("spam,form");

            if (preg_match("/<!-- owner:.*? -->/si",$HTML)){

                preg_match_all("/<!-- owner:(.*?) -->/si",$HTML,$owner);

                $mailheaders = "From: Easyboard\n";

                $mailheaders .= "Reply-To: $email\n";

                mail ($owner[1][0],"New entry in the Guestbook!",$mail,$mailheaders);

            }

        }

    }

    if (!checkmail($_POST['email'])){$HTML=displaysetup("spam,thanks");}

    echo preg_replace("/<!--.*?-->/","",$HTML);

}



function displaysetup($fields){

    global $HTML;

    $fields=explode(",",$fields);

    foreach ($fields as $f){

        $HTML=preg_replace("/<!-- start:".$f." -->.*?<!-- end:".$f." -->/si","",$HTML);

    }

    return $HTML;

}



/*

    Function urlize($name)

    checks if the submitted string is a valid email and returns a boolean

*/

function checkmail($string){

    global $HTML;

    if (preg_match("/<!-- nomailcheck -->/",$HTML)){return true;}

    return preg_match("/^[^\s()<>@,;:\"\/\[\]?=]+@\w[\w-]*(\.\w[\w-]*)*\.[a-z]{2,}$/i",$string);

}



/*

    Function urlize($name)

    converts an item name into a url na,e

*/

function urlize($name){

    return strtolower(preg_replace("/[^\w\.]/","",$name));

}



/*

    Function load($file)

    reads the content of the file that you send and returns it

*/

function load($filelocation){

    if (file_exists($filelocation)){

        $newfile = fopen($filelocation,"r");

        $file_content = fread($newfile, filesize($filelocation));

        fclose($newfile);

        return $file_content;

        }

    }



/*

    Function save($file,$content)

    writes the content to the file and generates it if needed

*/

function save($filelocation,$newdatas){

    $newfile = @fopen($filelocation,"w+");

    @fwrite($newfile, $newdatas);

    @fclose($newfile);

    if($newfile!=""){$fileerror=0;}

    else {$fileerror=1;}

    return $fileerror;

    }



/*

    Function untag($string,$tag,mode){

    written by Chris Heilmann (info@_nospam_onlinetools.org)

    filters the content of tag $tag from $string 

    when mode is 1 the content gets returned as an array

    otherwise as a string

*/

function untag($string,$tag,$mode){

    $tmpval="";

    $preg="/<".$tag.">(.*?)<\/".$tag.">/si";

    preg_match_all($preg,$string,$tags); 

    foreach ($tags[1] as $tmpcont){

        if ($mode==1){$tmpval[]=$tmpcont;}

        else {$tmpval.=$tmpcont;}

        }

    return $tmpval;

}    



?>

 

I know its a lot but its I'm probably missing out on something very basic which not knowing PHP I will pick up on very quickly.

 

Thanks in advance for your help.

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.