-1

我需要一些帮助来完成我的表格,我希望某些输入字段只接受字母,一些接受数字等。有人可以帮我举个例子,这样我就可以学习这些?我希望名称只接受字母,电子邮件接受任何但需要“@”符号。希望如果我能在这些方面得到帮助,剩下的事情我可以自己做。

非常感谢

这是我的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>
4

2 回答 2

1

您可能想要使用该filter_var功能:

http://www.php.net/manual/en/filter.filters.validate.php

这很容易让您根据正则表达式检查值,验证它是否是浮点数、整数、电子邮件、url 或 ip 地址。

您可以在 PHP 文档中找到一些示例:

http://www.php.net/manual/en/filter.examples.validation.php

希望有帮助!

于 2013-11-01T04:03:47.947 回答
0

到目前为止,最简单的选择是使用 PHP 的 filter_var() 函数,第二个参数是 FILTER_VALIDATE_EMAIL 类型。参见:PHP.net 上的文档

或者,如果您出于某种原因想要比 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 表示正则表达式模式)。

希望有帮助!

于 2013-11-01T04:27:01.603 回答