我一直在研究一些代码并在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相关的问题。我可以断定它不是。
答案 0 :(得分:2)
以下问题是:
<img src='http://localhost/app-side/Icons/bar_icon.png
无法加载图像,因为localhost
指的是客户端的本地计算机(浏览器运行的位置)而不是服务器。通常网站中的此类网址被视为恶意网站;)
使其适用于localhost
和server
的解决方法是使用相对路径。这可以相对于您的文档或相对于服务器的DOCUMENT_ROOT
。我使用了第二种方法,因为我不知道你的php文件在服务器上的位置。
包含相对于DOCUMENT_ROOT
的链接的解决方案:
替换:
<img src='http://localhost/app-side/Icons/bar_icon.png
通过
<img src='/app-side/Icons/bar_icon.png
答案 1 :(得分: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)
放在页面的最顶部,看看是否打印出任何错误。
答案 2 :(得分:0)
您是否检查过sql.php以确保更改它以匹配您的实时服务器(从localhost变量更改)还检查您的数据库字段名称与您的脚本的拼写错误。
[code]
{$rows[$i]['titel']} </h2></td>
[\code]
是否应该阅读: [代码]
{$rows[$i]['title']} </h2></td>
[\code]
如果您的数据库字段名称是“title”和 您正在尝试从名为的字段中获取数据 “titel”比那可能导致你的错误。
我希望有帮助