5

In my application i have to send the sms to user while registration. But while inserting record in database i want to hit this url in browser.

Can any one suggest how to run this url at backgound

http://www.myurl.com/smpp/sendsms?username=XX&password=XX&to=XX&from=XX&text=Test

4

9 回答 9

8

好吧,这取决于您的意思,background我假设您的意思是用户不会被重定向到该页面。

如果我是你,如果你安装了cURL ,我会选择它,因为你似乎唯一想做的就是发出一个普通的请求,也许,阅读响应。下面的代码未经测试,但应该给你一个提示。

$req = curl_init();
curl_setopt($req, CURLOPT_URL,"theaddress_and_params");
curl_exec($req);
于 2013-02-05T13:47:55.287 回答
5
public function get_url($url)
{
    $cmd  = "curl --max-time 60 ";
    $cmd .= "'" . $url . "'";
    $cmd .= " > /dev/null 2>&1 &";
    exec($cmd, $output, $exit);
    return $exit == 0;
}

它将通过 cli 调用 curl。它将在后台运行。

于 2017-02-01T07:07:09.710 回答
2

如果这样做,您将在 URL(或标题)中公开用户名和密码。让用户提前登录并使用会话变量。

于 2013-10-03T00:08:49.847 回答
1

不要从客户端发送这个,因为每个用户都可以很容易地通过加载带有一些(可能是恶意的)参数的 URL 来“伪造”数据。“用户名”和“密码”根本不受保护,我相信您的服务会很快关闭。

相反,您可以使用 PHP 的 curl 函数在后台(服务器端)轻松执行此操作:

http://www.php.net/manual/en/curl.examples-basic.php

于 2013-02-05T13:45:41.930 回答
0
$url = 'http://yoursmsgateway.com/WebSMS/SMSAPI.jsp?username='.$smsuser.'&password='.$smspwd.'&sendername='.$smssender.'&mobileno='.$number.'&message='.urlencode($message);

echo $url;

   $mystring = get_data($url);

//echo "hi!";

echo $mystring;

function get_data($url) {
    $ch = curl_init();
    $timeout = 5;
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,false);
    curl_setopt($ch, CURLOPT_MAXREDIRS, 10);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
    $data = curl_exec($ch);
    curl_close($ch);
    return $data;
}

你可以试试这个代码,但你必须安装 cUrl DLL 文件。安装 CURL 的过程如下:-

1.)打开 php.ini 文件

2.)找到这个dll文件---> ;extension=php_curl.dll

3.)删除;(分号)

4.)如---> extension=php_curl.dll

5.) 保存 (Ctrl+s)

于 2014-01-29T02:15:16.963 回答
0

您可以使用 pcntl php 扩展分叉一个子进程。

(实现此功能的库:https ://github.com/kriswallsmith/spork )

于 2013-02-05T13:40:56.453 回答
0

我认为没有像多线程这样的概念(本质上是您所要求的),因为 PHP 代码中的所有内容都是增量运行的,但是您可以找到解决方案。看到这个这个问题及其答案。

PHP中没有多线程的原因是因为一切都在服务器中处理,而您作为客户端已经收到完成的响应,因此PHP中的“在后台运行”与“顺序运行”相同。

于 2013-02-05T13:41:04.507 回答
0

当用户点击提交按钮时进行 AJAX 调用。这将导致该 URL 处的脚本在您当前的 PHP 将记录插入数据库时​​在后台运行。

于 2013-02-05T13:41:25.537 回答
0

阿贾克斯?使用 ajax 在 div 中加载该 URL,同时使用 ajax 保存调用另一个 php 文件的记录。

于 2013-02-05T13:42:04.300 回答