验证页面后如何将数据传递到其他页面?

时间:2015-08-12 11:32:26

标签: php forms validation

我已经完成了我的验证表单并且一切正常,但我在如何将数据从表单传输到另一个.php页面(这是进程页面)时遇到了问题。

我目前正在从此网站引用表单验证代码 http://www.w3schools.com/php/showphp.asp?filename=demo_form_validation_required

myForm会

<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" method="post" id="form">

       <fieldset>
                <td>Name</td>
                <label>
                    <input type="text" name = "nama">
                    </input>
                    <span class="error">* <?php echo $nameErr;?></span>
                  </label>
                  <br>
                   <p>Gender</p>
                   <p>
                    Male</p><input type="radio" name= "gender" value="Male" >
                    <br>

                    <input name= "gender" type="radio" value="Female">
                Female<br></input>
                    <span class="error">* <?php echo $genderErr;?></span>

                  <br>
                  <td>Contact No</td>
                  <label>
                    <input type="text" name= "contact">
                    </input>
                    <span class="error">* <?php echo $contactErr;?></span>
                  </label>

                  <br>
                  <td>Address</td>
                  <label>
                    <textarea name= "address"></textarea>
                    <span class="error">* <?php echo $addressErr;?></span>
                  </label>
                  <br>
                <td>Email</td>
                  <label>
                    <input type="text" name= "email"></input>
                    <span class="error">* <?php echo $emailErr;?></span>
                  </label>
                  <br>
                  <td>Account Name</td>
                  <label>
                    <input type="text" name= "account"></input>
                    <span class="error">* <?php echo $accountErr;?></span>
                  </label>
                  <br>
                  <td>Password</td>
                  <label>
                    <input type="password" name= "password"></input>
                    <span class="error">* <?php echo $passwordErr;?></span>
                  </label>
                  <br>
                  <input type="button" value="Cancel"onClick="history.go(-1);return true;">
                  <input type="submit" value="Submit">


                </fieldset>
              </form>

process.php

<?php


$link = mysqli_connect('localhost', 'root', '', 'sport');

$nama=$_POST["nama"];
$gender=$_POST["gender"];
$contact=$_POST["contact"];
$address=$_POST["address"];
$email=$_POST["email"];
$account=$_POST["account"];
$password=$_POST["password"];

$sql = "INSERT INTO sport(name, gender, contact, address, email, account, password, eventtype) VALUES ('$nama' , '$gender', '$contact' , '$address', '$email', '$account', '$password', '')"; 

$query=mysqli_query($link, $sql);

if (!$query)
{
    echo "Fail to register";
}
else
{
header('Location:login_success.html');  
}

?>

如何在将表单验证到process.php并执行sql查询后传递数据,以便将数据存储到数据库中。 据说我们只是放入目标页面,但代码要求我使用<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">

2 个答案:

答案 0 :(得分:0)

根据您提供的链接,他们使用服务器端验证而不是进行服务器端验证,尝试使用JavaScript或jQuery进行客户端验证。

您可以在此处查看执行JavaScript验证的最简单方法: http://www.w3schools.com/js/tryit.asp?filename=tryjs_validation_js

或者你可以通过使用任何jquery库进行表单验证来尝试这个:

http://formvalidator.net/

for demo:http://formvalidator.net/#reg-form

答案 1 :(得分:0)

您的表单操作指向本身,因此我假设验证代码位于您发布的代码段之上(如您提供的链接所示)。

当您向PHP发送 POST HTTP请求时,它会将表单数据存储在超级全局$_POST$_REQUEST的关联数组中。在&#34;表单操作&#34;上引用的脚本是&#34;所有者&#34; $_POST内容的含义,意味着其他非相关脚本无法访问它。 要解决此问题,您应该将{.1}}或require process.php脚本放入您的表单中,这样它就可以操作include内容以及(请注意您的代码流量!)

请注意,这只是为了回答您的问题,但不是解决问题的最佳方式。如您在此tutorial中所见,使用AJAX等异步方法可以更好地在客户端使用表单验证过程。另外,请查看PHP表单的良好实践here