我正在做一个使用OTP登录网站的项目,我创建了一个名为" Generate"点击后,它将创建OTP并通过HTTP网关发送短信,然后将密码存储在数据库中。
我创建OTP并保存在DB中的代码:
if(isset($_POST['generate']))
{
$string = 'abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
$string_shuffled = str_shuffle($string);
$password = substr($string_shuffled, 1, 7);
$password = base64_encode($password);
$query = mysql_query("UPDATE user_login SET password='".$password."' WHERE username = 'ajai sandy' ");
$qry_run = mysql_query($query);
}
现在我需要放置此SMS API代码:
http://login.smsgatewayhub.com/smsapi/pushsms.aspx?user=abc&pwd=xyz&to=919898123 456&sid=senderid&msg=test%20message&fl=0
事情是第5行代码生成OTP,然后我需要在此之后放置我的SMS API以便它可以将密码发送到移动设备,然后它应该加密第6行的密码然后保存在数据库中。
我不确定如何按顺序执行此操作,并且不知道将代码放在何处
答案 0 :(得分:5)
试试这个。
if(isset($_POST['generate']))
{
$string = 'abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
$string_shuffled = str_shuffle($string);
$password = substr($string_shuffled, 1, 7);
file_get_contents("http://login.smsgatewayhub.com/smsapi/pushsms.aspx?user=abc&pwd=$password&to=919898123456&sid=senderid&msg=test%20message&fl=0");
$password = base64_encode($password);
$query = mysql_query("UPDATE user_login SET password='".$password."' WHERE username = 'ajai sandy' ");
$qry_run = mysql_query($query);
}
答案 1 :(得分:1)
以下代码的工作方式类似于魅力
header('Location:http://login.smsgatewayhub.com/smsapi/pushsms.aspx?user=abc&pwd=$password&to=919898123456&sid=senderid&msg=test%20message&fl=0');
答案 2 :(得分:1)
谢谢,我很高兴为您推荐这个精彩的教程
//OTP SYSTEM CODE
function sendSMS($mobile=null, $subject=null)
{
$SMSapiKey = 'XYZ';
$url = 'http://example.com/api_2.0/SendSMS.php?APIKEY='.$SMSapiKey.'&MobileNo='.urlencode($mobile).'&SenderID=SAMPLE_MSG&Message='.urlencode($subject).'&ServiceName=TEMPLATE_BASED';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$returndata = curl_exec($ch);
curl_close($ch);
return "A SMS SENT SUCCESSFULLY TO $mobile";
}
$otp_code = strtoupper(substr(md5(uniqid()), 0, 6)); // A smart code to generate OTP PIN.
查看这个非常棒的教程和G2FA的实现,用于加密图形安全的OTP make otp system using php
答案 3 :(得分:0)
以下是使用http://2Factor.in OTP API
通过PHP发送OTP的快速示例代码 <?php
$YourAPIKey='<YourAPI>';
$SentTo='<User10DigitNumber>';
### DO NOT Change anything below this line
$agent= 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.0.3705; .NET CLR 1.1.4322)';
$url = "https://2factor.in/API/V1/$YourAPIKey/SMS/$SentTo/AUTOGEN";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, $agent);
echo curl_exec($ch);
curl_close($ch);
您可以参考THIS LINK,说明从PHP实施SMS OTP的快速步骤
答案 4 :(得分:0)
Verifying a phone number using OTP(一次性密码)是减少您网站上垃圾邮件的可靠方法。在本文中,我们将详细讨论该主题。我们将学习如何设置PHP代码以将OTP发送到手机号码,从而验证用户身份。我们将使用Twilio作为第三方服务来发送包含一次性密码(OTP)的消息。
实际上,Twilio是第三方工具,可用于发送文本消息,IVR等。 Twilio有很多替代方案,但是由于它的无缝集成和我个人的选择,我们将在本文中使用Twilio。尽管Twilio是一种付费工具,但我们可以使用它的“免费版本”,该版本当然有一定的局限性,但对于我们的文章及其目的就足够了。