从本地(100%工作)转移到托管的一些代码工作时,奇怪的PHP行为,一些不工作

时间:2011-07-11 10:23:19

标签: php mysql mamp

我在MacBook Pro上使用本地安装的MAMP构建了一个PHP网站。昨天我终于设法完成所有工作,所以我决定购买一些网站空间并使用与MAMP(PHP 5.3,MySQL)本地安装完全相同的设置来托管文件。

当我移动文件并测试网站时,我得到一个非常奇怪的错误。大多数代码都在工作,但是,有些部分代码被破坏了,但是以一种非常不寻常的方式。我会尽力解释..

注意:此图像可能很好地显示错误。我已经阻止了一些私人内容。

Image of the error

代码的第一位是:

if ($currentpage > $totalpages) {
   // set current page to last page
   $currentpage = $totalpages;
} // end if
// if current page is less than first page...
if ($currentpage < 1) {
   // set current page to first page
   $currentpage = 1;
} // end if

// the offset of the list, based on current page 
$offset = ($currentpage - 1) * $rowsperpage;

$sql = "SELECT * FROM message,thumbsup_items WHERE message.id = thumbsup_items.name AND message.date BETWEEN DATE_SUB(NOW(), INTERVAL 7 DAY) AND NOW() ORDER BY votes_down DESC LIMIT $offset, $rowsperpage";
$result = mysql_query($sql, $conn) or trigger_error("SQL", E_USER_ERROR);
$dest = "http://twitter-badges.s3.amazonaws.com/t_mini-b.png";
$dest2 = "images/fb-small.png";
$url="http://dfwm.ws";
while ($row = mysql_fetch_assoc($result)) 

{

    ?>

其中100%正在进行本地安装,但是在托管网站上,它会在以下位置停止:

$totalpages) {
   // set current page to last page
   $currentpage = $totalpages;
} // end if
// if current page is less than first page...
if ($currentpage < 1) {
   // set current page to first page
   $currentpage = 1;
} // end if

// the offset of the list, based on current page 
$offset = ($currentpage - 1) * $rowsperpage;

$sql = "SELECT * FROM message,thumbsup_items WHERE message.id = thumbsup_items.name AND message.date BETWEEN DATE_SUB(NOW(), INTERVAL 7 DAY) AND NOW() ORDER BY votes_down DESC LIMIT $offset, $rowsperpage";
$result = mysql_query($sql, $conn) or trigger_error("SQL", E_USER_ERROR);
$dest = "http://twitter-badges.s3.amazonaws.com/t_mini-b.png";
$dest2 = "images/fb-small.png";
$url="http://dfwm.ws";
while ($row = mysql_fetch_assoc($result)) 

{

    ?>

意味着错误必须与&lt;运营商?我不确定。

下一个错误如下:

<?
/******  build the pagination links ******/
// if not on page 1, don't show back links
if ($currentpage > 1) {
   // get previous page num
   $prevpage = $currentpage - 1;
   // show < link to go back to 1 page
   ?>
   <div id = "previous">
   <?
   echo " <a href='?currentpage=$prevpage'>«Previous</a> ";?>
   </div>
   <?

} // end if

// range of num links to show
$range = 2;
?>
<div id="pagination">
<?
// loop to show links to range of pages around current page
for ($x = ($currentpage - $range); $x < (($currentpage + $range)  + 1); $x++) {
   // if it's a valid page number...
   if (($x > 0) && ($x <= $totalpages)) {
      // if we're on current page...
      if ($x == $currentpage) {
         // 'highlight' it but don't make a link
         echo "$x";
      // if not current page...
      } else {
         // make it a link
         echo " <a href='?currentpage=$x'>$x</a> ";
      } // end else
   } // end if 
} // end for
// if not on last page, show forward and last page links        
if ($currentpage != $totalpages) {
   // get next page
   $nextpage = $currentpage + 1;
   ?>
   </div>
   <?
    // echo forward link for next page 
    ?><div id ="next"><?
   echo " <a href='?currentpage=$nextpage'>Next »</a> ";?>

切断于:

1) {

我得出的结论是,如果与运算符一起出错,就像它在两次都发生一样,肯定它不会显示任何内容,而不是从PHP标记出来并只是显示它作为HTML? (图像在问题开头显示)。

我真的很感激一些帮助,因为我已经在脑子里绞了好几个小时。

由于

2 个答案:

答案 0 :(得分:4)

<?是短开放标记,仅适用于PHP安装,并具有启用它们的设置。我建议你使用完整的<?php

答案 1 :(得分:3)

您使用的是短标记(<?而不是完整的<?php开放声明),出于这个原因,建议您使用这些标记:与某些服务器不兼容。

<?的所有实例重新编写为<?php,并确保将来使用<?php