【问题标题】:Server 500 error occurs always服务器 500 错误总是发生
【发布时间】:2014-10-28 16:36:51
【问题描述】:
<?php

   $dbhost = 'xx';
   $dbuser = 'xx';
   $dbpass = 'xxxx';

   $conn = mysql_connect($dbhost, $dbuser, $dbpass);
   if(! $conn )
   {
     die('Could not connect: ' . mysql_error());
   }

   mysql_select_db('url') or trigger_error("Unable to switch to the database: " . mysql_error()); 


function arr($num){

$ch = curl_init();
$r= rand (1,90);
$url="https://www.googleapis.com/customsearch/v1?q=Gravity%20Falls%20Latest%20images&num=10&start=".$r."&safe=off&cx=x:2hdsc4__avm&filter=0&c2coff=disable&alt=json&key=x";

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$output = curl_exec($ch);

curl_close($ch);

        $a=intval($num);
        $data = json_decode($output, true);
        $se= $data['items'][$a]['pagemap']['cse_image'][0]['src'];

        $query = mysql_query("SELECT `url` FROM `url` WHERE `url`='".$se."'");

  if (mysql_num_rows($query) != 0)
  {
     $rr= rand (1,10);
     arr($rr);
  }else{

      mysql_query("INSERT INTO `url`(`url`) VALUES ('".$se."')");
      return $se;

      }
}

$rr= rand (1,10);
echo arr($rr);





require_once("src/facebook.php");

$config = array();
$config['appId'] = 'x';
$config['secret'] = 'x';
$config['fileUpload'] = true;
$fb = new Facebook($config);

$params = array(
"access_token" => "xxx",
"message" => "",
"url" => "".arr($rr)."", 
);

try {

$ret=$fb->api('/1111/photos', 'POST', $params);
echo 'Photo successfully uploaded to Facebook Album';
}
catch(Exception $e) {
echo $e->getMessage();
}
mysql_close($conn);

?>

我已经在 5 到 6 台服务器上尝试过,所有服务器都给了我500 error,但是当我删除 sql 连接时它可以工作!我已经提供了所有正确的 mysql 信息。

那为什么显示 500?

编辑:

  • 如果我注释掉

        $query = mysql_query("SELECT `url` FROM `url` WHERE `url`='".$se."'");
    
      if (mysql_num_rows($query) != 0)
    {
     $rr= rand (1,10);
     arr($rr);
     }else{
    
      mysql_query("INSERT INTO `url`(`url`) VALUES ('".$se."')");
      return $se;
    
      }
    

有效!

【问题讨论】:

  • 您在第 3 行缺少 '$dbhost = 'x; 应该是 $dbhost = 'x';
  • ...这可能只是一个错字。 ^^^ - 但如今,人们永远不知道。
  • 500 错误 = 发生爆炸。查看服务器的错误日志以获取有关 500 的详细信息。就像 chriz 所说,您有一个错字,缺少 ',这可能会导致您的脚本因致命的解析错误而彻底终止。
  • @chriz 有人急于将其作为答案,哈哈——我“从不”。编辑:是的,错字。
  • 在您打开&lt;?php标签error_reporting(E_ALL); ini_set('display_errors', 1);后立即将错误报告添加到文件顶部,看看它是否产生任何结果。

标签: php html mysql curl


【解决方案1】:

看看你的url 表。您递归调用arr 函数的方式如果您只获得已经存储在该表中的$se url 值,则有可能无限递归。 (如果你得到一个被强制转换为空字符串的值)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多