基本PHP注册/登录系统

基本PHP注册/登录系统,php,mysql,database,login,Php,Mysql,Database,Login,我正在尝试用PHP创建一个非常基本的注册和登录系统。我对这个很陌生,所以我在YouTube上看了一段视频。我猜我的问题是,我使用的某些函数在PHP7中可能被低估了。我已经包括了下面的代码。我应该纠正什么?我知道我还没有太多的错误处理之类的东西。我只想了解基本知识并创建一个页面,用户可以在其中注册、登录,然后在页面上显示其用户id或名称。我让那个部分工作,但当我登录时,数据库中没有显示任何内容。另外,您如何获得主机名?我正在使用网络托管服务,而不是在本地工作。谢谢你的帮助 dbh.php: <

我正在尝试用PHP创建一个非常基本的注册和登录系统。我对这个很陌生,所以我在YouTube上看了一段视频。我猜我的问题是,我使用的某些函数在PHP7中可能被低估了。我已经包括了下面的代码。我应该纠正什么?我知道我还没有太多的错误处理之类的东西。我只想了解基本知识并创建一个页面,用户可以在其中注册、登录,然后在页面上显示其用户id或名称。我让那个部分工作,但当我登录时,数据库中没有显示任何内容。另外,您如何获得主机名?我正在使用网络托管服务,而不是在本地工作。谢谢你的帮助

dbh.php:

<?php

$conn = mysqli_connect("localhost", "usernamehere", "passwordhere",
"mylogindatabase");
if(!$conn)
{
die("Connection failed: ".mysqli_connect_error());
}

?>

welcome.php:

<?php
session_start();
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8>
<title>Title</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>

<form action="login.php" method="POST">
<input type="text" name="uid" placeholder="Username">
<br />
<input type="password" name="pwd" placeholder="Password">
<br />
<button type="submit">LOGIN</button>
</form>

<?php
if(isset($_SESSION['id']))
{echo $_SESSION['id'];}
else{
echo "You are not logged in!";
}
?>
<br />
<br />
<br />
<form action="signup.php" method="POST">
<input type="text" name="first" placeholder="First Name">
<br />
<input type="text" name="last" placeholder="Last Name">
<br />
<input type="text" name="uid" placeholder="Username">
<br />
<input type="password" name="pwd" placeholder="Password">
<br />
<button type="submit">SIGN UP</button>
</form>

<br />
<br />
<br />

<form action="logout.php">
<button>Log Out</button>
</form>

</body>
</html>


插入查询应如下所示:

$sql = "INSERT INTO user (first, last, uid, pwd) 
VALUES ('$first', '$last', '$uid', '$pwd')";
请阅读以下主机:

编辑:虽然这将正常工作并正确执行,但请注意 您的应用程序将容易受到SQL注入攻击,而没有 正确的对策,所以在使用MySQLi时尽量使用prepared 语句而不是串联查询,因为它们易受攻击 反对SQL注入。这可能看起来复杂而乏味 首先是初学者,但保留您的应用程序是非常必要的 保护您可以使用更好的准备好的语句,也可以使用 只需转义变量(不太安全)

请在此处阅读更多信息:


插入查询应如下所示:

$sql = "INSERT INTO user (first, last, uid, pwd) 
VALUES ('$first', '$last', '$uid', '$pwd')";
请阅读以下主机:

编辑:虽然这将正常工作并正确执行,但请注意 您的应用程序将容易受到SQL注入攻击,而没有 正确的对策,所以在使用MySQLi时尽量使用prepared 语句而不是串联查询,因为它们易受攻击 反对SQL注入。这可能看起来复杂而乏味 首先是初学者,但保留您的应用程序是非常必要的 保护您可以使用更好的准备好的语句,也可以使用 只需转义变量(不太安全)

请在此处阅读更多信息:


您的代码中有打字错误。您在查询中忘记了引号

所以不是这个

$sql = "INSERT INTO user (first, last, uid, pwd) 
VALUES ('$first, $last, $uid, $pwd')";
用这个

$sql = "INSERT INTO user (first, last, uid, pwd) 
VALUES ('$first', '$last', '$uid', '$pwd')";

此外,如果您想了解更多信息,那么您可以看到这一点,您的代码中存在打字错误。您在查询中忘记了引号

所以不是这个

$sql = "INSERT INTO user (first, last, uid, pwd) 
VALUES ('$first, $last, $uid, $pwd')";
用这个

$sql = "INSERT INTO user (first, last, uid, pwd) 
VALUES ('$first', '$last', '$uid', '$pwd')";

另外,如果您想了解更多信息,那么您可以看到这一点,您的sql查询中有一个小错误

$sql = "INSERT INTO user (first, last, uid, pwd) 
VALUES ('$first', '$last', '$uid', '$pwd')";
了解有关sql插入查询的更多信息,请访问
您的sql查询中有一个小错误

$sql = "INSERT INTO user (first, last, uid, pwd) 
VALUES ('$first', '$last', '$uid', '$pwd')";
了解有关sql插入查询的更多信息,请访问 也许你忘记了:

$sql = "INSERT INTO user (first, last, uid, pwd) 
VALUES ('$first, $last, $uid, $pwd')";
您的查询应该是:

$sql = "INSERT INTO user (first, last, uid, pwd) 
VALUES ('$first', '$last', '$uid', '$pwd')";
如果需要创建登录多用户的示例,请阅读更多:

也许你忘记了:

$sql = "INSERT INTO user (first, last, uid, pwd) 
VALUES ('$first, $last, $uid, $pwd')";
您的查询应该是:

$sql = "INSERT INTO user (first, last, uid, pwd) 
VALUES ('$first', '$last', '$uid', '$pwd')";
如果需要创建登录多用户的示例,请阅读更多: