-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

これにより、値を正規表現と照合して簡単にチェックし、float、int、email、url、または IP アドレスであるかどうかを検証できます。

PHP ドキュメント内にいくつかの例があります。

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

それが役立つことを願っています!

于 2013-11-01T04:03:47.947 に答える
0

最も簡単なオプションは、PHP の filter_var() 関数を使用して、2 番目のパラメーターを 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 関数の最初の引数であり、スラッシュで囲まれています) は基本的に次のように述べています。 @ 記号の後に 1 つまたは複数の文字が続き、その後にドット (エスケープされたピリオドまたは \. で表される) と 1 つまたは複数の文字が続き、大文字と小文字を区別しません (正規表現パターン)。

それが役立つことを願っています!

于 2013-11-01T04:27:01.603 に答える