登录&注册系统

时间:2016-07-14 14:21:18

标签: php mysql phpmyadmin

我的Login& amp;注册系统,但我不知道问题出在哪里。当我按下#34;登录"或者"注册",下一页是白色的。我只看到了我的信息:"再试一次!"。我制作了3个PHP文件:

1)index.php



<!DOCTYPE html>
<html>
<head>
</head>
<body>
       <form action="logreg.php" metodh="post" accept-charset="utf-8">
	   <label>Username:</label><input type="text" name="username" placeholder="Username">
	   <br>
	   <label>Password:</label><input type="password" name="password" placeholder="Password">
	   <br>
	   <input type="submit" name="login" value="Login">
	   <input type="submit" name="register" value="Register">
       </form>
	   
</body>
</html>
&#13;
&#13;
&#13;

我认为问题出现在下一个文件中:

2)logreg.php

&#13;
&#13;
<?php

$servername = "localhost";
$username = "alex";
$password = "calamar28";
$database = "register/login";

$conn = mysqli_connect($servername, $username, $password, $database );

if(!$conn){
	die("Connection failde:".mysqli_connect_error());
}

if(isset($_POST["login"])) {
	$user = $_POST['username'];
	$pass = $_POST['password'];
	 
	$sql = "SELECT * FROM users WHERE username='$user' AND password='$pass';";
	 
	$result = mysqli_query($conn, $sql);
	$count = mysqli_num_rows($result);
	
	if ($count == 1)
	{
		header("Location: personal.php");
	}
	else
	{
		echo "Username or password is incorrect!";
	}
	
}
else if(isset($_POST["register"])) {
	$user = $_POST['username'];
	$pass = $_POST['password'];
	 
	$sql = "INSERT INTO users (id, username, password) VALUES ('', '$user', '$pass')";
	 
	$result = mysqli_query($conn, $sql);
}
else
{
	echo "Try again!";
}	
?>
&#13;
&#13;
&#13;

3)personal.php

&#13;
&#13;
<?php

if(isset($_POST["login"])){
	echo "Welcome to you personal area !";
	echo '<a href = "proiect4.php">Your proiect</a>';
}
else
{
	echo "You are not logged in!";
}
?>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:1)

您还需要设置一些会话变量以进入personal.php页面...这将有助于确定用户是否已成功登录,因为原始发布的数据不会通过当您重定向到此页面时...您希望您的logreg.php如下:

&#13;
&#13;
<?php
if (!isset($_SESSION)) {session_start();}    

$servername = "localhost";
$username = "alex";
$password = "calamar28";
$database = "register/login";

$conn = mysqli_connect($servername, $username, $password, $database );

if(!$conn){
	die("Connection failde:".mysqli_connect_error());
}

if(isset($_POST["login"])) {
	$user = $_POST['username'];
	$pass = $_POST['password'];
	 
	$sql = "SELECT * FROM users WHERE username='$user' AND password='$pass';";
	 
	$result = mysqli_query($conn, $sql);
	$count = mysqli_num_rows($result);
	
	if ($count == 1)
	{
                $_SESSION['loggedIn'] = 1;
		header("Location: personal.php");
	}
	else
	{
		echo "Username or password is incorrect!";
	}
	
}
else if(isset($_POST["register"])) {
	$user = $_POST['username'];
	$pass = $_POST['password'];
	 
	$sql = "INSERT INTO users (id, username, password) VALUES ('', '$user', '$pass')";
	 
	$result = mysqli_query($conn, $sql);
}
else
{
	echo "Try again!";
}	
?>
&#13;
&#13;
&#13;

然后您的personal.php页面将更改为以下内容:

&#13;
&#13;
<?php
if (!isset($_SESSION)) {session_start();} 

if(isset($_SESSION["loggedIn"]) && ($_SESSION["loggedIn"] == 1) ){
	echo "Welcome to you personal area !";
	echo '<a href = "proiect4.php">Your proiect</a>';
}
else
{
	echo "You are not logged in!";
}
?>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

HTML表单的默认方法是GET。在您的HTML代码中,您编写了 metodh ,而不是方法。这将被忽略,然后您的方法将自动默认为GET。除此之外,您的PHP代码很好。 将您的HTML代码更改为如下所示,一切都应该正常工作:

<!DOCTYPE html>
    <html>
        <head>
        </head>
        <body>
           <form action="logreg.php" method="post" accept-charset="utf-8">
               <label>Username:</label><input type="text" name="username" placeholder="Username">
               <br>
               <label>Password:</label><input type="password" name="password" placeholder="Password">
               <br>
               <input type="submit" name="login" value="Login">
               <input type="submit" name="register" value="Register">
       </form>

    </body>
    </html>