Доброе время суток. Есть форма онлайн заказа такси. Необходимо допилить на нее проверку номера телефона. То есть. Есть клиент вбил номер телефона, если номер раньше не вводился появляется поле для подтверждение кодом по смс. Если номер ранее был уже подтвержден заказ уходит. Понимаю что нужен какой то из смс шлюзов. Ну собственно мне все равно.буду пользоваться тем что вы предложите. Сама форма заказа Код (PHP): <form action="2.php" method="post"> <input name="Number" type="text" required class="textbox" placeholder="НОМЕР ТЕЛЕФОНА" value="<?php echo isset($_POST['Number']) ? $_POST['Number'] : '' ?>"><br/> <span style="font-size: 12pt; color: #FFFFFF;">Введите действующий номер телефона Пример: <strong>89331515153</strong></span> <br> <br> <input name="SourceStreet" type="text" required class="textbox" placeholder="Улицы" value="<?php echo isset($_POST[$SourceStreet]) ? $_POST[$SourceStreet] : '' ?>" /><br/> <input name="Sourcehous" type="text" required class="textbox" placeholder="Дом" value="<?php echo isset($_POST[$Sourcehous]) ? $_POST[$Sourcehous] : '' ?>" /><br/> <?php $OrderSourceAddress = $SourceStreet.$Sourcehous; ?> <input name="OrderSourceAddress" type="text" required class="textbox" placeholder="ОТКУДА ЗАБРАТЬ" value="<?php echo isset($_POST['OrderSourceAddress']) ? $_POST['OrderSourceAddress'] : '' ?>" /><br/> <span style="font-size: 12pt; color: #FFFFFF;">Пример: <strong>Пушкинская ул.,155</strong></span> <input name="OrderDestinationAddress" type="text" class="textbox" placeholder="КУДА ПОЕДЕМ" value="<?php echo isset($_POST['OrderDestinationAddress']) ? $_POST['OrderDestinationAddress'] : '' ?>" size="35" maxlength="50"/><br/> <span style="font-size: 12pt; color: #FFFFFF;">Пример: <strong>Карла Маркса ул.,268</strong></span> <script type="text/javascript"> $(document).ready(function(){ $('.spoiler_links').click(function(){ $("div[class^='spoiler_body']").hide('normal'); if ($(this).parent().children('div.spoiler_body').css("display")=="none") { $("div[class^='spoiler_body']").hide('normal'); $(this).parent().children('div.spoiler_body').toggle('normal'); } else $("div[class^='spoiler_body']").hide('normal'); return false; }); }); </script> <div style="margin-bottom:20px; font-family:AcromLight; font-size:14pt; text-align:center;"> [url="" class="]ПРЕДВАРИТЕЛЬНЫЙ ЗАКАЗ[/url] <div class="spoiler_body"> <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'] : '' ?>"/> </div> <textarea name="OrderComment" cols="35" maxlength="100" class="message" placeholder="Примечание, например: Номер подъезда, ориентир "></textarea><br/> <input type="submit" name="submit" class="button" value="ЗАКАЗАТЬ" /> 2.php шлет запрос в программу на сервер. чтобы заказ создавался автоматически PHP, JavaScript, SQL и другой код пишите внутри тегов Код ( (Unknown Language)): [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]
Посоветую поискать в поиске смс шлюз и заключить с ними контракт, используя API отправлять код для проверки.
да.это понимаю. Даже уже попробовал одну форму вида тел. код подтверждения на тестовом периоде. В основном проблема как заставить поле с телефоном проверяться на наличии в бд и если его там нет чтобы появлялось поле для ввода кода с смс и выполнялся скрипт с api. Без перезагрузки страницы. Ну скрипт выполнять можно по событию в поле ввода change. Только что писать в событие чтобы выполнялись все php. Тоесть вначале проверка наличия номера в базе (по принципу авторизации) если номера нет с файла php выполнить другой файл (типо с регистрацией). И всё это в фоновой режими, грубо говоря. или есть более простой способ?
if, elseif, else по условию что ты хочешь jquery ajax просто при отправки данных, сервер вернёт сообщение что нет такого телефона и по условию в javascript с помощью jquery покажи форму для ввода кода, который пришёл в смс. Код (PHP): <?php header('Content-Type: text/html; charset=utf-8'); $db = array('79301234567'=>'1234'); if ( empty($_POST['adress']) === false && empty($_POST['mobile_phone']) === false ) { if ( empty($_POST['sms_code']) === false && isset($db[$_POST['mobile_phone']]) && $db[$_POST['mobile_phone']] == $_POST['sms_code'] ) { // Если телефон есть в базе и код совпадает с тем который был отправлен по СМС } elseif( isset($_POST['mobile_phone']) ) { // Если телефон есть в базе, то отправляем СМС на мобильный, сообщаем пользователю, что нужно вписать код из СМС } else { // Ошибка } echo json_encode(array('status'=>'need_sms')); exit(); } ?><!DOCTYPE HTML> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> #sms { display: none; } </style> <script src="//code.jquery.com/jquery-1.11.3.min.js"></script> <script type="text/javascript"> $(function() { $( "#send" ).click(function() { var jqxhr = $.ajax( {data: {adress:$('#adress').val(), 'mobile_phone':$('#mobile_phone').val(), 'sms_code':$('#sms_code').val()}, type: 'POST', dataType:'json', url:'t10.php'} ) .done(function(data) { if (data.status == 'need_sms') { $( "#sms" ).toggle(true); } if(data.status == 'success') { alert('всё хорошо'); } }) .fail(function() { alert( "error" ); }); }); }); </script> </head> <body> <div id="form"> Заказ<hr> Адрес: <input type="text" id="adress"><br> Мобильный: <input type="text" id="mobile_phone"><br> <div id="sms"> Код из СМС: <input type="text" id="sms_code"> </div> <input type="button" value="Отправить" id="send"> </div> </body> </html>