PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Димитрий
Отправлено: 06 Июля, 2018 - 15:58:35
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Июль 2018  


Помог: 0 раз(а)




Добрый день.

Изучаю 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>
Прикреплено изображение (Нажмите для увеличения)
Безымянный.jpg
 
 Top
andrewkard
Отправлено: 06 Июля, 2018 - 17:18:06
Post Id


Участник


Покинул форум
Сообщений всего: 1208
Дата рег-ции: Нояб. 2014  


Помог: 21 раз(а)




Добавьте вначале:

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $subject = '';
  4. $text = '';
  5.  


У Вас эти переменные объявляются только если отправлена форма.
 
 Top
Димитрий
Отправлено: 06 Июля, 2018 - 17:46:02
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Июль 2018  


Помог: 0 раз(а)




andrewkard пишет:
Добавьте вначале:

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $subject = '';
  4. $text = '';
  5.  


У Вас эти переменные объявляются только если отправлена форма.



В этом случае если заполняется только тема письма выдается сообщение что не заполнено содержание и туда копируется тема. А если заполняется только содержание то текст просто исчезает
Прикреплено изображение (Нажмите для увеличения)
Безымянный.jpg
 
 Top
andrewkard
Отправлено: 06 Июля, 2018 - 17:56:52
Post Id


Участник


Покинул форум
Сообщений всего: 1208
Дата рег-ции: Нояб. 2014  


Помог: 21 раз(а)




Димитрий пишет:
В этом случае если заполняется только тема письма выдается сообщение что не заполнено содержание и туда копируется тема. А если заполняется только содержание то текст просто исчезает

перепроверьте еще раз, должно быть нормально, так сделали?

PHP:
скопировать код в буфер обмена
  1.  
  2. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  3. <html>
  4. <head>
  5.     <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  6.     <title>Рассылка предложений</title>
  7.     <link href="../css/Nadia.css" type="text/css" rel="stylesheet">
  8.  
  9. </head>
  10.  
  11. <body>
  12. </body>
  13.  
  14. <br /><br />Персонально: ТОЛЬКО для самых близких клиентовСоставьте и отправьте электронное письмо для покупателей, внесенный в лист рассылки <br />
  15. <?PHP
  16. $subject = '';
  17. $text = '';
  18.  
  19. if(isset($_POST['submit'])){
  20.  

(Добавление)
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <input type="image" src="../image/bluebutton.png" name="submit">
  3.  


лучше так:

CODE (html):
скопировать код в буфер обмена
  1.  
  2. <input type="submit" name="submit">
  3.  
 
 Top
Димитрий
Отправлено: 06 Июля, 2018 - 18:35:26
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Июль 2018  


Помог: 0 раз(а)




andrewkard пишет:
Димитрий пишет:
В этом случае если заполняется только тема письма выдается сообщение что не заполнено содержание и туда копируется тема. А если заполняется только содержание то текст просто исчезает

перепроверьте еще раз, должно быть нормально, так сделали?

PHP:
скопировать код в буфер обмена
  1.  
  2. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  3. <html>
  4. <head>
  5.     <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  6.     <title>Рассылка предложений</title>
  7.     <link href="../css/Nadia.css" type="text/css" rel="stylesheet">
  8.  
  9. </head>
  10.  
  11. <body>
  12. </body>
  13.  
  14. <br /><br />Персонально: ТОЛЬКО для самых близких клиентовСоставьте и отправьте электронное письмо для покупателей, внесенный в лист рассылки <br />
  15. <?PHP
  16. $subject = '';
  17. $text = '';
  18.  
  19. if(isset($_POST['submit'])){
  20.  

(Добавление)
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <input type="image" src="../image/bluebutton.png" name="submit">
  3.  


лучше так:

CODE (html):
скопировать код в буфер обмена
  1.  
  2. <input type="submit" name="submit">
  3.  



Спасибо большое))
 
 Top
haveFun
Отправлено: 13 Июля, 2018 - 17:57:31
Post Id



Гость


Покинул форум
Сообщений всего: 100
Дата рег-ции: Янв. 2010  


Помог: 0 раз(а)




это дерьмо:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
поменяйте полжалуйста на вот это:
<!DOCTYPE html>
отлично, вы молодец!
 
 Top
Peter
Отправлено: 13 Июля, 2018 - 22:30:21
Post Id



Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Июль 2018  


Помог: 0 раз(а)




haveFun пишет:
поменяйте полжалуйста на вот это:
<!DOCTYPE html>

Эта строчка вообще не нужна! Можно начинать сразу с <html>.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB