Fork me on GitHub

Parse error: parse error, unexpected T_STRING, expecting ','  Bottom

  • I get this error: Parse error: parse error, unexpected T_STRING, expecting ',' on line 107

    It was working fine until I added this line:

    ."";

    Please help this is the code for theme.php:

    Code

    <?php
    // $Id: theme.php,v 1.13.2.1 2002/06/17 11:35:11 vlh Exp $ Exp $Name:  $
    // ----------------------------------------------------------------------
    // POST-NUKE Content Management System
    // Copyright (C) 2002 by the PostNuke Development Team.
    // http://www.postnuke.com/
    // ----------------------------------------------------------------------
    // Based on:
    // Thatware - http://thatware.org/
    // PHP-NUKE Web Portal System - http://phpnuke.org/
    // ----------------------------------------------------------------------
    // LICENSE
    //
    // This program is free software; you can redistribute it and/or
    // modify it under the terms of the GNU General Public License (GPL)
    // as published by the Free Software Foundation; either version 2
    // of the License, or (at your option) any later version.
    //
    // This program is distributed in the hope that it will be useful,
    // but WITHOUT ANY WARRANTY; without even the implied warranty of
    // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    // GNU General Public License for more details.
    //
    // To read the license please visit http://www.gnu.org/copyleft/gpl.html
    // ----------------------------------------------------------------------
    //
    // The author retains copyright of the contents of this theme.
    //
    // Filename: theme.php                                              
    // Original  Author(s): Vanessa Haakenson vanessa@distance-educator.com
    // Purpose:  Theme layout
    // ----------------------------------------------------------------------
    //

    /**
     * version: 1.0 - Designs4Nuke.com
     */


    /************************************************************/
    /* Theme Colors Definition                                  */
    /*                                                          */
    /* Define colors for your web site. $bgcolor2 is generaly   */
    /* used for the tables border as you can see on OpenTable() */
    /* function, $bgcolor1 is for the table background and the  */
    /* other two bgcolor variables follows the same criteria.   */
    /* $texcolor1 and 2 are for tables internal texts           */
    /************************************************************/

    $thename = "memorial";
    $postnuke_theme = true;

    themes_get_language();

    $bgcolor1 = "#FFFFFF";
    $bgcolor2 = "#E6E6E6";
    $bgcolor3 = "#CCCCCC";
    $bgcolor4 = "#F3F3F3";  
    $bgcolor5 = "#990000";
    $bgcolor6 = "#000000";  

    $textcolor1 = "#000000"; // Black
    $textcolor2 = "#000000"; // Black




    /************************************************************/
    /* OpenTable Functions                                      */
    /*                                                          */
    /* Define the tables look & feel for your site. For         */
    /* this we have two options: OpenTable and OpenTable2       */
    /* functions. Then CloseTable and CloseTable2               */
    /* function to close our tables. The difference             */
    /* is OpenTable has a 90% width and OpenTable2 has          */
    /* a width according with the table content.                 */
    /************************************************************/

    function opentable() {
        global $bgcolor1, $bgcolor2;
        echo "<br><table width=\"100%\" border=\"0\" cellspacing=\"1\" cellpadding=\"0\"><tr><td>\n";
        echo "<table width=\"100%\" border=\"0\" cellspacing=\"1\" cellpadding=\"5\"><tr><td>\n";
    }

    function opentable2() {
        global $bgcolor1, $bgcolor2;
        echo "<table border=\"0\" cellspacing=\"1\" cellpadding=\"0\"><tr><td>\n";
        echo "<table border=\"0\" cellspacing=\"1\" cellpadding=\"5\"><tr><td>\n";
    }

    function closetable() {
        echo "</td></tr></table></td></tr></table>\n";
    }

    function closetable2() {
        echo "</td></tr></table></td></tr></table>\n";
    }

    /************************************************************/
    /* Function themeheader()                                   */
    /*                                                          */
    /* Control the header for your site. You need to define the */
    /* BODY tag and in some part of the code call the blocks    */
    /* function for left side with: blocks(left);               */
    /************************************************************/

    function themeheader() {
        global $bgcolor1, $bgcolor2, $bgcolor3, $bgcolor4, $index, $thename, $blocks;

        $slogan = pnConfigGetVar('slogan');
        $sitename = pnConfigGetVar('sitename');
        $banners = pnConfigGetVar('banners');
        $type = pnVarCleanFromInput('type');
       
        echo "</head>\n"
            ."<body bgcolor=\"#000000\" topmargin=\"10\" marginheight=\"5\" marginwidth=\"5\" leftmargin=\"5\" rightmargin=\"5\">

    <table cellpadding=\"0\" cellspacing=\"0\" border=\"1\" width=\"719\" bgcolor=\"#000000\" align=\"center\">
    <tr>
    <td>



    <table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"719\" bgcolor=\"#000000\">\n"

            ."<tr>\n"
            ."<td valign=\"top\" height=\"91\">\n"
            ."<iframe src=\"http://ad.simgames.net/ads-sg.html" style=\"border:none;width:468px;height:60px;margin:0px;" frameborder=\"0" scrolling=\"no"></iframe><a href=\"index.php\"><img src=\"themes/$thename/images/banner.gif\" width=\"719\" height=\"121\" border=\"0\"></a>\n"
            ."</td>\n"
           . "<tr>\n"
           ."<td align=\"center\" bgcolor=\"$bgcolor4\" valign=\"top\">\n";
           
       
        include "themes/$thename/top_links.php";


        echo "</td>\n"
            ."</tr>\n"
            ."</table>\n"
            ."<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\" width=\"719\">\n"
            ."<tr>\n"
            ."<td width=\"150\" valign=\"top\" bgcolor=\"$bgcolor4\">\n"
            ."<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n"
            ."<tr bgcolor=\"$bgcolor4\">\n"
            ."<td><img src=\"themes/$thename/images/blank.gif\" width=\"1\" height=\"17\" alt=\"\" border=\"0\">\n"
            ."</td>\n"
            ."</tr>\n"
            ."<tr>\n"
            ."<td valign=\"top\">\n";

           blocks('left');

        echo "</td>\n"
            ."</tr>\n"
            ."</table>\n"
            ."</td>\n"
            ."<td width=\"35\" bgcolor=\"$bgcolor1\" align=\"left\" valign=\"top\">\n"
            ."<div align=\"left\"><img src=\"themes/$thename/images/lefttop.gif\" width=\"17\" height=\"17\" border=\"0\"  alt=\"\"></div>\n"
            ."</td>\n"
            ."<td width=\"500\" valign=\"top\" align=\"center\" bgcolor=\"$bgcolor1\">\n";

        if ($index == 1) {
            echo "<span class=\"message-centre\">\n";
            blocks('centre');
            echo "</span><img src=\"themes/$thename/images/blank.gif\" width=\"400\" height=\"1\" alt=\"\" border=\"0\">\n";
        }
    }


    /************************************************************/
    /* Function themefooter()                                   */
    /*                                                          */
    /* Controls the footer for your site. You don't need to     */
    /* close BODY and HTML tags at the end. In some part call   */
    /* the function for right blocks with: blocks(right);       */
    /* Also, $index variable needs to be global and is used to  */
    /* determine if the page you're viewing is the Homepage or  */
    /* and internal one.                                        */
    /* Remember the footer contains the formatting for the      */
    /* right side bar on the three column page design           */
    /************************************************************/


    function themefooter() {
        global $index, $thename, $bgcolor1, $bgcolor2, $bgcolor3, $bgcolor4;
       
        if ($index == 1) {
           echo "<td width=\"140\" valign=\"top\" background=\"themes/$thename/images/bkgRight.jpg\">";
       
           blocks('right');

        }

        echo "<br></td>\n"
            ."</tr>\n"
            ."</table>\n"
           
       ."<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n"
       ."<tr> \n"
         ."<td><img src=\"themes/$thename/images/footer.jpg\" width=\"719\" height=\"36\"></td> \n"
       ."</tr>\n"
       ."<tr>\n"
         ."<td>\n"
           ."<div align=\"center\"> <font class=\"pn-sub\">";


        footmsg();

     echo "</font></div>\n"
         ."</td>\n"
       ."</tr>\n"
     ."</table>";
    }

    /************************************************************/
    /* Function themeindex()                                    */
    /* This formats the articles/stories on the homepage        */
    /************************************************************/

    function themeindex ($_deprecated, $_deprecated, $_deprecated, $_deprecated, $_deprecated, $_deprecated, $_deprecated, $_deprecated, $_deprecated, $_deprecated, $_deprecated, $_deprecated, $info, $links, $preformat) {
        echo "<p>\n"
            ."<table width=\"90%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n"
            ."<tr>\n"
            ."<td><font class=\"pn-title\">$preformat[catandtitle]</font><br>\n"
            ."<font class=\"pn-sub\">"._PUBLISHED." $info[briefdate]</font><p>\n"
            ."$preformat[searchtopic]<font class=\"pn-normal\">$info[hometext]</font><br><br>\n";        
           
            if ($preformat['notes']){
            echo "<font class=\"pn-sub\">$preformat[notes]</font><br>\n";
            }
           
            echo "</td>\n"
            ."</tr>\n"
            ."</table>\n";


    }
    /************************************************************/
    /* Function themearticle()                                  */
    /* This function formats the stories on the story,          */
    /* when you click on the "Title Link" or "Read More..."     */
    /* link                                                     */
    /************************************************************/  
    function themearticle ($_deprecated, $_deprecated, $_deprecated, $_deprecated, $_deprecated, $_deprecated, $_deprecated, $_deprecated, $_deprecated, $info, $links, $preformat) {
       global $thename;

        OpenTable();  
         
        echo "<img src=\"themes/$thename/images/story.gif\" width=\"24\" height=\"25\" alt=\"*\" border=\"0\" align=\"bottom\">\n"
            ."<font class=\"pn-normal\">$preformat[catandtitle]</font><br>\n"
            ."<font class=\"pn-sub\">"._POSTED." $info[briefdate]</font><hr size=\"1\">\n"
            ."<div align=\"right\"><b>\n"
            ."<font class=\"pn-sub\">$preformat[send] "._EMAILTOAFRIEND."&nbsp;&nbsp;$preformat[print] "._PRINTTHISSTORY."</font></b></div><p>\n"
            ."<font class=\"pn-normal\">\n";

        if (pnSecAuthAction(0, 'Stories::', "$info[aid]:$info[cattitle]:$info[sid]", ACCESS_EDIT)) {
            echo "<span class=\"pn-sub\"> [ <a href=\"admin.php?module=NS-AddStory&amp;op=EditStory&amp;sid=$info[sid]\">"._EDIT."</a>";
        }
        if (pnSecAuthAction(0, 'Stories::', "$info[aid]:$info[cattitle]:$info[sid]", ACCESS_DELETE)) {
            echo "| <a href=\"admin.php?module=NS-AddStory&amp;op=RemoveStory&amp;sid=$info[sid]\">"._DELETE."</a> ]</span>";
        }
        echo "<br><br>\n"
            ."<font class=\"pn-art\">\n"
            ."$preformat[fulltext]</font>";

          CloseTable();

    }

    /************************************************************/
    /* Function themesidebox()                                  */
    /* Controls look of the left side blocks.                   */
    /************************************************************/

    function themesidebox($block) {
    global $block_side, $thename;

    if (empty($block['position'])) {
        $block['position'] = "a";
    }

    if($block['position'] == 'l') { // left side blocks

        echo "<table width=\"150\" border=\"0\" cellspacing=\"0\" cellpadding=\"5\">\n"
            ."<tr bgcolor=\"#B7B6BF\">\n"
            ."<td class=\"pn-title-lblock\">$block[title]</td>\n"
            ."</tr>\n"
            ."<tr>\n"
            ."<td valign=\"top\">$block[content]\n"
            ."</td>\n"
            ."</tr>\n"
            ."</table>\n"
            ."<table width=\"150\" border=\"0\" cellspacing=\"0\" cellpadding=\"1\">\n"
            ."<tr>\n"
            ."<td>\n"
            ."<hr size=\"1\" width=\"95%\">\n"
            ."</td>\n"
            ."</tr>\n"
            ."</table>\n";
    }

    if($block['position'] == 'r') {
        echo "<br> <table width=\"140\" border=\"0\" cellspacing=\"0\" cellpadding=\"5\">\n"
            ."<tr>\n"
            ."<td class=\"pn-title-rblock\">$block[title]</td>\n"
            ."</tr>\n"

              ."<tr>\n"
              ."<td>\n"
              ."$block[content]\n"
              ." <hr size=\"1\" width=\"95%\"></td>\n"
              ."</tr>\n"
              ."</table>\n";

    }

    if($block['position'] == 'c') {
        echo "<font class=\"pn-normal\">$block[content]</font>";
        }
    }

    ?>


    Please help
  • Don't you need all internal " preceded by a / ? You only have the first of each set.
  • Yep, just caught that too. Every " needs to be escaped.

    --
    Home Page | Find on Facebook | Follow on Twitter
  • I never have really understood the T_string error. When I get that error, the error message rarely points to the correct line.
  • Like they said:

    Code

    ."<iframe src=\"http://ad.simgames.net/ads-sg.html\" style=\"border:none;width:468px;height:60px;margin:0px;\" frameborder=\"0\" scrolling=\"no\"></iframe>";

    It's often the preceding line or thereabouts causing the error, say if you've forgot the command separator ; it can't make sense of the next line as part of the same command. Forgetting a curly brace can be harder to track down, as it may point to the last line in the script, expecting one more. Missing escaping quotes may also only cause it confusion on the next or so line.

This list is based on users active over the last 60 minutes.