[英]PHP script results 500 Internal server error
我不明白为什么这个PHP脚本给我500内部服务器错误。
$query = "SELECT video_id,title FROM video_id";
$videos = mysql_query($query);
if($videos){
$videos = mysql_fetch_assoc($videos);
foreach($videos as $video){
echo '<div class="video">';
echo '<a href="video.php?v="'.$video['video_id'].'"> <h3>"'.$video['title'].'"</h3></a>';
echo '</div>';
}
}else{
echo "<p>No new videos actually</p>";
}
mysql_close();
?>
这就是代码。 这似乎是我之前写过的所有其他简单脚本。 通过cpanel观察错误日志我看到了这个错误:
[Mon Oct 25 03:25:24 2010] [error] [client 80.181.111.60] SoftException in Application.cpp:256: File "/home/netatwor/public_html/cms/media/related.php" is writeable by group
谁能帮我?
这是您的网络服务器(或前端或模块)给出的错误。 它正在检查文件/home/netatwor/public_html/cms/media/related.php上的/home/netatwor/public_html/cms/media/related.php
,它不会让它运行,因为它是组可写的。
要解决此问题,请执行chmod gw-w /home/netatwor/public_html/cms/media/related.php
,或用于处理站点权限的等效项。
我不知道Application.cpp是什么,但是关于组可写的错误听起来像是一个安全警告,你的php文件具有错误的权限。 谷歌对chmod
或uni文件的支持。
与您的错误无关,但我相信您的代码在许多级别上存在缺陷,并且不会按照您的想法执行操作。 让我演示给你看:
$videos = mysql_fetch_assoc($videos);
foreach($videos as $video){
echo '<div class="video">';
echo '<a href="video.php?v="'.$video['video_id'].'"> <h3>"'.$video['title'].'"</h3></a>';
echo '</div>';
}
您可能认为代码将针对查询返回的每个视频运行,但事实并非如此。 你实际上正在预测一个视频,就是这样。 foreach循环中$ video的值不是数组。 它将是单个视频阵列中的各个值。
但还有更多:
if($videos){
mysql_query的值为false,表示存在错误,或者指向零行或多行的资源。 它不会告诉您是否返回了行。
这是你的代码应该怎么写:
$query = "SELECT video_id,title FROM video_id";
$videos = mysql_query($query);
/**
* There was an error if $videos is false. Use mysql_error()
* to get a message explaining the error.
*/
if (!$videos) {
die(mysql_error());
}
/**
* You use the function mysql_num_rows() to find out how many
* rows were returned by the query.
*/
if(mysql_num_rows($videos) > 0) {
/**
* You need to keep calling mysql_fetch_assoc() until there are
* no more rows to return.
*/
while($video = mysql_fetch_assoc($videos)) {
echo '<div class="video">';
echo '<a href="video.php?v="'.$video['video_id'].'"> <h3>"'.$video['title'].'"</h3></a>';
echo '</div>';
}
} else {
echo "<p>No new videos actually</p>";
}
mysql_close();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.