【问题标题】:Take data from html form and send it off as a http post request ( Class 'HttpRequest' not found) [duplicate]从html表单中获取数据并将其作为http post请求发送(找不到类'HttpRequest')[重复]
【发布时间】:2020-03-03 23:04:37
【问题描述】:

这是我的 index.html(表单):

<div class="body"> 
    <form method="post" action="index.php">
        <div id="form"> 
            <div class="formInput"> 
                <label>To: 
                <input type="text" name="to" id="to" /> 
                </label> 
            </div> 
            <div class="formInput"> 
                <label>From: 
                <input type="text" name="from" id="from" /> 
                </label> 
            </div> 
            <div class="formInput"> 
                <label>Message: 
                <input type="text" name="message" id="message" /> 
                </label> 
            </div>
            <input type="submit" value="Submit" /> 
            <input type="reset" value="Clear Form" /> 
        </div> 
    </form>

这是处理数据的 index.php:

<?php
$url = 'https://domainname.com/dashboard/api';
$r = new HttpRequest($url, HttpRequest::METH_POST);
$r->addQueryData(array('to' => $_POST['to'],
                       'from' => $_POST['from'],
                       'email' => $email,
                       'api_secret' => $api_secret));
try {
    $r->send();
    if ($r->getResponseCode() == 200) {
        echo $r->getResponseBody();
    }
} catch (HttpException $ex) {
    echo $ex;
}
?>

每次我提交到表单时都会收到一个错误:“PHP 致命错误:找不到类 'HttpRequest'” 我不知道如何解决这个问题,因为我在我的 namecheap Web 服务器上运行它.. 一些人建议我使用 cURL,但我完全不知道如何使用。过去 3 个小时我试图理解,但我取得的进展为零。

注意:http 请求应该是这样的,我什至不知道我是否正确地做...

https://domainname.com/dashboard/api
?to={PHONE NUMBER}&from={SENDER ID}&message={TEXT}
&email={YOUR EMAIL}&api_secret={API SECRET}

【问题讨论】:

  • PHP 没有 HttpRequest 类,你从哪里得到的?好像您找到了一个使用某种框架的示例。
  • 可以切换到curl吗?
  • 一切皆有可能。查看this question 的简单示例。

标签: php html http post


【解决方案1】:

HttpRequest 是一个只能从 pecl 获得的类

如果你想使用这个类,你需要在你的服务器上安装 pecl。由于您使用的是 namecheap 服务器,因此您不太可能做到这一点。

正如一些 cmets 中提到的,我建议使用 cURL。例如,您可以这样做:

$ch = curl_init();

curl_setopt_array($ch, [
    CURLOPT_URL => 'https://domainname.com/dashboard/api',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST => true,
    CURLOPT_POSTFIELDS => [
        'to' => $_POST['to'],
        'from' => $_POST['from'],
        'email' => $email,
        'api_secret' => $api_secret,
    ],
]);

$response = curl_exec($ch);

curl_close($ch);

echo($response);

请参阅文档here

【讨论】:

  • 谢谢,有什么办法可以看到请求的url吗?
  • 我的意思是 HTTP 请求应该是这样的:domainname.com/dashboard/api ?to=123456789&from=name&message=text &email=email@email.com&api_secret=123asd123asd 我怎么知道正在发送什么请求?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-26
  • 1970-01-01
相关资源
最近更新 更多