我需要一些帮助才能完成我的表单,我希望某些输入字段只接受字母,一些接受数字等等。有人可以帮我一个例子,所以我可以学习这些吗? 我希望该名称只接受信件,电子邮件接受任何,但要求“@”符号。希望如果我能得到帮助,我可以自己完成剩下的工作。
非常感谢
这是我的php表单。
<!DOCTYPE HTML>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Daily Dorm News</title>
</script>
<body>
</head>
<body>
<h1>Your Daily Dorm News Post! </h1>
Welcome <?php if ( isset($_GET['name']) and preg_match("/^[A-Za-z0-9]+$/", $_GET['name']) ) {
echo $_GET['name'];
} else {
echo "You entered an invalid name!\n";
}
?><br>
Your email address is: <?php if ( isset($_GET['email']) and preg_match("/.+@.+\..+/i", $_GET['email']) ) {
echo $_GET['email'];
} else {
echo "You didn't enter a proper email address!\n";
}
?><br>
You Posted : <?php echo $_GET["message"]; ?><br>
This event happened :<?php echo $_GET["date"]; ?><br>
<?php
// set the default timezone to use. Available since PHP 5.1
date_default_timezone_set('EST');
// Prints something like: Monday 8th of August 2005 03:12:46 PM
echo date('l jS \of F Y h:i:s A');
?>
</script>
</body>
</html>
这是我的HTML
<!DOCTYPE HTML>
<html>
<head>
<link type="text/css" rel="stylesheet" href="index.css" />
<meta name="viewport" content="width=device-width" />
<title>Daily Dorm News</title>
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
<link rel="stylesheet" href="/resources/demos/style.css" />
<script>
$(function() {
$( "#datepicker" ).datepicker();
});
</script>
<body>
<div id="dorm"> <u>Daily Dorm News</u> <br> The best place to get your latest Dorm news </div>
<form action="posting_wall.php" method="get">
<div id="container">
Username:<input type="text" name="name" pattern="[A-Za-z0-9]{3,15}" title="Letters and numbers only, length 3 to 15" required autofocus><br>
E-mail: <input type="email" name="email"maxlength="20" required><br>
<div class='message'>
Post: <br>
<textarea rows="10" cols="50" name='message' id='message' pattern=".{3,}" title="3 characters minimum" maxlength="150" required></textarea>
</div>
Date this event took place: <input type="text" name='date' id="datepicker" required> <br>
</div>
<input type="submit">
<input type="reset" value="Reset">
</form>
</body>
</html>
答案 0 :(得分:1)
您可能想要使用filter_var
功能:
http://www.php.net/manual/en/filter.filters.validate.php
这很容易让你根据正则表达式检查一个值,验证它是否是float,int,email,url或ip地址。
您可以在PHP文档中找到一些示例:
http://www.php.net/manual/en/filter.examples.validation.php
希望有所帮助!
答案 1 :(得分:0)
目前最简单的选择是使用PHP的filter_var()函数,第二个参数是FILTER_VALIDATE_EMAIL类型。请参阅:PHP.net's documentation on it
或者,如果您由于某种原因想要比filter_var()更具选择性,则可以使用常用表达式(缩写为regex),它们通常用于输入验证。 PHP.net有关于PHP的preg_match函数的良好文档:http://php.net/manual/en/function.preg-match.php
只是提供一个快速而简要的例子:
您的电邮地址是:
if ( isset($_GET['email']) and preg_match("/.+@.+\..+/i", $_GET['email']) ) {
echo $_GET['email'];
} else {
echo "You didn't enter a proper email address!\n";
}
?>
如果你提出这个问题,我假设你不熟悉正则表达式,所以我会解释一下。这里的正则表达式模式(这是preg_match函数的第一个参数,并且包含在正斜杠中)基本上说:接受任何匹配具有一个或多个字符(由。+表示)后跟的模式的东西。 @符号后跟一个或多个字符,后跟一个点(由转义句点或\。表示)后跟一个或多个字符,并使其不区分大小写(由字母i表示后面的正斜杠正则表达式模式)。
希望有所帮助!