If you are not registered or logged in, you may still use these forums but with limited features. Show recent topics
  [Search] Search   [Hottest Topics] Hottest Topics   [Members]  Member Listing   [FAQ]  FAQ 
[Register] Register / 
[Login] Login 
parse error, unexpected ']', expecting T_STRING  XML
Forum Index » Support Forum
Author Message

Hello, can anyone help with this error in advanced guestbook 2.2

Parse error: parse error, unexpected ']', expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/xxxxx/public_html/guestbook/lib/gb.class.php(101) : eval()'d code on line 43

the xxxxx is to replace the name. I have had this guestbook running for about a year with no problems till now, I havent changed or modified anything to result in this problem. Any help apreciated, thanks.

Joined: 23/06/2003 22:02:17
Messages: 1053

Most likely your web hosts updated the PHP version.

Have a searh round here and/or check which version you have and update it if necessary.

Visit my site @ www.ragnaru.com
Adv. Poll Install Guide NOW BACK ONLINE! (And also rather out of date I would of thought)
[Email] [WWW]

Thanks for your quick reply Auron, yes recently my host has updateted php to version 4.3.9 but I don't understand what I need to do, do I need to put a new guest book on & replace the error one or do something else. This is a great place & thanks for letting guests use it.

Joined: 08/05/2004 21:52:50
Messages: 529
Location: Arkansas

First you need to do a search and figure out why useing guestbook version 2.2 is very bad. Then you need to update to version 2.3.1. Or replace the file then do all the above. Here is a fresh copy of the gb.class file.

* ----------------------------------------------
* Advanced Guestbook 2.2 (PHP/MySQL)
* Copyright (c)2001 Chi Kien Uong
* URL: http://www.proxy2.de
* ----------------------------------------------

