请注意,我使用以下cURL
代码从其他页面调用此页面:
$chx = curl_init();
curl_setopt($chx, CURLOPT_URL,"../php/giveactions.php");
curl_setopt($chx, CURLOPT_POST, 1);
curl_setopt($chx, CURLOPT_POSTFIELDS, "user=myname&actions=10&addy=DCGyHh6cy46ZYqwyy5PzMYLujLZVoPJVPE");
curl_setopt($chx, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($chx, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($chx, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($chx, CURLOPT_SSLVERSION,3);
$server_output = curl_exec($chx);
curl_close ($chx);
我有一个PHP函数页面,其中包含以下代码:
<?
require('db.php');
$moreactions = 0;
$totalActions = 0;
if (isset($_POST["user"])) {
$user_id = $_POST["user"];
}
if (isset($_POST["actions"])) {
$moreactions = $_POST["actions"];
}
if (isset($_POST["addy"])) {
$addy = $_POST["addy"];
}
$moreactions = round($moreactions / 10);
$query = "SELECT * FROM `systems` WHERE `name` = '$user_id';" or die(mysql_error());
$results = mysql_query($query);
while($row = mysql_fetch_array($results)) {
$actions = $row["actions"];
}
$totalActions = $actions + $moreactions;
mysql_query("UPDATE `systems` SET actions=" . $totalActions . " WHERE `name` = '".$user_id."';") or die(mysql_error());
echo "200ok";
mysql_close();
?>
出于某种原因,我可以输出$totalActions
罚款(完美计算等)。但只使用Rest Post Client,当我在Web服务器上尝试它时,它会执行除UPDATE MySQL行之外的所有操作...
我为这个问题的模糊性道歉,我会根据评论/答案进行修改。
先谢谢chaps和chappesses
编辑:变量回显很好,MySQL查询也很好,所有变量设置正确编辑2:注意&#34; 200ok&#34;在文件的末尾也回复得很好!
答案 0 :(得分:0)
修复是cURL CURLOPT_URL需要是非相对的
所以http://www.blah.com/whatever.php
代替/whatever.php
感谢所有人的帮助!
答案 1 :(得分:-1)
我想使用REST post客户端传输POST变量用户。
仅通过浏览器访问时,$ _POST [“user”]将不会被设置,因此UPDATE中的WHERE子句不匹配。