0
我有一个html表单,用户输入值/选项。选择后,这些值将被发送到服务器中的php脚本。该脚本将根据用户选择的值从mysql中检索一些数据。然后将这些来自mysql的值和数据整理在一起并用于将发送到移动设备的POST
请求。我会用curl来做请求。PHP - 脚本没有执行
但是,我无法做任何POST
请求。我没有看到任何结果或变化。我尝试在我的PHP脚本中做echo
,但它不是在HTML表格上打印出来,即使我使用了GET
我的代码出错了吗?
的.html
<script type="text/javascript">
function doSubmit() {
var env = document.frm.Env.value;
var appname = document.frm.appname.value;
var target = document.frm.target.value;
var messages = document.frm.messages.value;
var strURL = "sendMessage.php?Env=" +env+ "&appname=" +appname+ "&target=" +target+ "&Message=" +messages;
xmlhttp.open("GET",strURL,true);
xmlhttp.send(null);
}
</script>
</head>
<body>
<form action="">
Environment: <div id="Env">
<select name="customers" onchange="showApplications(this.value)">
<option value="Environment">Select an environment</option>
<option value="S">Sandbox</option>
<option value="P">Production</option>
</select>
</div>
</br>
Application Name: <div id="appname">
<select name="appname" onchange="showTargets(this.value)">
<option value="">Select application</option>
</select>
</div>
</br>
Target Device : <div id="target">
<select name="target">
<option>Select Device OS</option>
</select>
</div>
</br>
Message: <div id="messages"><input type="text" name="Message" maxlength="200" size="50"></input></div>
</br>
<input type = "button" value="Send" onclick="doSubmit();">
</form>
</br>
</body>
</html>
.PHP
<?php
$env = mysql_real_escape_string($_POST["env"]);
$appname = mysql_real_escape_string($_POST["appname"]);
$target = mysql_real_escape_string($_POST["target"]);
$messages = mysql_real_escape_string($_POST["messages"]);
$conn = mysql_connect("127.0.0.1:3306", "root", "");
mysql_select_db("PushApplication", $conn);
if ($target == "All") {
echo "Hi";
} elseif ($target == "Apple") {
echo "Apple";
$query = "select deviceID from Device where DeviceType='$target'";
$result = mysql_query($query);
$num = mysql_numrows($result);
$i = 0;
while ($i < $num) {
$myResult = mysql_result($result, $i);
$url = "http://10.28.68.28:8899/?Env='$env'&AppName='$target'&Token='$myResult'&Message=%7B%22aps%22%3A%7B%22alert%22%3A%22'$messages'%22%7D";
echo $url;
curl $url
++$i;
}
}
else
echo "Hi!";
?>
</select>
什么是'xmlhttp'?你的'
您应该使用
换句话说mysql_real_escape_string
后mysql_connect
:你应该已经到MySQL的连接服务器的时候你打电话给
mysql_real_escape_string
或者它会返回false
+警告和false
被评估为一个空字符串,这就是为什么你没有在你的代码后端得到任何真正的值。UPDATE:它注意到在文件中以
mysql_real_escape_string
在php.net
为函数的第二个参数(这是link_identifier(MySQL连接资源)):好了,这里有一些更多的问题与您的代码,以修复做到以下几点:
HTML:
JS:
PHP:
替换所有
$_POST
与$_GET
来源
2012-01-26 08:33:33 Nemoden
实际上,它没有太大的区别...... – Christian
同意,mysql_real_escape_string是一个SQL相关的函数,只有当你连接到数据库时才会起作用。 – Eirinn
嗨,我已经改变了它的位置。但无法收到任何回应。删除'mysql_real_escape_string'也没有帮助。任何方式,我可以打印出我的变量来检查他们的内容? – Hend
的Javascript访问
document.frm
,但形式不与名称 'FRM' 定义。我想这是JavaScript停止的地方,不会触发xhr的事情。来源
2012-01-26 08:44:52 Lyth
+1指出可能的问题。但是仍然不起作用。不管怎么说,还是要谢谢你。 – Hend