PHP、mySQL和xampp登录表单问题
我正在为我的员工创建一个登录表单。我认为我在xampp上的mySQL本地主机端口存在端口问题,但我不知道。Apache和mySQL不是应该从同一个端口运行吗?但无论如何 在xampp上,我的apache端口是8080,因此“localhost:8080”。我的mySQL端口是3306,所以我在php中使用“localhost:3306”作为“$host”变量。现在,“login.php”是我在html中使用的“form action”,也是文档的名称,所以我的php和html都在同一个页面上,没有单独的文档;只是想澄清一下 问题是:当我单击“提交”的等效项时,我的“回音”或“错误”代码都不会通过。基本上,页面保持不变。什么也没发生。如果我故意把密码弄错了,我的任何错误都不会通过。我停留在同一页上,看不出有什么效果。没有什么可以告诉我我做的是否有效 我的phpMyAdmin数据库名为“accounts”,表名为“users” 我的php位于 我的html位于 再次: PHPPHP、mySQL和xampp登录表单问题,php,mysql,apache,xampp,Php,Mysql,Apache,Xampp,我正在为我的员工创建一个登录表单。我认为我在xampp上的mySQL本地主机端口存在端口问题,但我不知道。Apache和mySQL不是应该从同一个端口运行吗?但无论如何 在xampp上,我的apache端口是8080,因此“localhost:8080”。我的mySQL端口是3306,所以我在php中使用“localhost:3306”作为“$host”变量。现在,“login.php”是我在html中使用的“form action”,也是文档的名称,所以我的php和html都在同一个页面上,没
您在中使用了错误的变量
$sql = "SELECT * FROM users WHERE User='".$user."' AND Pass='".$pass."' LIMIT 1";
看看这些,这些是你应该使用的变量
$username = $_POST['user'];
$password = $_POST['pass'];`
错误报告将引发未定义的变量通知
添加到文件的顶部,这将有助于查找错误
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
// rest of your code
我注意到您可能正在以明文形式存储密码。如果是这样的话,我们非常不鼓励这样做
我建议您使用或PHP5.5的函数
对于小于5.5的PHP,请使用 什么是session\u start()
?@SverriM.Olsen最后一个大括号代表if(isset($\u POST['user'])
)和OP可能输入了一个错误并打算执行session\u start()代码>-很多时候,这是一个错误的复制/粘贴。编辑:您已经编辑了关于我的第一部分的评论。是的,很抱歉,复制/粘贴错误。打开后立即将错误报告添加到文件顶部。您在$sql=“SELECT*FROM users WHERE User=”“$User.”和Pass=“$Pass.”“LIMIT 1”中使用了错误的变量代码>看看这些$username=$\u POST['user']$密码=$_POST['pass']代码>错误报告会抛出一个未定义的变量通知。非常感谢!它工作得很好!我将学习mySQLi。再次感谢。你帮我节省了不少时间@丹尼尔·约翰逊不客气,丹尼尔。我们现在可以结束问题并将其标记为已解决。下面是如何返回到我的答案,并以同样的方式勾选复选标记。干杯,欢迎来到Stack。
$username = $_POST['user'];
$password = $_POST['pass'];`
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
// rest of your code
<submit><input type="submit" name="submit" value="Log In" /></submit>
<?php
session_start();
$host = "localhost:3306";
$user = "root";
$pass = "password";
$db = "accounts";
$connect = mysqli_connect($host, $user, $pass, $db);
if (isset($_POST['user'])) {
$username = $_POST['user'];
$password = $_POST['pass'];
$sql = "SELECT * FROM users WHERE User='".$username."' AND Pass='".$password."' LIMIT 1";
$res = mysqli_query($connect, $sql) or die (mysqli_error($connect));
if (mysqli_num_rows($res) == 1) {
echo "You have successfully logged in.";
exit();
} else {
echo "Invalid login information. Please return to the previous page.";
exit();
}
}
?>