首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP & MYSQL:注册/创建一个帐户

问PHP & MYSQL:注册/创建一个帐户
EN

Stack Overflow用户
提问于 2016-05-07 00:25:52
回答 1查看 569关注 0票数 1

我有注册代码(也使用数据库)。当我在表单中输入信息并提交时,什么都不会发生。任何帮助都将不胜感激!谢谢。

-after,我修复了这个问题,希望我能登录!

register.php

代码语言:javascript
复制
<!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>

数据库信息:

代码语言:javascript
复制
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;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-07 00:38:33

阅读以下两方面的手册:

这就是你的代码失败的原因。两者都需要一个db连接,并且作为第一个参数,它们都在其中。

此外,mysqli_error()还要求将db连接作为参数传递。

同时根据查询检查错误;您没有这样做。

关于你的联系。

您实际上可以完全摆脱mysqli_select_db(),只需使用mysqli_connect()中的所有4个参数即可。

手册中的示例:

代码语言:javascript
复制
$link = mysqli_connect("127.0.0.1", "my_user", "my_password", "my_db");

密码

我还注意到,您可能正在以纯文本存储密码。这是不建议的。

使用下列之一:

关于列长的重要侧边:

如果您决定使用password_hash()或兼容性包(如果PHP < 5.5),那么重要的是要注意,如果您当前密码列的长度小于60,则需要将其更改为此(或更高)。手册显示长度为255。

您将需要更改列的长度,并重新使用新的散列以使其生效。否则,MySQL将悄悄地失败。

其他感兴趣的联系:

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37083225

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档