<分区>
标签 javascript php html css
<分区>
这是我第一次真正尝试使用 StackExchange,我希望我的问题尽可能相关。基本上,我是在跟随 O'Reilly 的书学习 PHP、MySQL、Javascript 等,并且我有点卡在第 16 章的身份验证协议(protocol)上。基本上,作者希望我们只将 CSS 和 JS 放在 echo <<<_END 语句中,我试图将它们放在它们的外部文件中。
我的问题是,当我加载 PHP 文件时,完全没有任何反应。连个头衔都没有。我担心这可能与我正在运行 WebMatrix 和 IIS Express 服务器进行开发有关,但是当我去测试它们时,我已经能够运行其他更小的 echo <<<_END 语句.
下面是代码,如果有人提供,我将不胜感激。
<?php
$firstname = $lastname = $username = $password = $age = $email = "";
if (isset($_POST['firstname']))
{
$firstname = fix_string($_POST['firstname']);
}
if (isset($_POST['lastname']))
{
$lastname = fix_string($_POST['lastname']);
}
if (isset($_POST['username']))
{
$username = fix_string($_POST['username']);
}
if (isset($_POST['password']))
{
$password = fix_string($_POST['password']);
}
if (isset($_POST['age']))
{
$age = fix_string($_POST['age']);
}
if (isset($_POST['email']))
{
$email = fix_string($_POST['email']);
}
$fail = valide_firstname($firstname);
$fail .= valide_lastname($lastname);
$fail .= valide_username($username);
$fail .= valide_password($password);
$fail .= valide_age($age);
$fail .= valide_email($email);
echo <<<_END
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>An Example Form</title>
<link rel="stylesheet" type="text/css" href="StyleSheet.css>
</head>
_END;
if ($fail = "")
{
echo "<body>Form data succesffully validated: $firstname, $lastname, $username, $password, $age, $email.</body></html>";
//database entry field
exit;
}
echo <<<_END
<body>
<table class="signup" border="0" cellpadding="2"
cellspacing="5" bgcolor="#eeeeee">
<th colspan="2" align="center">Signup Form</th>
<tr><td colspan="2">Sorry, the following errors were found<br />
in your form: <p><font color=red size=1><i>$fail</i></font></p>
</td></tr>
<form method="post" action = "adduser.php"
onSubmit = "return validate(this)">
<tr><td>First name</td><td><input type ="text" maxlength = "32"
name = "firstname" value = "$firstname" /></td></tr>
<tr><td>Last name</td><td><input type ="text" maxlength = "32"
name = "lastname" value = "$lastname" /></td></tr>
<tr><td>Username</td><td><input type ="text" maxlength = "16"
name = "username" value = "$username" /></td></tr>
<tr><td>Password</td><td><input type ="text" maxlength = "12"
name = "password" value = "$password" /></td></tr>
<tr><td>Age</td><td><input type ="text" maxlength = "3"
name = "age" value = "$age" /></td></tr>
<tr><td>Email</td><td><input type ="text" maxlength = "64"
name = "email" value = "$email" /></td></tr>
<tr><td colspan = "2" align = "center"><input type = "submit" value = "Signup" /></td></tr></form></table>
<script type="text/javascript" src="validate.js"></script>
</body>
</html>
_END;
function validate_fistname($field){
if ($field == "") return "No First Name was entered <br/>";
}
function validate_lastname($field){
if ($field == "") return "No Last Name was entered <br/>";
}
function validate_username($field){
if ($field == "") return "No Username was enterted <br/>";
else if (strlen($field) < 5) return "Usernames must be at least 5 characters long <br/>";
else if (preg_match("/[\W]/", $field)) return "Only letters, numbers, - and _ is usernames<br/>";
return "";
}
function validate_password($field){
if ($field =="") return "No Password was entered <br/>";
else if (strlen($field) < 6) return "Passwords must be at least 6 characters in length <br/>";
else if (!preg_match("/[a-z]/", $field) ||
!preg_match("/[A-Z]/", $field) ||
!preg_match("/[\d]/", $field))
return "Passwords require one upper case, one lower case, and one number<br/>";
return "";
}
function validate_age($field) {
if ($field == "") return "No Age was entered<br />";
else if ($field < 18 || $field > 110)
return "Age must be between 18 and 110<br />";
return "";
}
function validate_email($field) {
if ($field == "") return "No Email was entered<br />";
else if (!((strpos($field, ".") > 0) &&
(strpos($field, "@") > 0)) ||
preg_match("/[^a-zA-Z0-9.@_-]/", $field))
return "The Email address is invalid<br />";
return "";
}
function fix_string($string) {
if (get_magic_quotes_gpc()) $string = stripcslashes ($string);
return htmlentities ($string);
}
?>
最佳答案
您有语法错误。
按照描述打开错误报告 here .
错误 1
你拼错了validate。这——
$fail = valide_firstname($firstname);
$fail .= valide_lastname($lastname);
$fail .= valide_username($username);
$fail .= valide_password($password);
$fail .= valide_age($age);
$fail .= valide_email($email);
必须是-
$fail = validate_firstname($firstname);
$fail .= validate_lastname($lastname);
$fail .= validate_username($username);
$fail .= validate_password($password);
$fail .= validate_age($age);
$fail .= validate_email($email);
错误 2
您的 validate_firstname()
函数定义缺少“r”-
function validate_fistname($field){
^ Needs an 'r' here.
错误 3
条件 if ($fail = "")
应该是 if ($fail == "")
。
您目前正在使用 =
进行赋值,而不是进行比较 ==
关于javascript - PHP 在尝试验证表单时不会显示 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22596901/
相关文章:
php - 如何在 PHP 中传递值并运行 C 程序(Web 应用程序)
javascript - 强制页面预加载器出现在任何内容之前
javascript - TypeScript 中的条件接口(interface)
php - 我怎样才能 foreach 这个数组结果并在 codeigniter View 中回显
php - Laravel Fortify 验证错误不起作用
javascript - Jquery fadeToggle 不起作用
javascript - 在 Node JS 中使用 Promises 创建字符串