我正在使用Twilio API接收短信。我想存储收到的消息的编号和正文。它是在xml php页面中收到的,我想在不同的php页面中使用它。我该怎么办呢? 消息是通过Post请求接收的,twilio一旦收到就会更新xml php文件。
这是xml php文件代码:
<?php
header("content-type: text/xml");
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
?>
<Response>
<Sms>Hello again, Dr. Evil</Sms>
</Response>
<?php
$body = $_POST['Body'];
$responder = $_POST['From'];
if ($body) {
// if some response has been received, tell us what it is
// echo "<Body>".$body."</Body>"; <--wrong
// echo "<Responder>".$responder."</Responder>"; <--wrong
};
?>
最后几行中的“if”语句似乎不起作用。我应该使用javascript(&amp; jquery)吗?怎么样?我是新手,所以要善待......
谢谢!
UPDATE1:
我按照你的建议尝试保存到数据库,但它仍然无效... :(
这是新代码:
<?php
header("content-type: text/xml");
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
?>
<Response>
<Sms>Hows it going, Dr. Evil</Sms>
</Response>
<?php
$body = $_POST['Body'];
$responder = $_POST['From'];
if ($body) {
require_once "../includes/functions.php";
connectDatabase();
//storing message and sender in database
mysql_query("INSERT INTO sms_received (responder, body)
VALUES ('$responder', '$body')");
mysql_close();
};
?>
UPDATE2:
好的,我调试了它,上次我遇到路径问题,但这段代码现在正在运行!!!
谢谢大家: - )
答案 0 :(得分:1)
PHP不会在任何地方存储有关短信的信息,因此您将失去它。您描述的内容意味着您的PHP文件将被加载两次。第一次,Twilio服务器将加载您的PHP文件并阅读Evil&lt; Response&gt;。
第二次,您将在Web浏览器中加载PHP文件。 $_POST
变量取决于浏览器中的信息(以及Twilio请求中的信息),因此两种情况都不一样。这意味着您需要将数据保存在某个地方,因此不会丢失。当Twilio发出请求,然后稍后从文件或数据库加载数据时,您可以使用数据库或将其写入文本文件。如果您收到多条收到的短信,这也有帮助 - 您可以将所有短信存储在文件或数据库中。
答案 1 :(得分:0)
您不会将其存储在此代码中的任何位置。你只是输出它。您需要将其保存到某种类型的数据库中,而不是将其回显给Twilio(这将忽略<Response>
块之外的任何内容。
由于两个原因,JavaScript无法解决这个问题 - 它是一个XML文件,Twilio不会执行JS代码。