Post wsdl 结构中的动态值
Post value dynamically inside wsdl structure
我有 php 脚本到 post 并使用 curl php:
更新 wsdl 密钥的值
$imei = $_POST['86207503'];
$data = "<soap:Envelope xmlns:soap=\"http://www.w3.org/2003/05/soap-envelope\" xmlns:sub=\"http://subscriberexample.com/\">\r\n
<soap:Header/>\r\n <soap:Body>\r\n
<sub:wsUpdateSubscriberProfile>\r\n
<!--Optional:-->\r\n
<subscriberProfile>\r\n
<!--Zero or more repetitions:-->\r\n
<entry>\r\n
<!--Optional:-->\r\n
<key>IMEI</key>\r\n
<!--Optional:-->\r\n
<value>{$imei}</value>\r\n
</entry>\r\n
</subscriberProfile>\r\n
<!--Optional:-->\r\n
<subscriberID>123546546</subscriberID>\r\n
<!--Optional:-->\r\n
<alternateId>?</alternateId>\r\n
<!--Optional:-->\r\n
<updateAction>?</updateAction>\r\n
<!--Optional:-->\r\n
<parameter1>?</parameter1>\r\n
<!--Optional:-->\r\n
<parameter2>?</parameter2>\r\n
</sub:wsUpdateSubscriberProfile>\r\n
</soap:Body>\r\n</soap:Envelope>";
$curl = curl_init();
.....
它运行如果在上面的脚本上手动输入数据就成功了。我尝试使用 $imei = $_POST['86207503'];
中表格中的动态值作为 IMEI 值
但它不起作用,值从未传递。任何人都知道如何解决这个问题?
谢谢。
无法复现,imei肯定是注入了这个测试码:
<?php
$imei = 'SOMETHING_EASY_TO_SPOT';
$data = "<soap:Envelope xmlns:soap=\"http://www.w3.org/2003/05/soap-envelope\" xmlns:sub=\"http://subscriberexample.com/\">\r\n
<soap:Header/>\r\n <soap:Body>\r\n
<sub:wsUpdateSubscriberProfile>\r\n
<!--Optional:-->\r\n
<subscriberProfile>\r\n
<!--Zero or more repetitions:-->\r\n
<entry>\r\n
<!--Optional:-->\r\n
<key>IMEI</key>\r\n
<!--Optional:-->\r\n
<value>{$imei}</value>\r\n
</entry>\r\n
</subscriberProfile>\r\n
<!--Optional:-->\r\n
<subscriberID>123546546</subscriberID>\r\n
<!--Optional:-->\r\n
<alternateId>?</alternateId>\r\n
<!--Optional:-->\r\n
<updateAction>?</updateAction>\r\n
<!--Optional:-->\r\n
<parameter1>?</parameter1>\r\n
<!--Optional:-->\r\n
<parameter2>?</parameter2>\r\n
</sub:wsUpdateSubscriberProfile>\r\n
</soap:Body>\r\n</soap:Envelope>";
var_dump($data);
输出是:
string(863) "<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:sub="http://subscriberexample.com/">
<soap:Header/>
<soap:Body>
<sub:wsUpdateSubscriberProfile>
<!--Optional:-->
<subscriberProfile>
<!--Zero or more repetitions:-->
<entry>
<!--Optional:-->
<key>IMEI</key>
<!--Optional:-->
<value>SOMETHING_EASY_TO_SPOT</value>
</entry>
</subscriberProfile>
<!--Optional:-->
<subscriberID>123546546</subscriberID>
<!--Optional:-->
<alternateId>?</alternateId>
<!--Optional:-->
<updateAction>?</updateAction>
<!--Optional:-->
<parameter1>?</parameter1>
<!--Optional:-->
<parameter2>?</parameter2>
</sub:wsUpdateSubscriberProfile>
</soap:Body>
</soap:Envelope>"
如果您查看输出中的第 22 行,肯定会注入 $imei
变量。因此我投票结束这个问题 "can not reproduce".
顺便说一句,如果你 运行 var_dump($_POST);
你会得到什么?真的有一个 POST 键为 86207503
的变量吗?如果没有,这可能意味着您的开发环境的 error_reporting
值是错误的,意味着它不包括 E_NOTICE
,它绝对应该
我有 php 脚本到 post 并使用 curl php:
更新 wsdl 密钥的值 $imei = $_POST['86207503'];
$data = "<soap:Envelope xmlns:soap=\"http://www.w3.org/2003/05/soap-envelope\" xmlns:sub=\"http://subscriberexample.com/\">\r\n
<soap:Header/>\r\n <soap:Body>\r\n
<sub:wsUpdateSubscriberProfile>\r\n
<!--Optional:-->\r\n
<subscriberProfile>\r\n
<!--Zero or more repetitions:-->\r\n
<entry>\r\n
<!--Optional:-->\r\n
<key>IMEI</key>\r\n
<!--Optional:-->\r\n
<value>{$imei}</value>\r\n
</entry>\r\n
</subscriberProfile>\r\n
<!--Optional:-->\r\n
<subscriberID>123546546</subscriberID>\r\n
<!--Optional:-->\r\n
<alternateId>?</alternateId>\r\n
<!--Optional:-->\r\n
<updateAction>?</updateAction>\r\n
<!--Optional:-->\r\n
<parameter1>?</parameter1>\r\n
<!--Optional:-->\r\n
<parameter2>?</parameter2>\r\n
</sub:wsUpdateSubscriberProfile>\r\n
</soap:Body>\r\n</soap:Envelope>";
$curl = curl_init();
.....
它运行如果在上面的脚本上手动输入数据就成功了。我尝试使用 $imei = $_POST['86207503'];
但它不起作用,值从未传递。任何人都知道如何解决这个问题?
谢谢。
无法复现,imei肯定是注入了这个测试码:
<?php
$imei = 'SOMETHING_EASY_TO_SPOT';
$data = "<soap:Envelope xmlns:soap=\"http://www.w3.org/2003/05/soap-envelope\" xmlns:sub=\"http://subscriberexample.com/\">\r\n
<soap:Header/>\r\n <soap:Body>\r\n
<sub:wsUpdateSubscriberProfile>\r\n
<!--Optional:-->\r\n
<subscriberProfile>\r\n
<!--Zero or more repetitions:-->\r\n
<entry>\r\n
<!--Optional:-->\r\n
<key>IMEI</key>\r\n
<!--Optional:-->\r\n
<value>{$imei}</value>\r\n
</entry>\r\n
</subscriberProfile>\r\n
<!--Optional:-->\r\n
<subscriberID>123546546</subscriberID>\r\n
<!--Optional:-->\r\n
<alternateId>?</alternateId>\r\n
<!--Optional:-->\r\n
<updateAction>?</updateAction>\r\n
<!--Optional:-->\r\n
<parameter1>?</parameter1>\r\n
<!--Optional:-->\r\n
<parameter2>?</parameter2>\r\n
</sub:wsUpdateSubscriberProfile>\r\n
</soap:Body>\r\n</soap:Envelope>";
var_dump($data);
输出是:
string(863) "<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:sub="http://subscriberexample.com/">
<soap:Header/>
<soap:Body>
<sub:wsUpdateSubscriberProfile>
<!--Optional:-->
<subscriberProfile>
<!--Zero or more repetitions:-->
<entry>
<!--Optional:-->
<key>IMEI</key>
<!--Optional:-->
<value>SOMETHING_EASY_TO_SPOT</value>
</entry>
</subscriberProfile>
<!--Optional:-->
<subscriberID>123546546</subscriberID>
<!--Optional:-->
<alternateId>?</alternateId>
<!--Optional:-->
<updateAction>?</updateAction>
<!--Optional:-->
<parameter1>?</parameter1>
<!--Optional:-->
<parameter2>?</parameter2>
</sub:wsUpdateSubscriberProfile>
</soap:Body>
</soap:Envelope>"
如果您查看输出中的第 22 行,肯定会注入 $imei
变量。因此我投票结束这个问题 "can not reproduce".
顺便说一句,如果你 运行 var_dump($_POST);
你会得到什么?真的有一个 POST 键为 86207503
的变量吗?如果没有,这可能意味着您的开发环境的 error_reporting
值是错误的,意味着它不包括 E_NOTICE
,它绝对应该