Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.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注册表单-SQL_Php_Mysql_Sql_Registration - Fatal编程技术网

PHP注册表单-SQL

PHP注册表单-SQL,php,mysql,sql,registration,Php,Mysql,Sql,Registration,我想从PHP制作一个注册表,将他们的用户名和密码注册到我的SQL数据库中。以下是我所拥有的: config.php: <?php $host['naam'] = 'localhost'; // my host $host['gebruikersnaam'] = 'root'; // my database username $host['wachtwoord'] = ''; // my database password $host['d

我想从PHP制作一个注册表,将他们的用户名和密码注册到我的SQL数据库中。以下是我所拥有的:

config.php:

   <?php
$host['naam'] = 'localhost';                // my host
$host['gebruikersnaam'] = 'root';       // my database username
$host['wachtwoord'] = '';   // my database password
$host['databasenaam'] = 'project';       // my database name

$db = mysql_connect($host['naam'], $host['gebruikersnaam'], $host['wachtwoord']) OR die ('Cant connect to the database');
mysql_select_db($host['databasenaam'], $db);
?> 

index.php:

    <head>
    <title>Deltalus Account Registration</title>
    <style>
    *{ FONT-SIZE: 8pt; FONT-FAMILY: verdana; } b { FONT-WEIGHT: bold; } .listtitle { BACKGROUND: #425984; COLOR: #EEEEEE; white-space: nowrap; } td.list { BACKGROUND: #EEEEEE; white-space: nowrap; } </style>
    </head>
    <center><br><br><br><br>
    <h1>Deltalus Database</h1>
    <table cellspacing=1 cellpadding=5>
    <tr>
    <td class=listtitle colspan=2>Register at my server</td></tr>
    <form action="register_do.php" method="POST">
    <tr><td class=list align=right>Username:</td><td class=list><input type=text name=name maxlength="30"></td></tr>
    <tr><td class=list align=right>Password:</td><td class=list><input type=password name=pass maxlength="30"></td></tr>
    </td></tr>
    <tr><td class=listtitle align=right colspan=2><input type=submit name=submit value='Register'></td></tr>
    </form>
    </table>
    <br>

    </center></body></html

>

Deltalus帐户注册
*{FONT-SIZE:8pt;FONT-FAMILY:verdana;}b{FONT-WEIGHT:bold;}.listtitle{BACKGROUND:#425984;COLOR:#EEEEEE;white space:nowrap;}td.list{BACKGROUND:#eeee;white space:nowrap;}




三角洲数据库 在我的服务器上注册 用户名: 密码:
register_do.php:

   <?php
print '<title>Deltalus Database Server</title>';
$name = $_POST['name'];
$pass = $_POST['pass'];
include('config.php');
$sel = 'SELECT * FROM user WHERE username="'.$_POST['name'].'"';
if($name == ""){
echo 'No username filled in';
exit();
}elseif(mysql_num_rows(mysql_query($sel)) >= 1 ){
echo 'This username does already exists!';
exit();
}elseif($pass == ""){
echo 'No password filled in';
exit();
}else{
$d = 'INSERT INTO users (username, password) VALUES ("'.$name.'", "'.$pass.'")';
mysql_query($d) OR die (mysql_error());
echo 'Your account has been created, you can now login.';
}
?> 

听起来您的HTTP服务器配置错误,并且/或者不接受POST请求。您是否将此页面联机,以便我查看并可能详细说明?

听起来您的HTTP服务器配置错误,并且/或者不接受POST请求。你把这一页上网了吗?这样我就可以看一看并可能详细说明一下了吗?

嗯。。。太多的问题我不知道从哪里开始。 首先,您的代码是天堂。
如果这段代码将要面世,那么您需要彻底重新考虑这一点

考虑一下,如果有人指定了用户名:

blah,“blah”);删除表用户;

您没有发布您的登录代码,但鉴于您当前的编码风格,请考虑是否有人在登录时指定了密码:

asdf”或“1”=“1

这将有效地在没有密码的情况下登录任何用户

此外,密码永远不应该以纯文本形式存储。它们至少应该加密存储。在几乎所有情况下,它们都应该被散列。也就是说,它们应该使用单向加密(如SHA256)进行存储

然后,为了检查用户是否提供了有效的密码,您需要比较两个散列版本,但永远不知道原始版本是什么

考虑使用该库而不是mysql。php中的mysql很旧,比mysqli慢很多。mysqli还提供了一种称为mysqli的功能,如果使用正确,可以消除SQL注入的风险

除了这些问题之外,您的register\u do.php中似乎没有包含config.php。没有它,您的SQL语句将无法工作


您使用的是什么版本的php和mysql?

嗯……太多问题了,我不知道从哪里开始。 首先,您的代码是天堂。
如果这段代码将要面世,那么您需要彻底重新考虑这一点

考虑一下,如果有人指定了用户名:

诸如此类;删除表用户

您没有发布您的登录代码,但鉴于您当前的编码风格,请考虑是否有人在登录时指定了密码:

asdf”或“1”=“1

这将有效地在没有密码的情况下登录任何用户

此外,密码不应以纯文本形式存储。它们至少应该加密存储。在几乎所有情况下,它们都应该被散列。也就是说,它们应该使用单向加密(如SHA256)进行存储

然后,为了检查用户是否提供了有效的密码,您需要比较两个散列版本,但永远不知道原始版本是什么

考虑使用库而不是mysql。php中的mysql很旧,比mysqli慢很多。Mysqli还提供了一种称为的方法,如果使用正确,可以消除SQL注入的风险

除了这些问题之外,您的注册表中似乎没有包含config.php\u do.php。没有它,您的SQL语句将无法工作


您使用的是什么版本的php和mysql?

问题最重要的部分是“POST不可用或其他内容”。如果您只发布了准确的错误消息,而没有发布任何其他内容,那么比发布整个源代码更容易帮助您。我是否看到SQL注入漏洞?“post不可用或其他内容”是问题最重要的部分。如果您只发布了准确的错误消息,而没有发布其他信息,这比发布整个源代码更容易帮助您。我看到SQL注入漏洞了吗?这不是答案,但无论如何+1只是针对这段代码中所有问题的迫切需要的提示。这不是答案,但+1只是针对这段代码中所有问题的迫切需要的提示。