1

这个片段导致文件抛出 500 错误,我不明白为什么。

<head>    
<?php

        $link = mysql_connect('****', '***', '*****');
        $db_selected = mysql_select_db('***', $link);
        if (!$db_selected) {
            echo 'error';
        }
        $adchan = $_COOKIE['adtail'];
        $adarray = json_decode($adchan);
        if($adarray->{'subcat'} != 'main'){
                $sql = "SELECT term_id FROM wp_terms WHERE slug='$adarray->{'subcat'}'";
                $result = mysql_query($sql);
                    while($row = mysql_fetch_array($result))
                  {
                    $id = $row['term_id'];
                    $sql2 = "SELECT option_value FROM wp_10_options WHERE option_name='$id'";
                    $result2 = mysql_query($sql2);
                        while($row2 = mysql_fetch_array($result2))
                      {
                          echo "<meta http-equiv='Refresh' content='".$row2['option_value']."'>";
                      }

                }
        }
        else{


                $sql = "SELECT term_id FROM wp_terms WHERE slug='$adarray->{'cat'}'";
                $result = mysql_query($sql);
                    while($row = mysql_fetch_array($result))
                  {
                    $id = $row['term_id'];
                    $sql2 = "SELECT option_value FROM wp_options WHERE option_name='$id'";
                    $result2 = mysql_query($sql2);
                        while($row2 = mysql_fetch_array($result2))
                      {
                          echo "<meta http-equiv='Refresh' content='".$row2['option_value']."'>";
                      }

                }
        }
    ?>
</head>

谁能明白为什么?

更新

<?php
error_reporting(-1);

        $adchan = $_COOKIE['adtail'];
        $adarray = json_decode($adchan);
        var_dump($adarray);
        print $adarray['cat'];
        ?>

它运行良好,直到打印,也就是我收到 500 错误的时候。输出是:

object(stdClass)#1 (4) { ["cat"]=> string(9) "lifestyle" ["subcat"]=> string(12) "arts-culture" ["page"]=> string(4) "main" ["zone"]=> string(22) "lifestyle/arts-culture" }
4

2 回答 2

0

500 是内部服务器错误。有时,这是因为文件访问权限问题。你的文件访问权限是777吗?如果是,您可以尝试将权限更改为 644、640 或 755,看看问题是否会消失。

于 2012-05-19T04:40:44.697 回答
0

我不知道。但是,这可能是因为mysql_fetch_array级联。你放在mysql_fetch_array另一个里面mysql_fetch_array

并假设它有效,但它会给你带来糟糕的表现。

这可能对你更好。(在 if 部分的内部)

                $sql = "SELECT a.term_id,b.option_value FROM wp_terms a LEFT JOIN option_value b ON b.option_name=a.term_id WHERE a.slug='{$adarray->subcat}'";
                $result = mysql_query($sql);
                while($row = mysql_fetch_array($result))
                {
                    $id = $row['term_id'];
                    if(isset($row['option_value']))
                        echo "<meta http-equiv='Refresh' content='".$row['option_value']."'>";

                }
于 2012-05-19T04:52:53.193 回答