Author |
Message |
31/12/2004 02:02:34
|
Anonymous
|
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.
|
|
31/12/2004 02:13:36
|
Auron
Expert
Joined: 23/06/2003 22:02:17
Messages: 1053
Offline
|
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) |
|
31/12/2004 02:34:22
|
Anonymous
|
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.
|
|
31/12/2004 03:02:41
|
JTD
Graduate
Joined: 08/05/2004 21:52:50
Messages: 529
Location: Arkansas
Offline
|
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.
<?php
/**
* ----------------------------------------------
* 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->db->getVars();
$this->total = 0;
$this->template =& $this->db->template;
}
function get_nav($entry=0) {
global $HTTP_SERVER_VARS;
$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." <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"];
$num_min++;
$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 = '';
$GB_ENTRIES = '';
$i=0;
$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"];
$i++;
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") ? " <img src=\"img/female.gif\" width=\"12\" height=\"12\">" : " <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 = "";
$id--;
}
$TPL['GB_ENTRIES'] = $GB_ENTRIES;
return $TPL;
}
}
?>
|
LINK-> Use Lazarus Guestbook |
|
31/12/2004 03:50:13
|
Anonymous
|
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.
|
|
31/12/2004 03:53:54
|
JTD
Graduate
Joined: 08/05/2004 21:52:50
Messages: 529
Location: Arkansas
Offline
|
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 |
|
31/12/2004 07:36:13
|
Carbonize
Master
Joined: 12/06/2003 19:26:08
Messages: 4292
Location: Bristol, UK
Offline
|
you don't need to update you just need to patch the exploit.
|
Carbonize
I am not the maker of the Advanced Guestbook
get Lazarus |
|
|