我正在处理我的第一个$_POST
表单。我创建了一个简单的HTML表单,并使用post方法,我的动作指向一个php文档。我想用php做一些验证,以确保密码匹配和简单的事情。我想我不理解如何使表单适合我,因为现在当我提交表单时,它所做的只是在下一页显示我的PHP代码。你怎么让PHP实际检查值而不是只显示代码?这是我的php文件:
<?php
function validatePassword($pwd) {
//create array to store test information
$messages = [];
//test for at least 8 characters
if (strlen($pwd) < 8) {
$messages []= "Your Password Must Contain At Least 8 Characters!<br />";
}
//test for max length
if (strlen($pwd) > 16) {
$messages []= "Your Password is too long!<br />";
}
//test to see if password contains number
if(!preg_match("#[0-9]+#", $pwd)) {
$messages []= "Your Password Must Contain At Least 1 Number! <br />";
}
//test to see if password has capital letter
if(!preg_match("#[A-Z]+#", $pwd)) {
$messages []= "Your Password Must Contain At Least 1 Capital Letter!<br />";
}
//test to see if password has a lowercase letter
if(!preg_match("#[a-z]+#", $pwd)) {
$messages []= "Your Password Must Contain At Least 1 Lowercase Letter!<br />";
}
//test to see if password has special character
if(!preg_match("#[^0-9A-Za-z]#", $pwd)) {
$messages []= "Your Password Must Contain At Least 1 Special Character!<br />";
}
//test to see if password contains a space
if (strpos($pwd, ' ') > 0) {
$messages []= "Your password cannot contain a space!<br />";
}
//password passed all tests
if (empty($messages)) {
return "Password is acceptable<br />";
}
//return the array
return implode("\n", $messages);
}
if ($pass1 != $pass2){
$msg = "Passwords do not match";
}
else{
$msg = "Password confirmed!";
}
validatePassword($pass1);
?>
表格代码:
<html>
<head>
<title>PHP Form</title>
</head>
<body>
<form name=newForm method=post action=formProcess.php>
UserName: <input type=text name=userName size=15 maxlength=15><br>
Password: <input type=password name=pass1 size=15><br>
Confirm Password: <input type=password name=pass2 size=15><br>
<p>
I agree to the terms and conditions.<br>
<input type=radio name=terms value=yes> Yes
<input type=radio name=terms value=no> No
<p>
Enter comments here:<br>
<textarea name=comments rows=6 cols=50 wrap=physical></textarea>
<p>
<input type=submit name=submitForm>
<input type=reset name resetForm>
</p>
</form>
</body>
</html>
顺便说一下,我知道我可以将php放在HTML文档中,但我真的想尝试做两个单独的文件,看看它是如何工作的。谢谢你的帮助!
答案 0 :(得分:1)
您似乎没有网络服务器
下载xampp并将您的php文件放在服务器的htdocs
文件夹中,然后您应该可以在http://localhost
不要忘记实际启动Apache服务器并确保它有绿灯并且没有错误。通常Skype会阻止它,因为它使用它的端口,所以要小心。
好的,首先让我们制作一些有效的HTML
<html>
<head>
<title>PHP Form</title>
</head>
<body>
<form name="newForm" method="post" action="formProcess.php">UserName:
<input type="text" name="userName" size="15" maxlength="15">
<br>Password:
<input type="password" name="pass1" size="15">
<br>Confirm Password:
<input type="password" name="pass2" size="15">
<br>
<p>I agree to the terms and conditions.
<br>
<input type="radio" name="terms" value="yes">Yes
<input type="radio" name="terms" value="no">No
<p>Enter comments here:
<br>
<textarea name="comments" rows="6" cols="50" wrap="physical"></textarea>
<p>
<input type="submit" name="submitForm">
<input type="reset" name="resetForm">
</p>
</form>
</body>
</html>
然后在您的formProcess.php
文件中,删除所有内容并尝试类似
<?php
echo $_POST["userName"];
?>
如果这不会打印您在用户名字段中提交的值,那么您的服务器就会出现问题。
答案 1 :(得分:0)
要运行PHP页面,您需要先使用Web服务器安装它。 如果您正在使用Windows,可以尝试将PHP与Apache和MySQL捆绑在一起的WAMP: http://www.wampserver.com/en/
对于MAC: https://www.mamp.info/en/
答案 2 :(得分:0)
在PHP中有两种类型验证,例如javascript验证(客户端验证),另一种是Php验证,例如(服务器端验证)。
1-在客户端计算机上完成的Java脚本验证。
2-在服务器端(PHP验证)完成服务器。