PHP、mySQL和xampp登录表单问题

PHP、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都在同一个页面上,没

我正在为我的员工创建一个登录表单。我认为我在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位于

再次:

PHP


您在中使用了错误的变量

$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();
}
}
?>