За последние 24 часа нас посетили 17702 программиста и 1609 роботов. Сейчас ищут 1183 программиста ...

Помогите допилить смс проверку номера к форме

Тема в разделе "Сделайте за меня", создана пользователем theorc, 29 июл 2015.

  1. theorc

    theorc Новичок

    С нами с:
    29 июл 2015
    Сообщения:
    3
    Симпатии:
    0
    Доброе время суток.
    Есть форма онлайн заказа такси.
    Необходимо допилить на нее проверку номера телефона. То есть. Есть клиент вбил номер телефона, если номер раньше не вводился появляется поле для подтверждение кодом по смс. Если номер ранее был уже подтвержден заказ уходит.
    Понимаю что нужен какой то из смс шлюзов. Ну собственно мне все равно.буду пользоваться тем что вы предложите.

    Сама форма заказа
    Код (PHP):
    1. <form action="2.php" method="post">
    2. <input name="Number" type="text" required class="textbox" placeholder="НОМЕР ТЕЛЕФОНА" value="<?php echo isset($_POST['Number']) ? $_POST['Number'] : '' ?>"><br/>
    3.              <span style="font-size: 12pt; color: #FFFFFF;">Введите  
    4.               действующий номер телефона Пример: <strong>89331515153</strong></span> <br> 
    5.              <br>
    6.   <input name="SourceStreet" type="text" required class="textbox" placeholder="Улицы" value="<?php echo isset($_POST[$SourceStreet]) ? $_POST[$SourceStreet] : '' ?>" /><br/>
    7.   <input name="Sourcehous" type="text" required class="textbox" placeholder="Дом" value="<?php echo isset($_POST[$Sourcehous]) ? $_POST[$Sourcehous] : '' ?>" /><br/>           
    8.  <?php
    9.  $OrderSourceAddress = $SourceStreet.$Sourcehous;
    10.  ?> 
    11. <input name="OrderSourceAddress" type="text" required class="textbox" placeholder="ОТКУДА ЗАБРАТЬ" value="<?php echo isset($_POST['OrderSourceAddress']) ? $_POST['OrderSourceAddress'] : '' ?>" /><br/>
    12.                     <span style="font-size: 12pt; color: #FFFFFF;">Пример: <strong>Пушкинская ул.,155</strong></span>     
    13. <input name="OrderDestinationAddress" type="text" class="textbox" placeholder="КУДА ПОЕДЕМ" value="<?php echo isset($_POST['OrderDestinationAddress']) ? $_POST['OrderDestinationAddress'] : '' ?>" size="35" maxlength="50"/><br/>
    14.                     <span style="font-size: 12pt; color: #FFFFFF;">Пример: <strong>Карла Маркса ул.,268</strong></span> 
    15. <script type="text/javascript">
    16. $(document).ready(function(){
    17.  $('.spoiler_links').click(function(){
    18.  $("div[class^='spoiler_body']").hide('normal'); 
    19.  if ($(this).parent().children('div.spoiler_body').css("display")=="none") {
    20. $("div[class^='spoiler_body']").hide('normal');
    21. $(this).parent().children('div.spoiler_body').toggle('normal');
    22. }
    23. else $("div[class^='spoiler_body']").hide('normal');
    24.   return false;
    25.  });
    26. });
    27. </script> 
    28. <div style="margin-bottom:20px; font-family:AcromLight; font-size:14pt; text-align:center;"> 
    29.  [url="" class="]ПРЕДВАРИТЕЛЬНЫЙ ЗАКАЗ[/url] 
    30. <div class="spoiler_body">
    31. <input data-format="dd-MM-yyyy hh:mm" type="datetime-local" name="OrderDateTime" class="textbox" style="width:70%; height:50px;" value="<?php echo isset($_POST['OrderDateTime']) ? $_POST['OrderDateTime'] : '' ?>"/>
    32. </div>
    33. <textarea name="OrderComment" cols="35" maxlength="100" class="message" placeholder="Примечание, например: Номер подъезда, ориентир "></textarea><br/>
    34. <input type="submit" name="submit" class="button" value="ЗАКАЗАТЬ" />
    2.php шлет запрос в программу на сервер. чтобы заказ создавался автоматически

    PHP, JavaScript, SQL и другой код пишите внутри тегов
    Код ( (Unknown Language)):
    1. [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Посоветую поискать в поиске смс шлюз и заключить с ними контракт, используя API отправлять код для проверки.
     
  3. theorc

    theorc Новичок

    С нами с:
    29 июл 2015
    Сообщения:
    3
    Симпатии:
    0
    да.это понимаю. Даже уже попробовал одну форму вида тел. код подтверждения на тестовом периоде. В основном проблема как заставить поле с телефоном проверяться на наличии в бд и если его там нет чтобы появлялось поле для ввода кода с смс и выполнялся скрипт с api. Без перезагрузки страницы.

    Ну скрипт выполнять можно по событию в поле ввода change. Только что писать в событие чтобы выполнялись все php. Тоесть вначале проверка наличия номера в базе (по принципу авторизации) если номера нет с файла php выполнить другой файл (типо с регистрацией). И всё это в фоновой режими, грубо говоря. или есть более простой способ?
     
  4. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    if, elseif, else по условию что ты хочешь

    jquery ajax

    просто при отправки данных, сервер вернёт сообщение что нет такого телефона и по условию в javascript с помощью jquery покажи форму для ввода кода, который пришёл в смс.


    Код (PHP):
    1. <?php
    2. header('Content-Type: text/html; charset=utf-8');
    3.  
    4. $db = array('79301234567'=>'1234');
    5.  
    6. if ( empty($_POST['adress']) === false && empty($_POST['mobile_phone']) === false ) {
    7.   if ( empty($_POST['sms_code']) === false && isset($db[$_POST['mobile_phone']]) && $db[$_POST['mobile_phone']] == $_POST['sms_code'] ) {
    8.   // Если телефон есть в базе и код совпадает с тем который был отправлен по СМС
    9.  
    10.   } elseif( isset($_POST['mobile_phone']) ) {
    11.   // Если телефон есть в базе, то отправляем СМС на мобильный, сообщаем пользователю, что нужно вписать код из СМС
    12.  
    13.   } else {
    14.   // Ошибка
    15.  
    16.   }
    17.   echo json_encode(array('status'=>'need_sms'));
    18.   exit();
    19. }
    20.  
    21. ?><!DOCTYPE HTML>
    22. <html>
    23. <head>
    24.   <meta charset="UTF-8">
    25.   <title></title>
    26.   <style type="text/css">
    27.   #sms {
    28.     display: none;
    29.   }
    30.   </style>
    31.   <script src="//code.jquery.com/jquery-1.11.3.min.js"></script>
    32.   <script type="text/javascript">
    33.   $(function() {
    34.     $( "#send" ).click(function() {
    35.     var jqxhr = $.ajax( {data: {adress:$('#adress').val(), 'mobile_phone':$('#mobile_phone').val(), 'sms_code':$('#sms_code').val()}, type: 'POST', dataType:'json', url:'t10.php'} )
    36.       .done(function(data) {
    37.         if (data.status == 'need_sms') {
    38.           $( "#sms" ).toggle(true);
    39.         }
    40.         if(data.status == 'success') {
    41.           alert('всё хорошо');
    42.         }
    43.         
    44.       })
    45.       .fail(function() {
    46.         alert( "error" );
    47.       });
    48.     });
    49.   });
    50.   </script>
    51. </head>
    52. <body>
    53. <div id="form">
    54. Заказ<hr>
    55. Адрес: <input type="text" id="adress"><br>
    56. Мобильный: <input type="text" id="mobile_phone"><br>
    57. <div id="sms">
    58.   Код из СМС: <input type="text" id="sms_code">
    59. </div>
    60. <input type="button" value="Отправить" id="send">
    61. </div>
    62. </body>
    63. </html>
     
  5. theorc

    theorc Новичок

    С нами с:
    29 июл 2015
    Сообщения:
    3
    Симпатии:
    0
    Спасибо. Буду утром пробовать