繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM