私は本を読んでいて、例を通っていますが、残念ながらフォームを送信するとフィールドを空のままにしてもエラーは出ます。私は正誤表をチェックし、何もなかったので、私は本のフォーラムに投稿しようとしましたが、私は何の反応も得ていませんでした。未定義の変数エラーを受け取ったルーキーPHP
私は変数を最初に宣言しなければならないと思うかもしれませんが、変数が自動的に生成されるからです。
私はルーキーはPHPを学ぼうとしています。
リクエストごとに、$ requiredと$ expectedがあります。ありがとう!下の行で
$expected = array('name', 'email', 'comments');
$required = array('name', 'email', 'comments');
<?php
foreach ($_POST as $key => $value){
//assign to temporary variable and strip whitespace if not an array
$temp = is_array($value) ? $value : trim($value);
//if empty and required, add to $missing array
if (empty($temp) && in_array($key, $required)){
$missing[] = $key;
} elseif(in_array($key, $expected)){
//otherwise, assign to a variable of the same name as $key
${$key} = $temp;
}
}
<?php
include('./includes/title.inc.php');
$errors = array();
$missing = array();
//Check to see if the form has been submitted
if (isset($_POST['send'])){
//email processing script
$to = '[email protected]'; //use your email address
$subject = 'Feedback from Japan Journey';
//list expecting fields
$expected = array('name', 'email', 'comments');
//set required fields
$required = array('name', 'email', 'comments');
include('./includes/processmail.inc.php');
}
?>
<!DOCTYPE HTML>
<html>
<head>
<meta charset=utf-8">
<title>Japan Journey<?php if (isset($title)){echo "—{$title}";} ?></title>
<link href="styles/journey.css" rel="stylesheet" type="text/css" media="screen">
</head>
<body>
<div id="header">
<h1>Japan Journey</h1>
</div>
<div id="wrapper">
<?php include('./includes/menu.inc.php'); ?>
<div id="maincontent">
<h2>Contact Us</h2>
<?php if ($missing || $errors){ ?>
<p class="warning">Please fix the item(s) indicated.</p>
<?php } ?>
<p>Ut enim ad minim veniam, quis nostrud exercitation consectetur adipisicing elit. Velit esse cillum dolore ullamco laboris nisi in reprehenderit in voluptate. Mollit anim id est laborum. Sunt in culpa duis aute irure dolor excepteur sint occaecat.</p>
<form id="feedback" method="POST" action="">
<p>
<label for="name">Name:
<?php if ($missing && in_array('name', $missing)){ ?>
<span class="warning">Please enter your name</span>
<?php } ?>
</label>
<input name="name" id="name" type="text" class="formbox"<?php
if ($missing || $errors){
echo ' value="' . htmlentities($name, ENT_COMPAT, 'UTF-8') . '" ';
} ?> />
</p>
<p>
<label for="email">Email:
<?php if ($missing && in_array('email', $missing)){ ?>
<span class="warning">Please enter your email address</span>
<?php } ?>
</label>
<input name="email" id="email" type="text" class="formbox"<?php
if ($missing || $errors){
echo ' value="' . htmlentities($email, ENT_COMPAT, 'UTF-8') . '" ';
} ?> />
</p>
<p>
<label for="comments">Comments:
<?php if ($missing && in_array('comments', $missing)){ ?>
<span class="warning">Please enter your comments</span>
<?php } ?>
</label>
<textarea name="comments" id="comments" cols="60" rows="8"><?php
if ($missing || $errors){
echo htmlentities($comments, ENT_COMPAT, 'UTF-8');
} ?></textarea>
</p>
<p>
<input name="send" id="send" type="submit" value="Send message">
</p>
</form>
<pre>
<?php if ($_POST && $missing) {print_r($_POST);} ?>
</pre>
</div>
<?php include('./includes/footer.inc.php'); ?>
</div>
</body>
</html>
どの行が60行ですか? – BoltClock
'$ required'と' $ expected'はどこから来たのですか? – Tomalak
正確なエラーメッセージも役立ちます。 –