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