2012-09-25 52 views
-4

我们如何在QUERY中的PHP中传递密码。在SQL查询中传递密码值?

我想这样的事情,但我得到一个语法错误。

$query = "INSERT INTO users (name, username, email, password) VALUES ('".$_REQUEST['fullname']."','".$_REQUEST['userid']."','"$_REQUEST['mailid']."','".$_REQUEST['userpassword']."')";

有在上面的代码,这我无法找出一些错误。我相信,密码不能简单地像这样发送。

以下是错误:

Parse error: syntax error, unexpected '$_REQUEST' (T_VARIABLE)

+3

它与作为密码的字符串无关,这是一个简单的语法错误,应该通过任何语法感知编辑器突出显示。请停止使用古代的mysql_ *函数编写新的代码。他们不再被维护,社区已经开始[弃用流程](http://news.php.net/php.internals/53799)。相反,您应该了解准备好的语句并使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/mysqli)。如果你关心学习,[这里是一个很好的PDO相关教程](http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers)。 – DCoder

+0

我对PDO提供第二个DCoders建议。此外,我强烈建议您阅读密码的单向哈希加密,如果您还没有。 –

回答

1

错误:

'"$_REQUEST['mailid']

变化对

'" . $_REQUEST['mailid']

  1. 更好的方法使用prepared statements将从用户接收的数据插入数据库;
  2. 使用md5() PHP function作为存储密码,不要在没有实际编码的情况下存储它;
+1

而'password'必须是'\'密码'',因为它是SQL中的保留字。 – CappY

+1

我建议使用bcrypt而不是md5来存储密码。 –

+0

如果您使用MD5对密码进行哈希处理,您最好将它们保存为纯文本格式。 –