PHP表单提交不起作用。 $ _POST []变量未定义

时间:2014-10-17 00:56:00

标签: javascript php mysql forms

我知道我必须在某个地方犯一些小错误,但它已经过去了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方法但是同样的错误。

我不知道我做错了什么,因此非常感谢帮助。

提前致谢。

0 个答案:

没有答案