2015-07-16 3 views
1

Я некоторое время работал вокруг PHP, но я не могу обернуть голову, как заставить это работать.PHP для заполнения ссылки из HTML-формы

Очень просто - я хочу, чтобы моя ссылка на динамическое заполнение HTTP-ссылки в зависимости от того, что произошло, в зависимости от того, что было введено в мою форму.

Поэтому я просто хочу, чтобы эта HTTP-ссылка заполнялась динамически (так как номер телефона пользователя должен быть вставлен, а ключ API должен быть скрыт).

Мой HTML

<form> 
<label for="Name">Phone Number</label><br> 
<input type="SMSnumber" id="name" required><br> 
<input type="submit" value="Send me the SMS"> 

PHP для заполнения ссылка:

https://api.clockworksms.com/http/send.aspx?key=APIKEY&to=<?php echo $_POST["SMSnumber"]; 
?>&content=Hello+World 

(оригинальная ссылка https://api.clockworksms.com/http/send.aspx?key=KEY&to=441234567890&content=Hello+World)

Я должен сказать моему PHP для заполнения раздела, который вводится в виде (метка «SMSnumber»). Я думаю, что это может сработать, но он все еще оставляет ключ API API открытым в HTML.

Как я могу сказать, что эта ссылка произошла при нажатии кнопки «отправить»?

Как скрыть ссылку, чтобы мой API не был виден для публики?

Thanks

+0

вы не сообщите нам, где вы используете эту ссылку, если вы отправляете данные с PHP на этот URL-адрес, тогда ключ API не отображается, вы можете использовать cURL-библиотеку http://php.net/manual/en/book .curl.php для связи между сервером и сервером – knetsi

+0

Я планирую поделиться ссылкой на своей домашней странице (publiclly), чтобы пользователи могли ввести их номер, чтобы иметь SMS-ссылку на AppStore. – Ycon

+0

Вы не можете защитить свой ключ API, если вы установили его на своей домашней странице, вы должны позволить пользователям публиковать данные, которые вы хотите опубликовать, а затем обрабатывать на своем сервере запрос и направлять данные в ссылку с помощью вашего ключа API. – knetsi

ответ

3

Вам необходимо установить метод HTTP. http://www.w3schools.com/tags/att_form_method.asp

<form method="POST"> 
//------^ 

Чтобы скрыть свой апи ключ, который вы можете сделать следующее. используя Curl. Конечно, вы должны добавить свой API-ключ в код ниже.

<?php 

if(isset($_POST['SMSnumber'])){ 
    $url = 'https://api.clockworksms.com/http/send.aspx?key=APIKEY&to=' . $_POST["SMSnumber"] . '&content=Hello+World'; 

    $ch = curl_init(); 

     //Set Options 
     curl_setopt($ch, CURLOPT_URL, $url); 
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 

     // Execute request 
     $result = curl_exec($ch); 

     echo $result; 

} else { 

?> 

<form method="POST"> 
<label for="Name">Phone Number</label><br> 
<input name="SMSnumber" type="text" id="name" required><br> 
<input type="submit" value="Send me the SMS"> 
</form> 

<?php } ?> 
+0

. Спасибо, но это показывает ссылку публично. Как я могу держать его в тайне? И как я могу получить эту ссылку для запуска при нажатии «отправить»? – Ycon

+0

Отредактированный мой asnwer, вы можете получить код курса вашего api с помощью Curl. С исходным кодом вы можете делать все, что захотите.Его хранится в $ result – PHPhil

+0

Спасибо, но кнопка «Отправить» приведет меня на страницу «test.php» и, похоже, не выполняет «HTTP-запрос». – Ycon

0

Изменить Вы form к

<form method="post"> 
<label for="Name">Phone Number</label><br> 
<input name="SMSnumber" type="text" id="name" required><br> 
<input type="submit" value="Send me the SMS"> 
</form> 

Потому что вы использовали, <?php echo $_POST["SMSnumber"]; ?> к этому name атрибут input должен быть SMSnumber

1

Если вы не хотите подвергать свой ключ API, то запрос должен будут отправляться с бэкэнда следующим образом:

<?php 

    if(isset($_POST['SMSnumber']){ 
    $url="https://api.clockworksms.com/http/send.aspx?key=APIKEY&to=".$_POST["SMSnumber"]."&content=Hello+World"; 

    $curl = curl_init(); 
    curl_setopt_array($curl, array(
     CURLOPT_RETURNTRANSFER => 1, 
     CURLOPT_URL => $url, 
     CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3' 
     )); 
    $resp = curl_exec($curl); 
    curl_close($curl); 
    } 
?> 
<form method="POST"> 
<label for="Name">Phone Number</label><br> 
<input type="text" name='SMSnumber' id="name" required><br> 
<input type="submit" value="Send me the SMS"> 
</form> 
Смежные вопросы