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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Не определяет переменные

 PHP.SU

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


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

> Без описания
grizzlynet
Отправлено: 14 Сентября, 2011 - 17:28:48
Post Id



Новичок


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


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




Добрый вечер!
Вы при выполнении ругается на Undefined variable: text и subject в 66,67 строке
Возникла проблема после проверки кнопки submit
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.   if (isset($_POST['submit'])) {
  4.     $from = 'elmer@makemeelvis.com';
  5.     $subject = $_POST['subject'];
  6.     $text = $_POST['elvismail'];
  7.     $output_form = false;
  8.  
  9.     if (empty($subject) && empty($text)) {
  10.       // We know both $subject AND $text are blank
  11.       echo 'You forgot the email subject and body text.<br />';
  12.       $output_form = true;
  13.     }
  14.  
  15.     if (empty($subject) && (!empty($text))) {
  16.       echo 'You forgot the email subject.<br />';
  17.       $output_form = true;
  18.     }
  19.  
  20.     if ((!empty($subject)) && empty($text)) {
  21.       echo 'You forgot the email body text.<br />';
  22.       $output_form = true;
  23.     }
  24.   }
  25.   else {
  26.     $output_form = true;
  27.   }
  28.  
  29.   if ((!empty($subject)) && (!empty($text))) {
  30.     $dbc = mysqli_connect('data.makemeelvis.com', 'elmer', 'theking', 'elvis_store')
  31.       or die('Error connecting to MySQL server.');
  32.  
  33.     $query = "SELECT * FROM email_list";
  34.     $result = mysqli_query($dbc, $query)
  35.       or die('Error querying database.');
  36.  
  37.     while ($row = mysqli_fetch_array($result)){
  38.       $to = $row['email'];
  39.       $first_name = $row['first_name'];
  40.       $last_name = $row['last_name'];
  41.       $msg = "Dear $first_name $last_name,\n$text";
  42.       mail($to, $subject, $msg, 'From:' . $from);
  43.       echo 'Email sent to: ' . $to . '<br />';
  44.     }
  45.  
  46.     mysqli_close($dbc);
  47.   }
  48.  
  49.   if ($output_form) {
  50. ?>
  51.  
  52.  <form method="post" action="<?PHP echo $_SERVER['PHP_SELF']; ?>">
  53.  <label for="subject">Subject of email:</label> <input id="subject" name="subject" type="text" value="<?PHP echo $subject; ?>" size="30" /><label for="elvismail">Body of email:</label><textarea id="elvismail" name="elvismail" rows="8" cols="40"><?PHP echo $text; ?></textarea><input type="submit" name="submit" value="Submit" />
  54. </form>
  55.  
  56. <?PHP
  57.   }
  58. ?>
  59.  

(Отредактировано автором: 14 Сентября, 2011 - 17:34:41)

 
 Top
OrmaJever Модератор
Отправлено: 14 Сентября, 2011 - 17:39:06
Post Id



Активный участник


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


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




grizzlynet пишет:
66,67 строке

Огорчение в приведёном коде всего 58 строк.
(Добавление)
хотя я включил логику и предположил что эта строка
grizzlynet пишет:
<?PHP echo $text; ?>

а ругается потому что переменая $text не обьявлена, а обьявлена она будет только если

это условие истино


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
grizzlynet
Отправлено: 14 Сентября, 2011 - 19:20:50
Post Id



Новичок


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


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




