所以我试图从我在phpmyadmin中输入的字段中获取用户即时登录的数字(或者只是当用户被发现时弹出1)。当我输入一些完全随机的东西时,我得到0,因为随机输入的字母不在我的数据库中,所以它没有在数据库中找到,但是当我从其中一个用户输入实际的登录名和密码时,我得到0而不是1,这意味着从数据库中找到该用户。我不确定我是否可以链接数据库,但这里是:http://localhost/phpmyadmin/sql.php?db=mysqldb1&table=users&token=dbc781132ba546cedab4644522745917&pos=0这里是代码:这里是login.html
<html>
<head>
<title> MYSQL </title>
<script
src="https://code.jquery.com/jquery-3.3.1.js" integrity="sha256-2Kok7MbOyxpgUVvAk/HJ2jigOSYS2auK4Pfzbm7uH60=" crossorigin="anonymous">
</script>
</head>
<body>
<div id="status"></div>
<input id="login" placeholder="Login"><br>
<input type="password" id="pass" placeholder="Password" ><br>
<button id="entry"> Login </button>
<script>
$("#entry").click(function(){
$.post("check.php", {login: $("#login").val(), password: $("#pass").val()},
function(result){
$("#status").html(result);
})
})
</script>
</body>
</html>
这是php代码
<?php
$login=$_POST['login'];
$password=$_POST['password'];
echo $login.$password;
require "config/con1.php";
$sql= "SELECT id FROM users WHERE login='$login' AND password='$password' ";
$result=mysqli_query($con, $sql);
$value = mysqli_num_rows($result);
echo $value;
?>
答案 0 :(得分:1)
当您require
或include
时,该文件中的代码将在与发出命令的代码相同的范围内运行。这意味着您在包含的文件中执行的任何操作都会影响此范围内的其余代码,包括为变量赋值。
官方文件中的具体相关引用:
当包含文件时,它包含的代码会继承该变量 包含发生的行的范围。任何可用的变量 在调用文件中的那一行将在被调用的内容中可用 文件,从那时起。但是,所有功能和类 在包含文件中定义的具有全局范围。
您目前正在文件顶部附近$password=$_POST['password'];
进行操作。然后你require "config/con1.php";
。如果您在$password
(您曾经)中为con1.php
分配新值,则该值会转移回您的主文件(check.php
)。
您可以将require "config/con1.php";
移至check.php
的顶部,或在con1.php
(或两者)中使用不同的变量名来解决此问题。