Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP&MYSQL:注册/创建帐户_Php_Mysql - Fatal编程技术网

PHP&MYSQL:注册/创建帐户

PHP&MYSQL:注册/创建帐户,php,mysql,Php,Mysql,我也有使用数据库注册的代码。当我在表单中输入信息并提交时,什么都没有发生。任何帮助都将不胜感激!谢谢 -在我解决这个问题后,希望我能登录 register.php <!doctype html> <html> <head> <title>Register</title> </head> <body> <p><a href="register.php">Register</a>

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

-在我解决这个问题后,希望我能登录

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>

请阅读以下两方面的手册:

mysqli_select_db=> mysqli_查询=> 这就是你的代码失败的原因。两者都需要一个db连接,作为第一个参数,它们都在那里

另外,mysqli_错误还要求将db connection作为参数传递

mysqli_错误=> 同时检查查询中的错误;你没那么做

请注意您的连接

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

手册中的示例:

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

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

使用以下选项之一:

PHP5.5的函数。 PHP<5.5时的兼容性包 关于列长度的重要旁注:

如果您决定使用password_hash或兼容包(如果PHP<5.5),请务必注意,如果当前密码列的长度小于60,则需要将其更改为该长度或更高的长度。手册建议长度为255

您需要更改列的长度,并使用新的哈希重新开始,以使其生效。否则,MySQL将以静默方式失败

其他相关链接:


请阅读以下两方面的手册:

mysqli_select_db=> mysqli_查询=> 这就是你的代码失败的原因。两者都需要一个db连接,作为第一个参数,它们都在那里

另外,mysqli_错误还要求将db connection作为参数传递

mysqli_错误=> 同时检查查询中的错误;你没那么做

请注意您的连接

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

手册中的示例:

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

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

使用以下选项之一:

PHP5.5的函数。 PHP<5.5时的兼容性包 关于列长度的重要旁注:

如果您决定使用password_hash或兼容包(如果PHP<5.5),请务必注意,如果当前密码列的长度小于60,则需要将其更改为该长度或更高的长度。手册建议长度为255

您需要更改列的长度,并使用新的哈希重新开始,以使其生效。否则,MySQL将以静默方式失败

其他相关链接:


你很容易被黑客攻击,你又害怕手册了,你做错事了你忘了在你的action属性中输入一个值:action=我假设你想把它发送到同一个页面,所以我建议使用action=并且我强烈建议阅读Fred-ii-发布的手册,考虑到你的代码极易被黑客攻击。@Webeng很好地指出,^他们打算将其作为自己使用,但使用htmlspecialchars$_服务器[PHP_self]更好。是的,XSS攻击非常常见,和一个简单的http://www.example.com/alert在url中写入“hello”以进入该网站已经会导致漏洞。您的网站很容易被黑客攻击,再次害怕手册,您这样做是错误的您忘记在操作属性中输入值:action=我假设您希望将其发送到同一页面,因此,我建议使用action=并且我强烈建议阅读Fred-ii发布的手册,因为您的代码极易被黑客攻击。@Webeng很好地指出,^他们打算将其用作self,但使用htmlspecialchars$_服务器[PHP_self]更好。是的,XSS攻击非常常见,和一个简单的http://www.example.com/alert在url中写入“hello”以进入该网站已经会导致违规。这是一个相当多的建议密码系统列表,但密码\u散列应为1,其余的仅基于需要知道的基础。这是唯一一个在不需要大量专业知识的情况下工作可靠的工具。你说得对@tadman,我已经做了编辑。谢谢你的反馈,谢谢这是一个推荐密码系统的列表,但是密码散列应该是1,其余的都是在需要知道的基础上。这是唯一一个在不需要大量专业知识的情况下工作可靠的工具。你说得对@tadman,我已经做了编辑。谢谢你的反馈,干杯