我已经完成了我的验证表单并且一切正常,但我在如何将数据从表单传输到另一个.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"]);?>">
答案 0 :(得分:0)
根据您提供的链接,他们使用服务器端验证而不是进行服务器端验证,尝试使用JavaScript或jQuery进行客户端验证。
您可以在此处查看执行JavaScript验证的最简单方法: http://www.w3schools.com/js/tryit.asp?filename=tryjs_validation_js
或者你可以通过使用任何jquery库进行表单验证来尝试这个:
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。