- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我对编写 php 比较陌生,上周开始学习它。自从我开始写它以来,这一直给我带来问题。 SQL 查询可以很好地填充常量变量,但我的应用程序正在尝试根据发布到网络服务器的 lat 和 lng 值,通过与用户的接近度来检索用户。自从迁移到新服务器 $_POST 以来,它给我带来了很多问题。我的所有脚本在某些方面都工作正常,这始终是一个问题,但现在我所有的 $_POST 调用都返回空值。非常感谢任何和所有帮助?下面的详细信息显示了我所知道的所有信息。我的虚拟主机是 fastwebhost.com,如果有人有使用它们的经验并且知道他们是否有我不知道的设置,我将非常有兴趣了解更多信息。
我正在运行 php 5.5。 curl 命令是:
`curl -H "Content-Type: application/json" -X POST -d '{"lat":121.1234, "lng":141.1234}' http://www.mywebsite.com/test.php
返回以下内容:
nullYou have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '*pi()/180 )*COS(abs(lat)*pi()/180)
*POWER(SIN((-lng)*pi()/180/2),2))) '
`
我在 php 脚本中使用的代码如下:
<?php
//connection
$con = mysqli_connect("localhost","username","password");
if (!$con) {
die('Connect Error: ' . mysqli_connect_error());
}
//select db
$select_db = mysqli_select_db($con, "datbasename") or die ("cant find table");
$tableName = "users";
$origLat = $_POST['lat'];
$origLon = $_POST['lng'];
echo json_encode($origLon); //is returning null everytime
$dist = 20; // This is the maximum distance (in miles) away from $origLat, $origLon in which to search
$query = "SELECT username, profile, image_url, lat, lng, 3956 * 2 *
ASIN(SQRT( POWER(SIN(($origLat - abs(lat))*pi()/180/2),2)
+COS($origLat*pi()/180 )*COS(abs(lat)*pi()/180)
*POWER(SIN(($origLon-lng)*pi()/180/2),2)))
as distance FROM $tableName WHERE
lng between ($origLon-$dist/abs(cos(radians($origLat))*69))
and ($origLon+$dist/abs(cos(radians($origLat))*69))
and lat between ($origLat-($dist/69))
and ($origLat+($dist/69))
having distance < $dist ORDER BY distance limit 100;";
$statement = mysqli_prepare($con, $query) or die(mysqli_error($con));;
mysqli_stmt_execute($statement);
mysqli_stmt_store_result($statement);
mysqli_stmt_bind_result($statement, $username, $profile, $image_url ,$lat, $lng, $distance);
$rows = array();
while(mysqli_stmt_fetch($statement)){
$row = array();
$row[username] = $username;
$row[profile] = $profile;
$row[image_url] = $image_url;
$row[distance] = $distance;
array_push($rows, $row);
}
echo json_encode($rows);
mysqli_stmt_close($statement);
mysqli_close($con)
?>
最佳答案
通常,POST 请求的 POST 正文会有一个键/值结构,这正是您的代码 $_POST['lat']
所期望的,其中 'lat'
作为键,并将其设置为正文。当您发送 json 作为正文时,它不会自动将 json 内的键/值结构转换为普通的 $_POST
全局变量,因此您必须自己执行此操作。
尝试这样的代码从帖子正文中获取 json 值。
$post = file_get_contents('php://input');
$json_post = json_decode($post, true);
echo $json_post['lat'] . "\n";
echo $json_post['lng'] . "\n";
关于php - 向 php $_POST 发送 cURL 终端命令返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33847017/
PHP If 语句 if (!$_POST) - !$_POST 是什么意思? 例如,在我正在查看的一些遗留代码中,代码如下: '; if (
这个问题在这里已经有了答案: What is the use of the @ symbol in PHP? (11 个答案) 关闭 8 年前。 我正在寻找在用户刷新浏览器后将用户输入保存在表单中的
我有一个简单的表单,如下所示: 当我尝试通过 if($_POST) 接收从该表单发送的数据时,我失败了,但是当尝试使用 isset 时,我成功了。 if($_POST){ echo
我目前正在从一次严重的 XSS 攻击中恢复过来,并且意识到我从未对网站上多个表单的输入进行过清理。我使用 Notepad++ 的“在文件中查找”功能在我所有的 PHP 文件中搜索 $_POST,得到了
我已经为客户端创建了一个 Yii 应用程序,它在本地和测试期间使用的我的服务器上都运行良好,没有任何问题。客户端已将应用程序移动到他们的服务器,这是它将托管的地方,并且当输入一个表单上的一个变量(只有
我正在尝试将此表格用于: 如果任何 $_POST 变量等于任何其他 $_POST 变量抛出错误。 如果只有几个,那不是问题,但我有大约 20 个左右所以如果我想这样做,我将不得不像这样 但这
首先我要说的是,我在 Google 上无休止地搜索帮助,并且在过去的 x 小时内确实花费了调试相同的错误,但我就是无法弄清楚。 我正在关注this tutorial关于如何为我的 Android 应用
应该这样用if(isset($_POST['submit'])) { } 提交表单时 if($_POST[submit])与 if(isset($_POST[submit])
这是我的代码: if(isset($_POST['make']) && isset($_POST['year']) && isset($_POST['mileage'])) {
如果我使用此代码将数字作为输入,它可以正常工作 Hours: Hours: Minutes: Hours: Minutes
因此,我获取 jquery 日期选择器和下拉选择菜单的状态,并尝试使用 AJAX 将这两个变量发送到另一个 php 文件。 var_dump($_POST); 网页上的结果: array(0)
我想将数据附加到已有的表单中。单击“提交”按钮时使用 JQUERY,如下所示。 $('#submit-buildaboat').click(function(){ console.log(
我目前正在编写一个使用表单和 PHP $_POST 数据的 Web 应用程序(到目前为止是标准的!:))。但是,(这可能是一个菜鸟查询)我刚刚意识到,从理论上讲,如果有人将 HTML 文件与假表单放在
我发现自己现在正在研究很多其他人的代码。我注意到某些代码中的 if (isset($_POST)) 并确保修复它。 (它将始终评估 true)。然后我开始看到这个: if ($_POST) 经过深思熟
如果我将数据发布到我的 Web 服务器上的测试脚本(来自远程源),则 $_POST 数组为空,但 HTTP_RAW_POST_DATA 具有发布的信息。 使用表单在本地发布的数据可以正常工作。 服务器
我遇到了一个非常奇怪的行为。假设我有以下两个 (src 属性等于 name 属性): 我的问题是:为什么第一个输入提交而第二个不提交?我正在使用 CakePHP,如果我点击第二张图片,$this
我可能有点厚,但我似乎找不到这个问题的答案。我正在从一台启用了注册全局变量的服务器转移到一台关闭它的服务器。这是一件好事,但不幸的是,多年来我一直习惯于使用注册全局变量,这导致我编写了草率的代码。我现
我无法弄清楚以下 $_POST 请求的问题所在。问题是我通过 AJAX $_POSTing 一个包含 855 条记录的数组,但我的 AJAX Controller 只接收 833。它总是接收到相同的记
这个问题已经有答案了: passing POST array to php function (3 个回答) 已关闭10 年前。 我一直在开发一个游戏项目(所以你会明白我无法发布实际的脚本),并且我正
有人知道为什么$_POST没有被设置吗? 这是一些代码。 class="even" doID; ?>"/> 我一定是忽略了一些东西。 最佳答案 如果
我是一名优秀的程序员,十分优秀!