PHP脚本结果500内部服务器错误

时间:2010-10-24 22:11:47

标签: php mysql

我无法理解为什么这个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();

&GT;

这就是代码。这似乎是我之前写过的所有其他简单脚本。通过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

任何人都可以帮助我吗?

3 个答案:

答案 0 :(得分:4)

这是您的网络服务器(或前端或模块)提供的错误。它检查文件/home/netatwor/public_html/cms/media/related.php上的permssions并且它不会让它运行,因为它是组可写的。

要解决此问题,请执行chmod gw-w /home/netatwor/public_html/cms/media/related.php或用于处理网站权限的等效内容。

答案 1 :(得分:0)

我不知道Application.cpp是什么,但是关于组可写的错误听起来像是一个安全警告,你的php文件具有错误的权限。谷歌的chmod或单一文件的持久性。

答案 2 :(得分:0)

与您的错误无关,但我相信您的代码在许多级别上存在缺陷,并且不会按照您的想法执行操作。让我告诉你:

$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();