Добрый день.
Изучаю PHP прошу подсказать специалистов, что я делаю не так. Создал страницу на добавление электронной почты в базу.
По коду - в случае если не заполнена тема или содержание письма выдается ошибка. Но сохраняется текст, что был введен в ячейки. <?php echo $text ?>.
По факту при загрузке страницы в ячейках появляется текст - <br /><b>Notice</b>: Undefined variable: subject in <b>C:\Server\data\htdocs\html.loc\PHP\sendmail.php</b> on line <b>71</b><br />
и во второй - <br />
<b>Notice</b>: Undefined variable: text in <b>C:\Server\data\htdocs\html.loc\PHP\sendmail.php</b> on line <b>74</b><br />
Подскажите, что я делаю не так
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Рассылка предложений</title>
<link href="../css/Nadia.css" type="text/css" rel="stylesheet">
</head>
<body>
</body>
<br /><br />Персонально: ТОЛЬКО для самых близких клиентов<br />
Составьте и отправьте электронное письмо для покупателей, <br />
внесенный в лист рассылки <br /> <br />
<?php
if(isset($_POST['submit'])){
$from='dmi-gorshkov@mail.ru';
$output_form = false;
$subject=$_POST['subject'];
$text=$_POST['text'];
if (empty($subject) && empty($text)){
echo 'Вы не ввели тему и содержание электронного письма <br />';
$output_form = true;
}
if (empty($subject) && (!empty($text))){
echo 'Вы не ввели тему электронного письма <br />';
$output_form = true;
}
if ((!empty($subject)) && empty($text)){
echo 'Вы не ввели содержание электронного письма <br />';
$output_form = true;
}
if ((!empty($subject)) && (!empty($text))){
$dbc=mysqli_connect('localhost','root','root','fotosessia')
or die('Ошибка соединения с сервером');
$query="Select * from zakazy";
$result=mysqli_query($dbc,$query)
or die ('Ошибка доступа к базе');
while ($row=mysqli_fetch_array($result)){
$first_name=$row['first_name'];
$last_name=$row['last_name'];
$phone=$row['phone'];
$msg="Уважаемый $first_name $last_name! \n $text";
$to=$row['email'];
mail ($to,$subject,$msg, 'from:'. $from);
echo 'Электронное письмо: '.$first_name.' отправлено на адрес электронной почты '.$to.' а телефон у них '.$phone.'<br />';
}
mysqli_close($dbc);
}
}
else {
$output_form=true;
}
if ($output_form){
?>
<form method="POST" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<label for="subject">Тема электронного письма:</label><br />
<input type="text" placeholder="О чем письмо" id="subject" name="subject" cols='60' value="<?php echo $subject ?>"><br /><br />
<label for="text">Содержание электронного письма:</label><br />
<textarea placeholder="Ваше сообщение" id="text" name="text" rows='8' cols="60" /><?php echo $text; ?></textarea><br /><br />
<input type="image" src="../image/bluebutton.png" name="submit">
</form>
<?php
}
?>
</body>
</html>
1. Димитрий - 06 Июля, 2018 - 15:58:35 - перейти к сообщению
2. andrewkard - 06 Июля, 2018 - 17:18:06 - перейти к сообщению
У Вас эти переменные объявляются только если отправлена форма.