我构建了这个代码,来自各种来源的大杂烩,以及我称之为“完全沉浸式学习”的几周。换句话说,我不知道蹲下 php ,只是觉得我可以伪造它,但显然我不能。
Anywho,我知道我在下面做了什么会让几个看到它的人对我心爱的php所做的完全恐怖但是只用了2个星期的自我教育就无法帮助至少它现在只抛出三个通知,而不是它过去所做的所有警告,尖叫警告和致命错误。
我得到的最后一个错误是......
(!)注意:未定义的变量:第65行的E:\ wamp \ www \ complete-x013_php2 \ iframe1 \ contact.php中的error_name
(!)注意:未定义的变量:第77行的E:\ wamp \ www \ complete-x013_php2 \ iframe1 \ contact.php中的error_email
(!)注意:未定义的变量:第89行的E:\ wamp \ www \ complete-x013_php2 \ iframe1 \ contact.php中的error_code
<?php session_start(); ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
<title></title>
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
<span style="color: #000000; font-size: 85%; font-family: Verdana, Geneva, sans-serif;">
<?php
if (isset($_POST['submit'])) {
$error = "
error_name,
error_email,
error_code
";
$name = check_input($_POST['name']);
$email = check_input($_POST['email']);
$how = check_input($_POST['how']);
$ifother = check_input($_POST['ifother']);
$code = check_input($_POST['code']);
$submit = check_input($_POST['submit']);
$_POST['name'] = trim($_POST['name']);
$_POST['name'] = stripslashes($_POST['name']);
$_POST['name'] = htmlspecialchars($_POST['name']);
$_POST['email'] = trim($_POST['email']);
$_POST['email'] = stripslashes($_POST['email']);
$_POST['email'] = htmlspecialchars($_POST['email']);
$_POST['how'] = trim($_POST['how']);
$_POST['how'] = stripslashes($_POST['how']);
$_POST['how'] = htmlspecialchars($_POST['how']);
$_POST['ifother'] = trim($_POST['ifother']);
$_POST['ifother'] = stripslashes($_POST['ifother']);
$_POST['ifother'] = htmlspecialchars($_POST['ifother']);
$_POST['code'] = trim($_POST['code']);
$_POST['code'] = stripslashes($_POST['code']);
$_POST['code'] = htmlspecialchars($_POST['code']);
$_POST['submit'] = trim($_POST['submit']);
$_POST['submit'] = stripslashes($_POST['submit']);
$_POST['submit'] = htmlspecialchars($_POST['submit']);
if (!empty($_POST['name'])) {
$name = check_input($_POST['name']);
} else {
$error .= "error_name";
$error_name .= "Name is required.";
}
if (!empty($_POST['email'])) {
$email = check_input($_POST['email']);
if (!preg_match("/^[a-z0-9]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/i", $email)){
$error .= "error_email";
$error_email .= "E-mail address not valid.";
}
} else {
$error .= "error_email";
$error_email .= "E-mail address is required.";
}
if (!empty($_POST['code'])) {
$code = check_input($_POST['code']);
if (strtolower($_POST['code']) != 'black'){
$error .= "error_code";
$error_code .= "Code is BLACK.";
}
} else {
$error .= "error_code";
$error_code .= "Enter Code.";
}
if (empty($error)) {
$from = 'From: ' . $name . ' <' . $email . '>';
$to = "yourmail@host.com";
$subject = "New Subscription Contact";
$content = "
Newsletter Subsciption submitted by $name,
E-mail: $email
They were referred to us by: $how, $ifother
-END NOTIFICATION-
";
$success =
mail($to,$subject,$content,$from);
header('Location: thanks.php');
exit;
}
}
function check_input($data, $problem='')
{
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
if ($problem && strlen($data) == 0)
{
show_error($problem);
}
return $data;
}
?>
<div>
<form action="contact.php" method="post">
<center>
<table style="border: 0px solid black; border-collapse: collapse;">
<tr>
<td style="border: 0px solid black; height: 16px;" colspan="2">[<span style="color: #ff0000;">*</span>] Denotes a required field.</td>
</tr>
<tr>
<td style="border: 0px solid black; text-align: left; text-indent: 92px; height: 12px;" colspan="2" id="error">
<?php if (!empty($error_name)) { echo '<div class="error">' . $error_name . '</div >'; } ?>
</td>
</tr>
<tr>
<td style="border: 0px solid black; vertical-align: top; text-align: left;">
<div style="margin-top: 2px;"><span style="color: #ff0000;">*</span><label>Name:</label></div></td>
<td style="border: 0px solid black;">
<input type="text" placeholder="John or Jane Doe" style="width: 269px;" name="name" value="<?php if ($_POST['name']) { echo $_POST['name']; } ?>" /></td>
</tr>
<tr>
<td style="border: 0px solid black; text-align: left; text-indent: 92px; height: 12px;" colspan="2" id="error">
<?php if (!empty($error_email)) { echo '<div class="error">' . $error_email . '</div >'; } ?>
</td>
</tr>
<tr>
<td style="border: 0px solid black; vertical-align: top; text-align: left;">
<div style="margin-top: 2px;"><span style="color: #ff0000;">*</span><label>E-mail:</label></div></td>
<td style="border: 0px solid black;">
<input type="text" placeholder="yourmail@host.com" style="width: 269px;" name="email" value="<?php if ($_POST['email']) { echo $_POST['email']; } ?>" /></td>
</tr>
<tr>
<td style="border: 0px solid black; height: 12px;" colspan="2"></td>
</tr>
<tr>
<td style="border: 0px solid black; height: 12px;" colspan="2">
<div style="border: 0px solid black; float: left; margin-top: 1px;">How did you find us?</div>
<div style="border: 0px solid black; float: right;"> <select width="180" height="20" style="width: 180px;" name="how">
<option value=""> -- Please Select -- </option>
<option>Google</option>
<option>Yahoo</option>
<option>Link from a website</option>
<option>Word of mouth</option>
<option>Other</option>
</select></div>
</td>
</tr>
<tr>
<td style="border: 0px solid black; height: 12px;" colspan="2"></td>
</tr>
<tr>
<td style="border: 0px solid black; vertical-align: top; text-align: left; width: 80px;">
<div style="margin-top: 1px;"><label>If <i>Other</i>:</label></div></td>
<td style="border: 0px solid black;">
<textarea name="ifother" placeholder="If you chose 'link' or 'other'." style="width: 269px; height: 35px;"><?php if ($_POST['ifother']) { echo $_POST['ifother']; } ?></textarea></td>
</tr>
<tr>
<td style="border: 0px solid black; text-align: left; text-indent: 265px; height: 12px;" colspan="2" id="error">
<?php if (!empty($error_code)) { echo '<div class="error">' . $error_code . '</div>'; } ?>
</td>
</tr>
<tr>
<td style="border: 0px solid black;" colspan="2" >
<div style="border: 0px solid black; float: left; height: 18px; margin-top: 2px;">
<span style="color: #ff0000;">*</span>What color is this '<b>black</b>' text? </div>
<div style="border: 0px solid black; float: right;"><input type="text" placeholder="code" style="width: 90px;" name="code" value="<?php if ($_POST['code']) { echo $_POST['code']; } ?>" /></div>
</td>
</tr>
<tr>
<td style="border: 0px solid black;" colspan="2"><div style="border: 0px solid black; height: 10px;"></div>
</td>
</tr>
<tr>
<td style="border: 0px solid black; text-align: right;" colspan="2"><input type="submit" style="width: 95px;" name="submit" value="Subscribe!" />
</td>
</tr>
</table>
</center>
</form>
</div>
</span>
</body>
</html>
答案 0 :(得分:6)
$error_email .= "E-mail address not valid.";
=&GT;
$error_email = "E-mail address not valid.";
答案 1 :(得分:1)
您需要添加以下内容:
$error_code = $error_email = $error_name = "";
紧随其后:
$error = "
error_name,
error_email,
error_code
";
像这样:
$error = "
error_name,
error_email,
error_code
";
$error_code = $error_email = $error_name = "";
由于您在未定义的var。
上使用。=,因此会触发通知答案 2 :(得分:1)
您还必须定义error_name和error_email以及error_code
试试这个
if (isset($_POST['submit'])) {
$error_name ="";
$error_email ="" ;
$error_code= "";
$error = "";
$name = check_input($_POST['name']);
.....
....