Пробую объявить переменные перед if (isset($_POST['submit'])), выдает:
Notice: Undefined index: subject in C:\inet\localhost\www\sendemail.php on line 3
Notice: Undefined index: elvismail in C:\inet\localhost\www\sendemail.php on line 4

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. $from = 'elmer@makemeelvis.com';
  3.     $subject = $_POST['subject'];
  4.     $text = $_POST['elvismail'];
  5.     $output_form = false;
  6. <?PHP
  7.  if (isset($_POST['submit'])) {
  8.  


Пробывал добавлять Error_Reporting(E_ALL & ~E_NOTICE); в код. Сразу исчезает.
Что это за Undefined index.

(Отредактировано автором: 14 Сентября, 2011 - 21:45:03)

 
 Top
tsoi85
Отправлено: 14 Сентября, 2011 - 21:56:00
Post Id


Новичок


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


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




PHP:
скопировать код в буфер обмена
  1. $from = 'elmer@makemeelvis.com';
  2. $subject = (!empty($_POST['subject']))?trim($_POST['subject']):'';
  3. $text = (!empty($_POST['elvismail']))?trim($_POST['elvismail']):'';
  4. $output_form = false;
  5.  
  6. if (isset($_POST['submit'])) {
  7.  

(Отредактировано автором: 14 Сентября, 2011 - 21:56:17)

 
 Top
Viper
Отправлено: 15 Сентября, 2011 - 07:11:54
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


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




grizzlynet пишет:
Что это за Undefined index.
неопределенный индекс массива. По русски это означает, что вы обратились к элементу массива, который не существует.


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
kappa
Отправлено: 15 Сентября, 2011 - 09:14:16
Post Id



Посетитель


Покинул форум
Сообщений всего: 349
Дата рег-ции: Апр. 2011  


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




Попробуй так, может поможет, перед скриптом записать.

PHP:
скопировать код в буфер обмена
  1. !empty(POST['submit']) ? POST['submit'] : NULL;
 
 Top
morosit
Отправлено: 15 Сентября, 2011 - 09:34:21
Post Id



Посетитель


Покинул форум
Сообщений всего: 307
Дата рег-ции: Июль 2010  
Откуда: Казахстан


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




grizzlynet пишет:
Пробую объявить переменные перед if (isset($_POST['submit'])),

если у вас не проходит проверка на сабмит - значит кнопка не нажималась? значит данные с формы не предаются?
какой смысл запихивать данные в переменные если они небыли переданны
 
 Top
LIME
Отправлено: 15 Сентября, 2011 - 09:43:36
Post Id


Активный участник


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


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




morosit пишет:
значит кнопка не нажималась? значит данные с формы не предаются?
при нажатии ентер браузер передает данные но сабмит не определен
 
 Top
grizzlynet
Отправлено: 15 Сентября, 2011 - 10:04:52
Post Id



Новичок


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


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




[quote=tsoi85]
PHP:
скопировать код в буфер обмена
  1. $from = 'elmer@makemeelvis.com';
  2. $subject = (!empty($_POST['subject']))?trim($_POST['subject']):'';
  3. $text = (!empty($_POST['elvismail']))?trim($_POST['elvismail']):'';
  4. $output_form = false;
  5.  
  6. if (isset($_POST['submit'])) {
  7.  
[/quote]

Да, работает спасибо.
[quote=tsoi85] почему не работает в таком виде?
PHP:
скопировать код в буфер обмена
  1. $subject = $_POST['subject'];
  2.  $text = $_POST['elvismail'];
  3.  



(Добавление)
kappa пишет:
Попробуй так, может поможет, перед скриптом записать.

PHP:
скопировать код в буфер обмена
  1. !empty(POST['submit']) ? POST['submit'] : NULL;


Выдает syntax error, unexpected '[', expecting T_PAAMAYIM_NEKUDOTAYIM in

(Добавление)
Парни, этот код взят из листинга обучающей книги, авторы оформили его в том виде в котором я его выложил,и пытаюсь с Вашей помощью разобратся
[/b]

(Отредактировано автором: 15 Сентября, 2011 - 10:33:05)

 
 Top
Мелкий Супермодератор
Отправлено: 15 Сентября, 2011 - 10:44:40
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


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




grizzlynet пишет:
Парни, этот код взят из листинга обучающей книги, авторы оформили его в том виде в котором я его выложил.

Ну так он и работает. Только авторы его писали при выключенных предупреждениях.


-----
PostgreSQL DBA
 
 Top
grizzlynet
Отправлено: 15 Сентября, 2011 - 10:55:37
Post Id



Новичок


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


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




Ещё момент, на почту приходят кракозябры. Далее вставляю
PHP:
скопировать код в буфер обмена
  1.  
  2. mail($to, '=?UTF-8?B?'.base64_encode($subject).'?=', $msg, 'From:' . $from);
  3.  

Есть ли альтернативное решение,сделать проще?

(Отредактировано автором: 15 Сентября, 2011 - 12:13:01)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Если скрипт не работает »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB