为了账号安全,请及时绑定邮箱和手机立即绑定

PHP 帖子未正确接收变量

PHP 帖子未正确接收变量

PHP
慕姐8265434 2021-07-05 16:26:25
我在这里有这个脚本:<?php//Tell the requester to output response as JSON//header('Content-Type: application/json;charset=utf-8');//POST information.$name = $_POST['username'];$pass = $_POST['password'];$mysql_server = 'localhost';$mysql_user = 'root';$mysql_pass = '';$mysql_dbname = 'test';//Set up variables needed for middle-end$return_code = 0;$error_message = '';//Connect to the Database$conn = new mysqli($mysql_server, $mysql_user, $mysql_pass, $mysql_dbname);if ($conn->connect_error){    //Return an error (in JSON format) that MySQL server wont connect    $return_code = -1;    $error_message = 'Failed to connect to MySQL: ' . $conn->connect_error;}else{    //Query for a User/Pass match    $sqlquery = "SELECT ucid FROM test WHERE ucid = '" . $name . "' AND password = '" . hash('sha256', $pass) . "'";    $result = mysqli_query($conn, $sqlquery);    if (mysqli_num_rows($result) > 0)    {     //On Successful User/Pass            $return_code = 1;    }    elseif(mysqli_num_rows($result) == 0)    {            //On Failed User/Pass            $return_code = 0;            $error_message = 'Incorrect Username or Password';    }    else     {        //Something went wrong        $return_code = -1;        $error_message = 'You messed something up real good.';    }}基本上,你向它传递一个用户名和密码,然后脚本连接到一个 MySQL 服务器,并在它被 sha256 散列后执行用户名 + 密码的 SQL 查询。查询的重点是查看用户名+密码是否为有效组合。如果其中一个错误,则查询应显示 0 个结果,从而导致“用户名或密码不正确”消息但是,当我运行脚本并回显结果时,显然没有通过:<b>Notice</b>:  Undefined variable: jsonResults in <b>C:\xampp\htdocs\alpha-test\db.php</b> on line <b>62</b><br />null<br><br>return code = 0 and message: Incorrect Username or Password<br>Query Passed: SELECT ucid FROM test WHERE ucid = '' AND password = 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855'Username passed was: and Password passed was: 我不知道我做错了什么。
查看完整描述

3 回答

?
LEATH

TA贡献1936条经验 获得超6个赞

问题似乎与邮递员有关(我从未使用过)。对此进行测试的最佳方法是在新页面上创建一个表单并实际发布数据并确保其有效。


1)当我无法弄清楚为什么某些东西不起作用时,我会简化问题并减少其他错误导致问题的可能性。因此,通过添加这些行来更改您的 php 脚本。


$name = $_POST['username'];

echo $name; 

exit;  

您需要确保 $name 已设置。


2) 创建张贴到此页面的表单。


<form action="yourscript.php" method="post">

username: <input type=text name="username"><br>

password: <input type=text name="password"><br>

<input type=submit value="submit">

</form>

提交表单并确保在担心 mysql 或其他问题之前捕获 $_POST['username'] 和 $_POST['password'] 。


3)正如您所知,我在本地尝试了此操作,并且发布该表单并正确设置了 $name 没有任何问题。所以问题一定与你如何设置邮递员有关。


GL


查看完整回答
反对 回复 2021-07-09
?
慕雪6442864

TA贡献1812条经验 获得超5个赞

<b>Notice</b>:  Undefined variable: jsonResults in <b>C:\xampp\htdocs\alpha-test\db.php</b> on line <b>62</b><br />

我注意到上述错误的第一件事,要删除此错误,您应该全局声明$jsonResults,目前它的范围是本地的,可以阻止您在此设置值的位置。

下一个问题是空白的用户名和密码,为此请分享您的表格,从您发送这些的地方。可能您缺少name属性或某些拼写错误。


查看完整回答
反对 回复 2021-07-09
  • 3 回答
  • 0 关注
  • 143 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信