簡體   English   中英

PHP和MYSQL:注冊/創建帳戶

[英]PHP & MYSQL: Register/Create an Account

我有用於注冊的代碼(也使用數據庫)。 當我在表單中輸入信息並提交時,什么也沒有發生。 任何幫助將非常感激! 謝謝。

-修復此問題后,我可以登錄!

register.php

<!doctype html>
<html>
<head>
<title>Register</title>
</head>
<body>

<p><a href="register.php">Register</a> | <a href="login.php">Login</a></p>
<h3>Registration Form</h3>
<form action="" method="POST">
Username: <input type="text" name="user"><br />
Password: <input type="password" name="pass"><br /> 
<input type="submit" value="Register" name="submit" />
</form>
<?php
if(isset($_POST["submit"])){

if(!empty($_POST['user']) && !empty($_POST['pass'])) {
    $user=$_POST['user'];
    $pass=$_POST['pass'];

    $con=mysqli_connect('localhost','root','') or die(mysqli_error());
    mysqli_select_db('database') or die("cannot select DB");

    $query=mysqli_query("SELECT * FROM login WHERE username='".$user."'");
    $numrows=mysqli_num_rows($query);
    if($numrows==0)
    {
    $sql="INSERT INTO login(username,password) VALUES('$user','$pass')";

    $result=mysqli_query($sql);


    if($result){
    echo "Account Successfully Created";
    } else {
    echo "Failure!";
    }

    } else {
    echo "That username already exists! Please try again with another.";
    }

} else {
echo "All fields are required!";
}
}
?>

</body>
</html>

數據庫信息:

CREATE TABLE IF NOT EXISTS `login` (
  `username` varchar(200) NOT NULL,
  `password` varchar(200) NOT NULL,
  PRIMARY KEY (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8_general_ci;

閱讀以下兩個方面的手冊:

這就是您的代碼失敗的原因。 兩者都需要數據庫連接,並且作為第一個參數,它們都在其中。

另外, mysqli_error()還要求將數據庫連接作為參數傳遞。

同時還根據您的查詢檢查錯誤; 你沒有那樣做。

關於您的連接的旁注。

實際上,您可以完全擺脫mysqli_select_db() ,而只需在mysqli_connect()使用所有4個參數:

手冊中的示例:

$link = mysqli_connect("127.0.0.1", "my_user", "my_password", "my_db");

密碼

我還注意到您可能以純文本形式存儲密碼。 不建議這樣做。

使用以下之一:

有關列長的重要旁注:

如果並且當您決定使用password_hash()或兼容性包(如果PHP <5.5) https://github.com/ircmaxell/password_compat/時 ,請務必注意,如果當前密碼列的長度小於60,它將需要更改為該值(或更高)。 手冊建議長度為255。

您將需要更改列的長度並以新的哈希值重新開始,以使其生效。 否則,MySQL將靜默失敗。

其他感興趣的鏈接:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM