【问题标题】:Get 404 on remote server but can open page on local server在远程服务器上获取 404 但可以在本地服务器上打开页面
【发布时间】:2014-05-06 16:32:09
【问题描述】:

以下代码有问题。它应该向电子邮件服务器提供商发送电子邮件。它在本地服务器上工作得很好,但是当我在远程服务器上测试它时,我总是得到:

404 Page Not Found
The page you requested was not found.

非常感谢任何关于为什么会发生这种情况的想法。

代码:

 public function index ()
 {   
    $recipient = $email;
    $title = 'You've got mail';
    $body = 'I love you!';

    $data=
    array(
    'api_user'=>'postmaster@sendcloud.org',
    'api_key' =>'password',
    'from'=>'raphael.luo@live.com',
    'to'=>$recipient,
    'subject'=>$title,
    'html'=>$body
    );

    $ch = curl_init();

    curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);

    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
    curl_setopt($ch, CURLOPT_URL, 'https://sendcloud.sohu.com/webapi/mail.send.json');

    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);       

     $result = curl_exec($ch); 

     curl_close($ch);

    print_r($result);

}

【问题讨论】:

  • 我在两台服务器上都安装了 curl。
  • 您在单引号上有语法错误,并且您在网页上收到该错误?或者您正在从命令行使用它。提供更多细节

标签: php curl centos http-status-code-404 phpmailer


【解决方案1】:

这可能是安全通信的问题(您的网址有https://)。因此,如果您在使用不安全通信方面没有任何问题,请在您的代码中添加此 curl 选项并重试:

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,false);

此外,将http_build_query 函数用于POST 数据始终是安全的。

curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-08
    • 2020-12-23
    • 1970-01-01
    相关资源
    最近更新 更多