Есть ли способ отправить форму, которая затем отправляет мне другую форму? - PullRequest
0 голосов
/ 05 августа 2020

Я пытаюсь отправить OTP на определенный телефонный номер, который извлекается из базы данных mySQL с использованием PHP. Как это работает в настоящее время:

1. Пользователь вводит адрес электронной почты и нажимает кнопку входа в систему.

2. OTP генерируется и сохраняется случайным образом в БД.

3. номер телефона, связанный с полученным адресом электронной почты.

Однако служба SMS, которую я использую, использует форму для отправки данных в файл-отправитель третьей стороны . Моя проблема в том, что мне нужно сначала получить данные, а затем использовать эти данные в качестве параметров для другой формы и отправить их. Но я не знаю, смогу ли я сделать все это с помощью одной кнопки.

Ниже моя форма, которая вызывает файл входа в систему.

<form action="login.php" method="POST">
  <div class="form-signin">
    <h2 class="form-signin-heading"></h2>
    <?php if ($_REQUEST['s'] == 't') { ?>
    <label for="clientToken" class="sr-only">Verification Code</label>
    <input type="text" name="clientToken" id="clientToken" class="form-control" placeholder="6 digit Token" required autofocus><br>
    <?php } else { ?>
    <label for="clientEmail" class="sr-only">Email</label>
    <input type="text" autocomplete="clientEmail" name="clientEmail" id="clientEmail" class="form-control" placeholder="Email" required autofocus><br>
    <?php } ?>
    <input class="btn btn-lg btn-danger btn-block" type="submit" value="Login"></input><br>
    <?php if ($_REQUEST['s'] == 'f') { ?>
    <div class="text-center text-white">No such email exists in our records</div>
    <?php } ?>
  </div>
</form>

Ниже приведена форма, которая вызывает службу отправки SMS, которую я пытаюсь отправить после входа в систему. Файл php завершил получение данных из mySQL БД .

<form id="sms" action="https://api.silverstreet.com/send.php" method="post">
  <table align="center">
    <tr style="display: none">
      <td>Username</td>
      <td>: <input type="text" name="username" value="name" readonly="readonly"></td>
    </tr>
    <tr style="display: none">
      <td>Password</td>
      <td>: <input type="text" name="password" value="pass" readonly="readonly"></td>
    </tr>
    <tr style="display: none">
      <td>Destination</td>
      <td>: <input type="text" name="destination" value="number"> Eg: 60125555555</td>
    </tr>
    <tr style="display: none">
      <td>Sender</td>
      <td>: <input type="text" name="sender" value="name"></td>
    </tr>
    <tr style="display: none">
      <td>Body</td>
      <td>: <textarea name="body" rows="4" cols="50">OTP here</textarea></td>
    </tr>
    <tr style="display: none">
      <td align="center" colspan="2"><input type="submit"></td>
    </tr>
  </table>
</form>

Есть ли способ, которым я смогу это сделать? Или мне понадобятся две отдельные кнопки?

1 Ответ

1 голос
/ 05 августа 2020

Вы можете использовать php curl для отправки формы (или отправки запроса) с вашего сервера.

В login.php, после получения информации из базы данных, вы можете отправить запрос curl, как показано ниже:

<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.silverstreet.com/send.php');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, http_build_query(
    array(
        "username" => "<username>",
        "password" => "<password>",
        "sender" => "hello",
        "body" => "hello world.",
        "destination" => "1234567890,1234567891"
    )
));
$result = curl_exec($ch);
if(curl_errno($ch)){ echo curl_errno($ch); }
curl_close($ch));
?>

Ссылка: https://www.silverstreet.com/api-documents/?php#portal -sms-submit

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...