gpt4 book ai didi

PHP - 脚本未被执行

转载 作者:行者123 更新时间:2023-12-01 00:14:04 32 4
gpt4 key购买 nike

我有一个 html 表单,用户可以在其中输入值/选择选项。选择后,这些值将被发送到服务器中的 php 脚本。该脚本将根据用户选择的值从 mysql 中检索一些数据。来自 mysql 的这些值和数据将被整理在一起并用于 POST 请求,该请求将被发送到移动设备。我会使用 curl 来执行请求。

但是,我无法执行任何POST 请求。我没有看到任何结果或变化。我尝试在我的 php 脚本中执行 echo 但即使我使用 GET

它也不会在 html 表单上打印出来

我的代码哪里出错了?

.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>

最佳答案

你应该使用mysql_real_escape_string AFTER mysql_connect

换句话说:当你调用 mysql_real_escape_string 时,你应该已经连接到 mysql 服务器,否则它将返回 false + warning 和 false 被评估为一个空字符串,这就是为什么您在代码的后端得不到任何实际值的原因。

更新:在文档中注意到 mysql_real_escape_stringphp.net 中获取函数的第二个参数(即 link_identifier(mysql 连接资源)):

The MySQL connection. If the link identifier is not specified, the last link opened by mysql_connect() is assumed. If no such link is found, it will try to create one as if mysql_connect() was called with no arguments. If no connection is found or established, an E_WARNING level error is generated

好的,您的代码还有一些问题,要解决这些问题,请执行以下操作:

html:

    <form name='frm'...

js:

    var env = document.frm.customers.value;
...
var messages = document.frm.Message.value;

php:

$_GET替换所有$_POST

关于PHP - 脚本未被执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9015179/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com