PHP POST和一个函数,我做错了什么
我不确定是POST不工作还是功能不工作。 下面是一页的代码:PHP POST和一个函数,我做错了什么,php,function,post,Php,Function,Post,我不确定是POST不工作还是功能不工作。 下面是一页的代码: <?php require_once("includes/Functions.php"); ?> <?php include("includes/front.php"); ?> <div id="register"> <form action="Includes/Functions.php" method="post" name="createUser"> Username: <
<?php require_once("includes/Functions.php"); ?>
<?php include("includes/front.php"); ?>
<div id="register">
<form action="Includes/Functions.php" method="post" name="createUser">
Username: <input type="text" name="user" maxlength="16"/><br />
Password: <input type="password" name="pass" maxlength="30"/><br />
Repeat password: <input type="password"/><br />
E-mail: <input type="email" name="mail"/><br />
<input type="submit" value="Next" />
</form>
<a href="/login.php">Log in</a>
</div>
</body>
</html>
<?php include("includes/footer.php"); ?>
用户名:
密码:
重复密码:
电子邮件:
下面是functions.php的开头:
<?php require_once("connect.php"); ?>
<?php
if(isset($_POST["createUser"]) && isset($_POST["user"], $_POST["pass"], $_POST["mail"])){
call_user_func_array("createUser", array($_POST("user"), $_POST("pass"), $_POST("mail")));
}
这两行是否指向同一个文件?我想是这样,但情况并不正确。我从这里开始。我会保持一个标准的命名约定,因为有些文件是大写的,有些不是
我还建议在散列之前对密码加盐
对于您的SQL,我建议使用,因为您的代码现在受到SQL注入攻击,可能会泄露未加密的密码。
call_user_func_array("createUser", array($_POST("user"), $_POST("pass"), $_POST("mail")));
这两行是否指向同一个文件?我想是这样,但情况并不正确。我从这里开始。我会保持一个标准的命名约定,因为有些文件是大写的,有些不是
我还建议在散列之前对密码加盐
对于您的SQL,我建议使用,因为您的代码现在受到SQL注入攻击,可能会泄露未加密的密码
call_user_func_array("createUser", array($_POST("user"), $_POST("pass"), $_POST("mail")));
应该是
call_user_func_array("createUser", array($_POST["user"], $_POST["pass"], $_POST["mail"]));
或
你不必:
$username = $_POST["user"];
$password = $_POST["pass"];
$email = $_POST["mail"];
在createUser
函数中
应该是
call_user_func_array("createUser", array($_POST["user"], $_POST["pass"], $_POST["mail"]));
或
你不必:
$username = $_POST["user"];
$password = $_POST["pass"];
$email = $_POST["mail"];
在createUser
函数中。在functions.php
中,您正在检查是否(isset($\u POST[“createUser”])…
表单name
属性,因此此if语句将始终失败
您需要使用submit按钮的name/value属性或隐藏的输入字段来满足functions.php中的此条件您正在检查if(isset($\u POST[“createUser”])…
表单name
属性,因此此if语句将始终失败
您需要使用submit按钮的name/value属性或隐藏的输入字段来满足此条件请首先启用错误报告
。$connection
在哪里?使用调用用户函数数组()
此处?请学习如何使用参数化查询,而不是像代码那样让自己对SQL注入敞开大门。给出了示例。仅供参考。如果您在一个组中有多个PHP行,如上面HTML块的前两行,则不必在每一行上打开和关闭PHP。如果您在第一行上打开并关闭PHP第二步你就没事了。将ini\u集('display\u errors',true)
和error\u reporting(E\u ALL)
添加到代码顶部,然后再试一次。请先启用error reporting
。$connection
在哪里?使用调用用户函数数组()
此处?请学习如何使用参数化查询,而不是像代码那样让自己对SQL注入敞开大门。给出了示例。仅供参考。如果您在一个组中有多个PHP行,如上面HTML块的前两行,则不必在每一行上打开和关闭PHP。如果您在第一行上打开并关闭PHP第二步你就没事了。添加ini\u集('display\u errors',true)
和error\u报告(E\u ALL)
在代码顶部,然后再试一次。我试图保持正确命名,但这一次没有。感谢salting reccomendation。我试图保持正确命名,但这一次没有。感谢salting reccomendation。name属性在发布期间提交,因为它在我使用的其他文档中有效。name属性在发布期间提交因为它适用于我使用的其他文档。您不能使用$\u POST(“用户”)…$\u POST不是一个函数,它是一个数组。我还帮助您清理代码。@user1642320我认为codea试图指出您在使用方括号时使用了括号,尽管有关清理代码的评论纯粹是主观的。@MrSlayer感谢您的澄清。您不能使用$\u POST(“用户”)…$\u POST不是一个函数,它是一个数组。我还帮助您清理代码。@user1642320我想codea是想指出您在使用方括号时使用了括号,尽管关于清理代码的评论纯粹是主观的。@MrSlayer感谢您的澄清。