我正在学习PHP。一个初学者。我遵循的教程中的代码如下所示。
<?php
if (isset($_POST['submit']) && (!empty($_POST['submit']))) {
$from = 'Alexey Pazukhin (alexey.pazukhin@mail.ru)';
$subject = $_POST['subject'];
$text = $_POST['elvismail'];
$output_form = FALSE;
if (empty($subject) && empty($text)){
echo 'Subject and text fields are empty. <br/>';
$output_form = TRUE;
}
if (empty($subject) && (!empty($text))) {
echo 'Subject field is empty. <br/>';
$output_form = TRUE;
}
if ((!empty($subject)) && empty($text)) {
echo 'Text field is empty. <br/>';
$output_form = true;
}
if((!empty($subject)) && (!empty($text))){
$dbc = mysqli_connect('localhost', 'root', 'root', 'elvis_store')
or die ('Connection failed. MySQL');
$query = "SELECT * FROM email_list";
$result = mysqli_query($dbc, $query)
or die('DB query error');
while ($row = mysqli_fetch_array($result)) {
$first_name = $row['first_name'];
$last_name = $row['last_name'];
$msg = "Dear $first_name $last_name, \n $text";
$to = $row['email'];
mail($to, $subject, $msg, 'From:' . $from);
echo 'Message sent:' . $to . '<br/>';
}
mysqli_close($dbc);
}
}
else {
$output_form = TRUE;
}
if ($output_form) {
?>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
<label for="subject">Subject of email:</label><br />
<input id="subject" name="subject" type="text" value="<?php echo $subject; ?>" size="30" /><br />
<label for="elvismail">Body of email:</label><br />
<textarea id="elvismail" name="elvismail" rows="8" cols="40"><?php echo $text; ?></textarea><br />
<input type="submit" name="Submit" value="Submit" />
</form>
<?php
}
?>
问题是代码在单击“提交”按钮后没有发送任何邮件(我填写字段或不填写)并在浏览器(Chrome)中返回一个空(新)表单。
答案 0 :(得分:3)
替换
<input type="submit" name="Submit" value="Submit" />
带
<input type="submit" name="submit" value="submit" />
答案 1 :(得分:0)
你只能检查 - if(isset($ _ POST ['Submit']))。你不想检查!空。
在输入标记中,您将name属性命名为name =“Submit”。
所以,使用$ _POST ['Submit']
而不是$ _POST ['submit']
因为帖子变量是CASE SENSITIVE。
答案 2 :(得分:0)
我将if (isset($_POST['Submit'))
更改为if (isset($_POST['sendIt'))
然后我会改变<input type="submit" name="Submit" value="Submit" />
到:
<input type="submit" name="sendIt" value="Submit" />
通过这种方式,您的表单拥有自己独特的发送价值,而不是bog标准submit
,如果您决定在网站中添加任何表单,这可能会导致未来的问题。