移动到新服务器后显示PHP语法错误

时间:2013-07-09 13:59:21

标签: php apache

我刚刚将我的网站转移到一个专用服务器上,所有工作都很好,但是自从转移到新服务器后,所有页面看起来都很好,除了1个那给我一个白色的屏幕。检查错误日志说PHP Parse错误:

  /home/ftp1/www/yp_admin/products.php中的

语法错误,意外'}'   在第112行

这是第112行

} while ($row_subcategories = mysql_fetch_assoc($subcategories));

并且代码的完整部分是

<? if (isset($_GET['catid'])) {

            $scatid1 = $_GET['scatid'];

            do { ?>
                <div class="div"><a <?php if ($row_subcategories['id'] == $scatid1) { echo('style="color:orange;"'); } ?> href="?view&catid=<?php echo($catid) ?>&scatid=<?php echo($row_subcategories['id']); ?>"><?php echo($row_subcategories['sub_category']); ?></a><span><a href="?new&catid=<?php echo($catid); ?>&scatid=<?php echo($row_subcategories['id']); ?>"> New Product</a></span> </div>
                <?php } while ($row_subcategories = mysql_fetch_assoc($subcategories));


                } else { 

                do { ?>
            <a href="?catid=<?php echo($row_categories['id']); ?>">
                <div class="div"><?php echo($row_categories['category']); ?></div>
            </a>
                <?php } while ($row_categories = mysql_fetch_assoc($categories));}

                ?>

在我找不到任何错误之前它完全正常工作,你们有没有遇到过这个问题?

提前感谢您的帮助。

仅供参考我使用Apache服务器运行CentOS

3 个答案:

答案 0 :(得分:5)

尝试使用<?php代替<?在第一行开始您的开始代码。现在不允许使用短标签。

编辑更多阅读in the manual

答案 1 :(得分:2)

可能在您的旧服务器上,您有short_open_tag的默认设置。

您需要在php ini文件中启用short_open_tag = 1。因为您的新服务器已关闭此设置。

答案 2 :(得分:1)

替换: -

<? if (isset($_GET['catid'])) {

<?php if (isset($_GET['catid'])) {

在您的旧服务器中php.ini文件必须以这样的方式配置,以便允许使用短标记。