Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Прошу подсказать - <?php echo $text; ?> Выдает абракадабру - PHP
Форумы портала PHP.SU » » Вопросы новичков » Прошу подсказать - <?php echo $text; ?> Выдает абракадабру - PHP

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

1. Димитрий - 06 Июля, 2018 - 15:58:35 - перейти к сообщению
Добрый день.

Изучаю 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>
2. andrewkard - 06 Июля, 2018 - 17:18:06 - перейти к сообщению
Добавьте вначале:

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


У Вас эти переменные объявляются только если отправлена форма.
3. Димитрий - 06 Июля, 2018 - 17:46:02 - перейти к сообщению
andrewkard пишет:
Добавьте вначале:

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


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



В этом случае если заполняется только тема письма выдается сообщение что не заполнено содержание и туда копируется тема. А если заполняется только содержание то текст просто исчезает
4. andrewkard - 06 Июля, 2018 - 17:56:52 - перейти к сообщению
Димитрий пишет:
В этом случае если заполняется только тема письма выдается сообщение что не заполнено содержание и туда копируется тема. А если заполняется только содержание то текст просто исчезает

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

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.  
5. Димитрий - 06 Июля, 2018 - 18:35:26 - перейти к сообщению
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.  



Спасибо большое))
6. haveFun - 13 Июля, 2018 - 17:57:31 - перейти к сообщению
это дерьмо:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
поменяйте полжалуйста на вот это:
<!DOCTYPE html>
отлично, вы молодец!
7. Peter - 13 Июля, 2018 - 22:30:21 - перейти к сообщению
haveFun пишет:
поменяйте полжалуйста на вот это:
<!DOCTYPE html>

Эта строчка вообще не нужна! Можно начинать сразу с <html>.

 

Powered by ExBB FM 1.0 RC1