我知道我必须在某个地方犯一些小错误,但它已经过去了4个小时,我仍然在摸不着错误的地方,因此非常感谢帮助。
所以我在php中有一个表单,我尝试将其提交给自己。基本上我的表单在register.php中,它包括register.inc.php文件到
include_once'register.inc.php';
还有另一个页面,即home.php,它还包含register.inc.php,并从那里进行表单处理。虽然我有不同的标准来区分哪个页面是被调用的页面register.inc.php但是为了澄清,我将从两者中添加代码。
这是我的home.php。
<form action = "<?php echo esc_url($_SERVER['PHP_SELF']); ?>" method = "post" name = "key">
Enter the Unique (10 letter) you received to proceed : <input type = "text" name = "key" id = "key"></br>
<input type="submit" value="Submit" /> <?php echo $err; ?>
esc_url()是自定义构建的功能,工作正常。
这是我的register.php文件。
<form action="<?php echo esc_url($_SERVER['PHP_SELF']); ?>"
method="post"
name="registration_form">
Full Name: <input type='text'
name='fullname'
id='fullname' value = "<?php echo $fullname; ?>" disabled/><br>
Email: <input type="text" name="email" id="email" value = "<?php echo $email; ?>" disabled/><br>
Username: <input type='text'
name='username'
id='username' /><br>
Password: <input type="password"
name="password"
id="password"/><br>
Confirm password: <input type="password"
name="confirmpwd"
id="confirmpwd" /><br>
Project Name: <input type="text"
name="project"
id="project" value = "<?php echo $project; ?>" disabled/><br>
Phone Number: <input type="text"
name="phone"
id="phone" value = "<?php echo $phone; ?>" disabled/><br>
<input type="button"
value="Register"
onclick="return regformhash(this.form,
this.form.fullname,
this.form.project,
this.form.phone,
this.form.username,
this.form.email,
this.form.password,
this.form.confirmpwd);" />
</form>
我有一个名为forms.js的js文件,它在将客户端密码加密到服务器之前对其进行加密。所以这是我的js文件,以防万一。 (虽然它工作正常。由于它没有问题。我已经验证了它。)
function regformhash(form, uid, , fullname, email, phone, project, password, conf) {
var p = document.createElement("input");
// Add the new element to our form.
form.appendChild(p);
p.name = "p";
p.type = "hidden";
p.value = hex_sha512(password.value);
// Make sure the plaintext password doesn't get sent.
password.value = "";
conf.value = "";
// Finally submit the form.
form.submit();
return true;
}
最后,这是我的register.inc.php文件中的代码snipet。我认为这个文件有一些错误。我将它分为两部分。
以下部分是用于检查是否从home.php调用register.inc.php的条件
if(isset($_POST['key'])) {
//Something....
}
以下检查是否从register.php中调用
echo $_POST['username']. $_POST['project']. $_POST['p'];
if (isset($_POST['fullname'], $_POST['project'], $_POST['phone'],$_POST['username'],$_POST['email'], $_POST['p'])) {
// Sanitize and validate the data passed in
echo "12";
//something...
}
我从home.php开始。输入密码。检查数据库中是否存在天气。如果为true,我将用户重定向到register.php。在那里,他可以填写表格。之前填写了全名,电话,电子邮件等详细信息。因此,这些文本字段被锁定。用户只需填写用户名和密码。在他按下提交后,我验证所有凭据,如果一切都检出,我将其保存在数据库中。数据库工作在register.inc.php。
中完成但我的错误是,虽然我的密钥验证了,我被重定向到register.php,但之后我输入我的用户名&amp;密码总是说:
未定义索引:用户名
未定义的索引:项目
未定义的索引:p
register.inc.php中的数组$ _POST [](在isset(......)之前)仍未定义。 我也试过GET方法但是同样的错误。
我不知道我做错了什么,因此非常感谢帮助。
提前致谢。