2

我一直在编写一些代码并在 localhost 上对其进行了测试,一切正常,但是当我将它上传到我的服务器时,它无法超出我的 php 标签。也没有显示错误。我检查了两个 php 版本,在 localhost 上我运行版本 5.4.7,在服务器上运行版本 5.3.21。也许这是造成问题的原因?我应该在 phpinfo() 中寻找什么吗?我的代码中是否缺少某些内容?这是代码:

    <!DOCTYPE html>
    <?php phpinfo(); ?>
    <html>
    <head>

    <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
    <meta charset="utf-8">

    <style>
     body { background:black;}
    .toggle { display:none; }

    p {  
  width:570px;
  text-align:justify;
  color:#686868;
  font-family:Georgia, serif;
      }

    h2 { color:black; } 

    button { background:#686868; 
     border:none;
     font-family:Georgia, serif;
     width:570px;
   }
    </style>
    </head>

    <body>
    <?php 
    include('sql.php');

    $i = 0;

    while($i < count($rows)) {
    echo "
    <div>
        <button class='trigger'>
    <table width='100%'>
    <tr>
        <td width='20%'><img src='http://localhost/app-side/Icons/bar_icon.png' />             
                  </td>
        <td width='80%'><h2>{$rows[$i]['titel']} </h2></td> 
    </tr>
    </table>

</button>
       <div class='toggle'>
     <p>
       {$rows[$i]['info']}
     </p>   
   </div>
    </div>";


    $i++;
    }?>

    </body>
    <script>

    $('.trigger').click(function() { 

    $(this).siblings('.toggle').slideToggle('fast');

    });

   </script>
   </html>

当我运行它时,它会显示黑色背景(正如它所假设的那样),但我的 php 起始标签之外的所有内容都会被切断。我还尝试强制我的 while 循环循环 10 次,并且还删除了它从我的数据库中获取数据的部分,以查看它是否是与 mysql 相关的问题。我可以断定它不是。

4

3 回答 3

2

以下行是问题:

<img src='http://localhost/app-side/Icons/bar_icon.png

图像无法加载,因为localhost指的是客户端的本地计算机(浏览器运行的地方)而不是您的服务器。通常网站中的此类 url 被认为是恶意的 ;)

使其适用于两者的解决方法localhostserver使用相对路径。这可以相对于您的文档或相对于DOCUMENT_ROOT您的服务器。我使用了第二种方法,因为我不知道您的 php 文件在服务器上的位置。

与链接相关的解决方案DOCUMENT_ROOT

代替:

<img src='http://localhost/app-side/Icons/bar_icon.png

经过

<img src='/app-side/Icons/bar_icon.png
于 2013-05-04T11:22:25.023 回答
0

我唯一可以假设的是它$rows是空的,因此以下代码不会运行:

// count($rows) could be equal to 0
while($i < count($rows)) { // this condition becomes false in that case
    echo "
    <div>
        <button class='trigger'>
    <table width='100%'>
    <tr>
        <td width='20%'><img src='http://localhost/app-side/Icons/bar_icon.png' />             
                  </td>
        <td width='80%'><h2>{$rows[$i]['titel']} </h2></td> 
    </tr>
    </table>

</button>
       <div class='toggle'>
     <p>
       {$rows[$i]['info']}
     </p>   
   </div>
    </div>";


    $i++;
    }

更新

根据您的评论,这可能是由于内部sql.php问题,很可能是数据库连接问题。尝试放在error_reporting(E_ALL)页面的最顶部,看看是否打印出任何错误。

于 2013-05-04T12:00:12.633 回答
0

您是否检查过您的 sql.php 以确保您已更改它以匹配您的实时服务器(从 localhost 变量更改)还检查您的数据库字段名称与您的脚本是否有拼写错误。

[code] 
{$rows[$i]['titel']} </h2></td>
[\code]

是否应该阅读:[代码]

{$rows[$i]['title']} </h2></td>

[\code]

如果您的数据库字段名称是“title”并且您试图从名为“title”的字段中获取数据,那么这可能会导致您的错误。

我希望这会有所帮助

于 2013-05-04T12:00:22.653 回答