2013-06-28 3 views
1

Прошу вас, как и я, новичок в PHP.Извлечь значение PHP

Я использую Twilio для разработки приложения IVR и использую тег [record], чтобы сделать короткую запись имени someones.

Так page1.php выглядит примерно так:

<?php 
    header("content-type: text/xml"); 
    echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"; 
?> 
<Response> 
    <Say>Please state your name after the tone</Say> 
    <Record maxLength="20" finishOnKey="#" playBeep="true" action="page2.php" /> 
</Response> 

Это нормально, и значение RecordingURL пропускается в page2.php, как это должно быть. Тем не менее, на странице2.php я попрошу пользователя ввести свой ссылочный номер и передать значение RecordingURL в page3.php.

page2.php

<?php 
header("content-type: text/xml"); 
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"; 

$rec_url=$_REQUEST['RecordingUrl']; 
?> 
<Response> 
<Gather timeout="7" finishOnKey="#" numDigits="3" action="page3.php?rec_url=<?php echo $_REQUEST['RecordingUrl']; ?>" method="POST"> 
<Say>Please now enter your reference number</Say> 
</Gather> 
</Response> 

Page3.php

<?php 
header("content-type: text/xml"); 
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"; 

$ref_no=$_REQUEST['Digits']; 
$cli=$_REQUEST['From']; 
$rec_url=$_GET['rec_url']; 
$nodialled=$_REQUEST['To']; 
?> 
<Response> 
<Say>Thank you. Goodbye.</Say> 
</Response> 

<?php 
$ref_no=$_POST['Digits']; 
$cli=$_POST['From']; 
$recording_url=$_POST['rec_url']; 
$nodialled=$_POST['To']; 
$html="<br />"; 

file_put_contents("test.html", "CLI: $cli $html Number Dialled: $nodialled $html Reference: $ref_no $html Recording URL: $recording_url"); 

?> 

Любые идеи?

Заранее спасибо

+1

'голый со мной' ?? Я не раздеваюсь, я даже не знаю тебя! – Dale

ответ

0

Попробуйте:

<Gather timeout="7" finishOnKey="#" numDigits="3" action="page3.php?rec_url=<?php echo $_REQUEST['RecordingUrl']; ?>" 

Отправить как GET, так как на page3.php вы принимаете его с GET $rec_url=$_GET['rec_url'];

или попытаться получить его на PAGE3 с поста :

$rec_url=$_POST['rec_url']; 

редактировать:
вы можете попробовать начать занятия на всех страницах:

<?php start_session(); ?> 

, а затем установить его на page2.php как:

$_SESSION['RecordingUrl']=$rec_url; 

, то вы можете иметь его на page3.php как:

$rec_url=$_SESSION['RecordingUrl']; 
+0

Я определенно получаю значение обратно в page2.php, но get/post не передает его в querystring на страницу3.php – srob

+0

попробуйте с сеансами, я сделал редактирование в ответ – mirkobrankovic

+0

Спасибо.Я не мог заставить сеансы работать, но мне удалось передать его в последовательности действий, создав запрос перед действием. – srob

0

SimonR91 упомянул, что он получил это для работы, создав запрос перед действием.

Это был единственный способ, которым я мог найти, чтобы передать переменную в Twilio.

Однако дополнительная точка осветления является то, что вы не можете использовать:

if (isset $_GET["variable"]) 
{ 
    $variable = $_GET["variable"]; 
} 

Это заставляет Twilio возвращать сигнал занятости.

Вместо этого у вас есть $ _GET переменная, доверяющая, что она есть. Кроме того, вы не можете передать переменную непосредственно из Twilio в начале вызова. У вас должен быть один сценарий, который запускает вызов, а затем второй скрипт, который может передавать пропущенные переменные самому себе.

Смежные вопросы