class guestbook {

var $total;
var $db;
var $template;

function guestbook($path='') {
$this->db = new guestbook_vars($path);
$this->total = 0;
$this->template =& $this->db->template;

function get_nav($entry=0) {
$self = basename($HTTP_SERVER_VARS['PHP_SELF']);
$next_page = $entry+$this->db->VARS['entries_per_page'];
$prev_page = $entry-$this->db->VARS['entries_per_page'];
$navigation = '';
if ($prev_page >= 0) {
$navigation = " <img src=\"img/back.gif\" width=\"16\" height=\"14\"><a href=\"$self?entry=$prev_page\">".$this->db->LANG["NavPrev"]."</a>\n";
if ($next_page < $this->total) {
$navigation = $navigation." &nbsp;&nbsp;<a href=\"$self?entry=$next_page\">".$this->db->LANG["NavNext"]."</a><img src=\"img/next.gif\" width=\"16\" height=\"14\">\n";
return $navigation;

function show_entries($entry=0) {
$LANG =& $this->db->LANG;
$VARS =& $this->db->VARS;
$this->db->fetch_array($this->db->query("select count(*) total from ".$this->db->table['data']));
$this->total = $this->db->record["total"];
$TPL = $this->get_entries($entry,$this->db->VARS["entries_per_page"]);
$TPL['GB_TOTAL'] = $this->total;
$TPL['GB_JUMPMENU'] = implode("\n",$this->generate_JumpMenu());
$TPL['GB_TIME'] = $this->db->DateFormat(time());
$TPL['GB_NAVIGATION'] = $this->get_nav($entry);
$TPL['GB_HTML_CODE'] = ($this->db->VARS["allow_html"] == 1) ? $this->db->LANG["BookMess2"] : $this->db->LANG["BookMess1"];
eval("\$guestbook_html = \"".$this->template->get_template($this->db->GB_TPL['header'])."\";");
eval("\$guestbook_html .= \"".$this->template->get_template($this->db->GB_TPL['body'])."\";");
eval("\$guestbook_html .= \"".$this->template->get_template($this->db->GB_TPL['footer'])."\";");
return $guestbook_html;

function generate_JumpMenu() {
$menu_array[] = "<select name=\"entry\" onChange=\"urlJump('self',this)\" class=\"select\">";
$menu_array[] = "<option value=\"http://marys-creature-comforts.ravenprom.org\" class=\"select\">Home Page</option>";
$menu_array[] = "<option value=\"http://ravenprom.org/gallery\" class=\"select\">Gallery</option>";
$menu_array[] = "<option value=\"http://ravenprom.org\" class=\"select\">Downloads Page</option>";
$menu_array[] = "<option value=\"0\" selected>".$this->db->LANG["FormSelect"]."</option>";
if ($this->db->VARS["entries_per_page"] < $this->total) {
$remain = $this->total % $this->db->VARS["entries_per_page"];
$i = $this->total-$remain;
while ($i > 0) {
$num_max = $i;
$num_min = $num_max-$this->db->VARS["entries_per_page"];
$menu_array[] = "<option value=\"$remain\">$num_min-$num_max</option>";
$i = $num_min-1;
$remain += $this->db->VARS["entries_per_page"];
$menu_array[] = "</select>";
$menu_array[] = "<input type=\"submit\" value=\"".$this->db->LANG["FormButton"]."\" class=\"input\">";
return $menu_array;

function get_entries($entry,$last_entry) {
$LANG =& $this->db->LANG;
$id = $this->total-$entry;
$HOST = '';
$COMMENT = '';
$template['entry'] = $this->template->get_template($this->db->GB_TPL['entry']);
$template['com'] = $this->template->get_template($this->db->GB_TPL['com']);
$template['url'] = $this->template->get_template($this->db->GB_TPL['url']);
$template['icq'] = $this->template->get_template($this->db->GB_TPL['icq']);
$template['aim'] = $this->template->get_template($this->db->GB_TPL['aim']);
$template['email'] = $this->template->get_template($this->db->GB_TPL['email']);
$result = $this->db->query("select * from ".$this->db->table['data']." order by id desc limit $entry, $last_entry");
while ($row = $this->db->fetch_array($result)) {
$DATE = $this->db->DateFormat($row['date']);
$MESSAGE = nl2br($row['comment']);
if ($this->db->VARS["smilies"] == 1) {
$MESSAGE = $this->db->emotion($MESSAGE);
if (!$row['location']) {
$row['location'] = "-";
$bgcolor = ($i % 2) ? $this->db->VARS["tb_color_2"] : $this->db->VARS["tb_color_1"];
if ($row['url']) {
eval("\$URL = \"".$template['url']."\";");
} else {
$URL = '';
if ($row['icq'] && $this->db->VARS["allow_icq"]==1) {
eval("\$ICQ = \"".$template['icq']."\";");
} else {
$ICQ = '';
if ($row['aim'] && $this->db->VARS["allow_aim"]==1) {
eval("\$AIM = \"".$template['aim']."\";");
} else {
$AIM = '';
if ($row['email']) {
eval("\$EMAIL = \"".$template['email']."\";");
} else {
$EMAIL = '';
if ($this->db->VARS["allow_gender"]==1) {
$GENDER = ($row['gender']=="f") ? "&nbsp;<img src=\"img/female.gif\" width=\"12\" height=\"12\">" : "&nbsp;<img src=\"img/male.gif\" width=\"12\" height=\"12\">";
if ($this->db->VARS["show_ip"] == 1) {
$hostname = ( eregi("^[-a-z_]+", $row['host']) ) ? "Host" : "IP";
$HOST = "$hostname: $row[host]\n";
$this->db->query("select * from ".$this->db->table['com']." where id='$row[id]' order by com_id asc");
while ($com = $this->db->fetch_array($this->db->result)) {
$com['comments'] = nl2br($com['comments']);
eval("\$COMMENT .= \"".$template['com']."\";");
eval("\$GB_ENTRIES .= \"".$template['entry']."\";");
$COMMENT = "";
return $TPL;



LINK-> Use Lazarus Guestbook
[WWW] [Yahoo!] aim icon [MSN]

Thanks for your reply too JTD, to be honest I have spent hours upon hours trying to find answers to this & a lot here on this site. I don't think I quite know why 2.2 is bad but I will endevour to fix it. I know where the gb.class file code you gave me goes, but if I replace the one I have on the server with your code will I loose any of the entries I already have in the guest book? Sorry to sound so thick but computer programing is not my strong point, Building houses in New Zealand is. Thanks again.

Joined: 08/05/2004 21:52:50
Messages: 529
Location: Arkansas

You wont loose entries. Those are stored in your database. And read this. It is about the exploit in version 2.2 http://proxy2.de/forum/viewtopic.php?t=3650 also this might be helpfull. http://proxy2.de/forum/viewtopic.php?t=3563&highlight

LINK-> Use Lazarus Guestbook
[WWW] [Yahoo!] aim icon [MSN]

Joined: 12/06/2003 19:26:08
Messages: 4290
Location: Bristol, UK

you don't need to update you just need to patch the exploit.

I am not the maker of the Advanced Guestbook

get Lazarus
[Email] [WWW] [Yahoo!] aim icon [MSN] [ICQ]

Joined: 14/10/2017 08:06:41
Messages: 1

check here
Gmail has developed by Goggle, where many people know about it, and millions of people use this service. Gmail is free, where you can use for advertising and also support email services.This service can be access by the Gmail user through their Android and iOs device.

google account signup
create new google account
google account settings
Forum Index » Support Forum
Go to:   
Based on the open source JForum