Ошибка undefined index fieldvalues

Содержание

  1. How to Solve PHP Notice: Undefined Index?
  2. Undefined Index PHP Error
  3. How to Ignore PHP Notice: Undefined Index
  4. 1. php.ini
  5. 2. PHP Code
  6. Solution or Fix for PHP Notice: Undefined Index
  7. Undefined index in PHP $_get
  8. Notice: Undefined Variable
  9. Notice: Undefined Offset
  10. What is an Undefined Index PHP Error? How to Fix It?
  11. Table of Contents
  12. Post Graduate Program: Full Stack Web Development
  13. What Is an Undefined Index PHP Error?
  14. Code:В
  15. Result:В
  16. How to Ignore PHP Notice: Undefined Index?
  17. 1. Adding Code at the Top of the Page
  18. 2. Changes in php.iniВ
  19. New Course: Full Stack Development for Beginners
  20. How to Fix the PHP Notice: Undefined Index?
  21. Undefined Index in PHP $_GET
  22. Avoiding undefined index / offset errors in PHP.
  23. What is an index?
  24. Undefined offset and index errors.
  25. $_POST, $_GET and $_SESSION.
  26. Avoiding index errors.
  27. ( ! ) Notice: Undefined index… on line …
  28. Читайте также
  29. Комментарии к статье “ ( ! ) Notice: Undefined index… on line … ” (13)

How to Solve PHP Notice: Undefined Index?

While working in PHP, you will come across two methods called $_POST and $_GET. These methods are used for obtaining values from the user through a form. When using them, you might encounter an error called “Notice: Undefined Index”.

This error means that within your code, there is a variable or constant that has no value assigned to it. But you may be trying to use the values obtained through the user form in your PHP code.

The error can be avoided by using the isset() function. This function will check whether the index variables are assigned a value or not, before using them.

Undefined Index PHP Error

An undefined index is a ‘notice’ such as the following:

“Notice: Undefined variable,”

“Notice: Undefined index” and “Notice: Undefined offset.”

As you can see above are all notices, here are two ways to deal with such notices.

1) Ignore such notices
2) Resolve such notices.

How to Ignore PHP Notice: Undefined Index

You can ignore this notice by disabling reporting of notice with option error_reporting.

1. php.ini

Open php.ini file in your favourite editor and search for text “error_reporting” the default value is E_ALL. You can change it to E_ALL &

By default:

Change it to:

Now your PHP compiler will show all errors except ‘Notice.’

2. PHP Code

If you don’t have access to make changes in the php.ini file, In this case, you need to disable the notice by adding the following code on the top of your php page.

Now your PHP compiler will show all errors except ‘Notice.’

Solution or Fix for PHP Notice: Undefined Index

Cause of error:

This error occurs with $ _POST and $ _GET method when you use index or variables which have not set through $ _POST or $ _GET method, but you are already using their value in your PHP code.

Undefined index in PHP $_get

Example using $_GET

In the following example, we have used two variables ‘ names’ & ‘age,’ but we did set only the name variable through the $_GET method, that’s why it throws the notice.

http://yoursite.com/index.php?name=ram

OUTPUT:

Solution

To solve such error, you can use the isset() function, which will check whether the index or variable is set or not, If not then don’t use it.

if(isset($_GET[index error name]))

Code with Error resolved using isset() function:

http://yoursite.com/index.php?name=ram

OUTPUT:

Set Index as blank

We can also set the index as blank index:

Notice: Undefined Variable

This notice occurs when you use any variable in your PHP code, which is not set.

Example:

Output:

In the above example, we are displaying value stored in the ‘name’ and ‘age’ variable, but we didn’t set the ‘age’ variable.

Solutions:

To fix this type of error, you can define the variable as global and use the isset() function to check if this set or not.

Notice: Undefined Offset

This type of error occurs with arrays when we use the key of an array, which is not set.

In the following, given an example, we are displaying the value store in array key 1, but we did not set while declaring array “$colorarray.”

Example:

Output:

Solutions:

Check the value of offset array with function isset() & empty(), and use array_key_exists() function to check if key exist or not.

Источник

What is an Undefined Index PHP Error? How to Fix It?

Table of Contents

PHP is a widely used scripting language that is mainly used for web development purposes. It is a scripting language and finds application in automating tasks that would otherwise be impossible to implement with just human intervention. Being a server-side language, it primarily takes care of things at the server’s end. Launched in 1995 for public use, it has remained a popular choice among web developers since then.

Programming is a tricky business. It is pretty normal to stumble upon errors and warnings while making a program. The same happens a lot to PHP developers, like when they face an Undefined index in PHP. However, such errors are not hard to deal with with a little bit of knowledge and guidance.

Post Graduate Program: Full Stack Web Development

What Is an Undefined Index PHP Error?

Websites often use forms to collect data from visitors. PHP uses $GET and $POST methods for such data collection. This data is collected and saved in variables that are used by the website to work and serve the visitor further. Many a time, some fields are left blank by the user. But the website tries to refer to these fields for proceeding further. That means the PHP code tries to get the value of the field that no one has defined and thus does not exist. Quite expectedly, it does not work and raises a notice calledВ Undefined IndexВ in PHP.

Code:В

Result:В

You can fix it using the isset() function, which we will discuss further in the upcoming sections.

Undefined Index is a notice in PHP, and it is a choice of the developer to either ignore it or fix it.

How to Ignore PHP Notice: Undefined Index?

Undefined Index in PHP is a Notice generated by the language. The simplest way to ignore such a notice is to ask PHP to stop generating such notices. You can either add a small line of code at the top of the PHP page or edit the fieldВ error_reportingВ in the php.ini file.

1. Adding Code at the Top of the Page

A simple way to ask PHP to disable reporting of notices is to put a line of code at the beginning of the PHP page.

Or you can add the following code which stops all the error reporting,

2. Changes in php.iniВ

Php.ini is a configuration file and is essential for all the programs running on PHP. Open this file and find the fieldВ error_reporting. The easiest way is to use the ctrl + F shortcut key. By default, error reporting is set to E_ALL. That means all errors are reported. Change this to E_ALL &

E_NOTICE. It means all errors except for the notices will now be reported.

New Course: Full Stack Development for Beginners

How to Fix the PHP Notice: Undefined Index?

We know the cause of the error. It occurs when we use $_GET and $_POST methods to get input, but we reference it even when it has not been set. The solution simply is to check if it has been set before referencing.

We can use the isset() function, which checks if the variable ‘is set’ or not before referencing to them. Isset() function returns True or False depending on it.

Undefined Index in PHP $_GET

When using the $_GET method, the following code might show the notice Undefined index in PHP:

As we have not set any of these variables, this code shows the Undefined Index notice.

Change it to the following code to fix this issue:

Источник

Avoiding undefined index / offset errors in PHP.

This is a PHP tutorial on how to “fix” undefined index and undefined offset errors.

These are some of the most common notices that a beginner PHP developer will come across. However, there are two simple ways to avoid them.

What is an index?

Firstly, you will need to understand what an index is.

When you add an element to array, PHP will automatically map that element to an index number.

For example, if you add an element to an empty array, PHP will give it the index ““. If you add another element after that, it will be given the index “1“.

This index acts as an identifier that allows you to interact with the element in question. Without array indexes, we would be unable to keep track of which element is which.

Take the following array as an example.

As you can see, Cat has the index “” and Dog has the index “1“. If I want to print the word “Cat” out onto the page, I will need to access the “Cat” element via its array index.

As you can see, we were able to access the “Cat” element by specifying the index ““.

Similarly, if we want to print out the word “Dog”, then we can access it via the index “1“.

If we want to delete the “Dog” element from our PHP array, then we can do the following.

The unset function will remove the element in question. This means that it will no longer exist.

Undefined offset and index errors.

An undefined offset notice will occur if you attempt to access an index that does not exist.

This is where you’ll encounter nasty errors such as the following.

Notice: Undefined offset: 1 in /path/to/file.php on line 2

Or, if you are using array keys instead of numerical indexes.

PHP will display these notices if you attempt to access an array index that does not exist.

Although it is not a fatal error and the execution of your script will continue, these kind of notices tend to cause bugs that can lead to other issues.

$_POST, $_GET and $_SESSION.

A lot of beginner PHP developers fail to realize that $_POST, $_GET, $_SESSION, $_FILES, $_COOKIE, $_SERVER and $_REQUEST are all predefined arrays.

These are what we call superglobal variables.

In other words, they exist by default. Furthermore, developers should treat them like regular arrays.

When you access a GET variable in PHP, what you’re actually doing is accessing a GET variable that has been neatly packaged into an array called $_GET.

In the above piece of code, you are accessing an array element with the index “test”.

Avoiding index errors.

To avoid these errors, you can use two different methods.

The first method involves using the isset function, which checks to see if a variable exists.

The second method involves using the function array_key_exists, which specifically checks to see if an array index exists.

When you are dealing with GET variables and POST variables, you should never assume that they exist. This is because they are external variables.

In other words, they come from the client.

For example, a hacker can remove a GET variable or rename it. Similarly, an end user can inadvertently remove a GET variable by mistake while they are trying to copy and paste a URL.

Someone with a basic knowledge of HTML can delete form elements using the Inspect Element tool. As a result, you cannot assume that a POST variable will always exist either.

Источник

( ! ) Notice: Undefined index… on line …

Исправляем сообщение об ошибке – Notice: Undefined index.

Причина ошибки в том, что PHP не находит содержимое переменной. Для исправления такого нотиса, надо убрать эту переменную из вида.

Например, ошибка сообщает:

Открываем соответствующий файл и смотрим на место, которое не нравится интерпретатору:

Видим что ругается на массив data, в котором находится ключ variable. А т.к. в данном случае, на этой странице, в массиве data ключ variable не содержится, то php ругается на его отсутствие.

Мы меняем этот код на другой:

И ошибка исправлена. На этот раз PHP интерпретатор не ищет специальный ключ, а смотрит существует ли он или нет.

Читайте также

У сайта нет цели самоокупаться, поэтому на сайте нет рекламы. Но если вам пригодилась информация, можете лайкнуть страницу, оставить комментарий или отправить мне подарок на чашечку кофе.

Комментарии к статье “ ( ! ) Notice: Undefined index… on line … ” (13)

Notice: Undefined index: response in /var/www/ilya/data/www/…/pages/addorder.php on line 139 Notice: Undefined index: response in /var/www/ilya/data/www/…/pages/addorder.php on line 140 Notice: Undefined index: response in /var/www/ilya/data/www/…/pages/addorder.php on line 141 Notice: Undefined index: response in /var/www/ilya/data/www/…/pages/addorder.php on line 149 Как это исправить…

Обратиться к строке, на которую указывается в ошибке. Там вызывается массив с ключом, которого нет. Убрать либо этот ключ либо проверить на его наличие и потом выполнять код.

Здравствуйте! Подскажите, пожалуйста, как подправить код, если при добавлении на сайт новой записи (движок WP) выдаёт ошибку:

Notice: Undefined index: meta_posts_nonce in /home/…/metaboxes.php on line 151
Notice: Undefined index: meta_pages_nonce in /home/…/metaboxes.php on line 151
Notice: Undefined index: posts_thumb_nonce in /home/…/metaboxes.php on line 151
Notice: Undefined index: pages_thumb_nonce in /home/…/metaboxes.php on line 151

А когда нажимаю кнопку «Опубликовать» статью, то выдаёт такую ошибку:

Notice: Undefined index: meta_pages_nonce in /home/…/metaboxes.php on line 151
Notice: Undefined index: pages_thumb_nonce in /home/…/metaboxes.php on line 151
Notice: Undefined index: meta_pages_nonce in /home/…/metaboxes.php on line 151
Notice: Undefined index: pages_thumb_nonce in /home/…/metaboxes.php on line 151

Warning: Cannot modify header information — headers already sent by (output started at /home/…/metaboxes.php:151) in /home/…/wp-admin/post.php on line 222

Warning: Cannot modify header information — headers already sent by (output started at /home/…/metaboxes.php:151) in /home/…/wp-includes/pluggable.php on line 1251

Warning: Cannot modify header information — headers already sent by (output started at /home/…/metaboxes.php:151) in /home/…/wp-includes/pluggable.php on line 1254

Строка 151 имеет такой вид — см. скриншот ниже (в этой строке просто указаны комментарии от создателя WP темы).

Так сложно сказать, там может вмешиваться все что угодно.

Возможно какой-то плагин нарушает работу. Надо отключить все и по очередно включить каждый.

Спасибо за ответ. Жаль, но не помогло ((

Спасибо реально помог!! 1 часа уже ищу ответ

Добрый день. У меня в ошибочной строке такое

как это поменять? Спасибо.

Не понятно, что вы хотите сделать. Из сообщения также нельзя понять, что требуется сделать. Это просто строка с условием. Название ошибки в ней не содержится.

Добрый день. У меня выходит ошибка , то что в названии темы Исправляем сообщение об ошибке – Notice: Undefined index
Нашла файл по пути и строку, а в ней содержимое то, что я выше написала.
Эту ошибку выдает модуль Яндекс Кассы и открывает Белый лист
Notice: Undefined index: version in /home/c/cw56654/cks22/public_html/admin/controller/extension/payment/yandex_money.php on line 1631

Искала способ решения и увидела ваш пост.

Похоже у вас та же ошибка, что и ниже в комментарии. Написал, что за проблема в ответе ниже.

У меня такая же ошибка

private function setUpdaterData($data)
<
$data[‘update_action’] = $this->url->link(‘extension/payment/’.self::MODULE_NAME.’/update’,
‘user_token=’.$this->session->data[‘user_token’], true);
$data[‘backup_action’] = $this->url->link(‘extension/payment/’.self::MODULE_NAME.’/backups’,
‘user_token=’.$this->session->data[‘user_token’], true);
$version_info = $this->getModel()->checkModuleVersion(false);
$data[‘kassa_payments_link’] = $this->url->link(‘extension/payment/’.self::MODULE_NAME.’/payments’,
‘user_token=’.$this->session->data[‘user_token’], true);
if (version_compare($version_info[‘version’], self::MODULE_VERSION) >0) <
$data[‘new_version_available’] = true;
$data[‘changelog’] = $this->getModel()->getChangeLog(self::MODULE_VERSION,
$version_info[‘version’]);
$data[‘new_version’] = $version_info[‘version’];
> else <
$data[‘new_version_available’] = false;
$data[‘changelog’] = »;
$data[‘new_version’] = self::MODULE_VERSION;
>
$data[‘new_version_info’] = $version_info;
$data[‘backups’] = $this->getModel()->getBackupList();

У вас указана в ошибке строка on line 1631. Из кода здесь не понятно какое это место. Смотрите у себя в редакторе номер строки, когда откроете весь файл.

Скорее всего у вас тут пусто: $version_info[‘version’]. Код не находит ссылку на свойство version в переменной version_info;

Источник

While working in PHP, you will come across two methods called $_POST and $_GET. These methods are used for obtaining values from the user through a form. When using them, you might encounter an error called “Notice: Undefined Index”. 

This error means that within your code, there is a variable or constant that has no value assigned to it. But you may be trying to use the values obtained through the user form in your PHP code.

The error can be avoided by using the isset() function. This function will check whether the index variables are assigned a value or not, before using them.

Undefined Index error in php in PHP

Undefined Index PHP Error

An undefined index is a ‘notice’ such as the following:

“Notice: Undefined variable,” 

“Notice: Undefined index” and “Notice: Undefined offset.”

As you can see above are all notices, here are two ways to deal with such notices.

1) Ignore such notices
2) Resolve such notices.

How to Ignore PHP Notice: Undefined Index

You can ignore this notice by disabling reporting of notice with option error_reporting.

1. php.ini

Open php.ini file in your favourite editor and search for text “error_reporting” the default value is E_ALL. You can change it to E_ALL & ~E_NOTICE.

By default:

error_reporting = E_ALL

Change it to:

error_reporting = E_ALL & ~E_NOTICE

Now your PHP compiler will show all errors except ‘Notice.’

2. PHP Code

If you don’t have access to make changes in the php.ini file, In this case, you need to disable the notice by adding the following code on the top of your php page.

<?php error_reporting (E_ALL ^ E_NOTICE); ?>

Now your PHP compiler will show all errors except ‘Notice.’

Solution or Fix for PHP Notice: Undefined Index

Cause of error:

This error occurs with $ _POST and $ _GET method when you use index or variables which have not set through $ _POST or $ _GET method, but you are already using their value in your PHP code.

Undefined index in PHP $_get

Example using $_GET

In the following example, we have used two variables ‘ names’ & ‘age,’ but we did set only the name variable through the $_GET method, that’s why it throws the notice.

http://yoursite.com/index.php?name=ram

<?php 
$name = $_GET['name'];
$age = $_GET['age'];

echo $name;
echo $age;
?>

OUTPUT:

Notice: Undefined index: age index.php on line 5

Solution

To solve such error, you can use the isset() function, which will check whether the index or variable is set or not, If not then don’t use it.

if(isset($_GET[index error name]))

Code with Error resolved using isset() function:

http://yoursite.com/index.php?name=ram

<?php
if(isset($_GET['name'])){
      $name = $_GET['name']; 
 }else{
      $name = "Name not set in GET Method";
 }
if(isset($_GET['age'])){
      $name = $_GET['age']; 
 }else{
      $name = "<br>Age not set in GET Method";
 }
echo $name;
echo $age;
?>

OUTPUT:

ram
Age not set in GET Method

Set Index as blank

We can also set the index as blank index:

// example with $_POST method

$name = isset($_POST['name']) ? $_POST['name'] : '';
$name = isset($_POST['age']) ? $_POST['age'] : '';

// example with $_GET method

$name = isset($_GET['name']) ? $_GET['name'] : '';
$name = isset($_GET['age']) ? $_GET['age'] : '';

Notice: Undefined Variable

This notice occurs when you use any variable in your PHP code, which is not set.

Example:

<?php 
$name='RAM';

echo $name;
echo $age;
?>

Output:

Notice: Undefined variable: age in D:xampphtdocstestsite.locindex.php on line 7

In the above example, we are displaying value stored in the ‘name’ and ‘age’ variable, but we didn’t set the ‘age’ variable.

Solutions:

To fix this type of error, you can define the variable as global and use the isset() function to check if this set or not.

<?php 
global $name;
global $age; 
echo $name;
?>

<?php
if(isset($name)){echo $name;}
if(isset($age)){echo $age;}
?>

<?php
// Set Variable as Blank 
$name = isset($name) ? $name : '';
$age= isset($age) ? $age: '';
?>

Notice: Undefined Offset

This type of error occurs with arrays when we use the key of an array, which is not set.

In the following, given an example, we are displaying the value store in array key 1, but we did not set while declaring array “$colorarray.”

Example:

<?php 
// declare an array with key 2, 3, 4, 5 
$colorarray = array(2=>'Red',3=>'Green',4=>'Blue',5=>'Yellow');

// echo value of array at offset 1.
echo $colorarray[1];
?>

Output: 

Notice: Undefined offset: 1 in index.php on line 5

Solutions:

Check the value of offset array with function isset() & empty(), and use array_key_exists() function to check if key exist or not.

<?php 
$colorarray = array(2=>'Red',3=>'Green',4=>'Blue',5=>'Yellow');

// isset() function to check value at offset 1 of array
if(isset($colorarray[1])){echo $colorarray[1];}

// empty() function to check value at offset 1 of array
if(!empty($colorarray[1])){echo $colorarray[1];}

// array_key_exists() of check if key 1 is exist or not
echo array_key_exists(1, $colorarray);
?>

8 / 8 / 0

Регистрация: 07.07.2010

Сообщений: 154

1

14.11.2011, 15:40. Показов 107710. Ответов 24


Студворк — интернет-сервис помощи студентам

Здравствуйте. Возникла проблема с работой сессии. На последний сборке денвера все работает, а на nginx+php+mysql — проблемы, выдает ошибку:

Код

Notice: Undefined index: captcha in C:xampphtdocsindex.php on line 232

Значит проблема не в коде, а в настройках сервера или php, подскажите в чем может быть проблема.



0



4 / 4 / 3

Регистрация: 01.07.2009

Сообщений: 127

15.11.2011, 13:45

2

в начале скрипта вставь error_reporting(0);



1



Почетный модератор

11309 / 4283 / 439

Регистрация: 12.06.2008

Сообщений: 12,342

15.11.2011, 13:49

3

И что там на этой 232 строке?



0



4 / 4 / 3

Регистрация: 01.07.2009

Сообщений: 127

15.11.2011, 15:36

4

Зачем… оно тебе нужно, пропиши в начале скрита то что я дал выше.



0



Денис Н.

463 / 463 / 23

Регистрация: 17.08.2011

Сообщений: 1,488

15.11.2011, 15:45

5

тогда уже лучше

PHP
1
error reporting(E_ALL & ~E_NOTICE);

но лучше будет определить переменную просто-напросто



0



Почетный модератор

11309 / 4283 / 439

Регистрация: 12.06.2008

Сообщений: 12,342

15.11.2011, 16:10

6

Цитата
Сообщение от malik555
Посмотреть сообщение

Нах… оно тебе нужно, пропиши в начале скрита то что я дал выше.

Прятать голову в песок — это не выход. Надо найти проблему и устранить её. Вдруг, это значение, которое не удалось получить, потом где-то должно использоваться.



2



4 / 4 / 3

Регистрация: 01.07.2009

Сообщений: 127

15.11.2011, 17:03

7

Цитата
Сообщение от Humanoid
Посмотреть сообщение

Прятать голову в песок — это не выход. Надо найти проблему и устранить её. Вдруг, это значение, которое не удалось получить, потом где-то должно использоваться.

ТС не знает php что он вам устранит ?
Ему что дадут тут то он и напишет.

Мой вариант решал его проблему на 100%.



0



Почетный модератор

11309 / 4283 / 439

Регистрация: 12.06.2008

Сообщений: 12,342

15.11.2011, 17:10

8

Цитата
Сообщение от malik555
Посмотреть сообщение

ТС не знает php что он вам устранит ?

Почему не знает? Он, вроде, об этом не говорил. Да и если он не знает, то мы подскажем. Но для этого надо понять, в каком массиве нет какого элемента. Я подозреваю, что в массиве $_SERVER

Цитата
Сообщение от malik555
Посмотреть сообщение

Мой вариант решал его проблему на 100%.

Игнорирование ошибок может привести к непредсказуемым последствиям. В любом случае, надо вначале увидеть этот кусок кода, что бы решить, можно его игнорировать или нет.



1



KoIIIeY

163 / 163 / 9

Регистрация: 08.01.2011

Сообщений: 850

15.11.2011, 17:35

9

Цитата
Сообщение от landan
Посмотреть сообщение

captcha in C:xampphtdocsindex.php on line 232

Определи капчу($captcha). Она пустая. Лежит на строке 232 в файле index.php .

PHP
1
if(!isset($captcha)){die('О ужас! Капча не определена!');}

Сей текст положи в строку 231.



0



13207 / 6595 / 1041

Регистрация: 10.01.2008

Сообщений: 15,069

15.11.2011, 18:34

10

Цитата
Сообщение от malik555
Посмотреть сообщение

Мой вариант решал его проблему на 100%.

Вы предлагаете отрезать руку в плече, если болит запястье. Зато 100%, без сомнений.



2



463 / 463 / 23

Регистрация: 17.08.2011

Сообщений: 1,488

16.11.2011, 00:21

11

не, он предлагает ввести изнемогающего от боли человека в кому, чтоб не ныл. Но боль-то никуда не денется… даже в коме.



0



8 / 8 / 0

Регистрация: 07.07.2010

Сообщений: 154

16.11.2011, 02:29

 [ТС]

12

Цитата
Сообщение от malik555
Посмотреть сообщение

ТС не знает php что он вам устранит ?
Ему что дадут тут то он и напишет.

Мой вариант решал его проблему на 100%.

Ваше решение бестолковое, я не просил убирать вывод ошибок.
Проблема была из за сессии, она почему-то не хотела работать, из за этого переменная капчи не передавалась. Но я уже исправил.



0



154 / 146 / 20

Регистрация: 12.03.2011

Сообщений: 806

16.11.2011, 15:43

13

Может напишите, как исправили? Все таки, +1 решение проблемы на форуме



0



163 / 163 / 9

Регистрация: 08.01.2011

Сообщений: 850

16.11.2011, 18:08

14

Цитата
Сообщение от Vovan-VE
Посмотреть сообщение

Вы предлагаете отрезать руку в плече, если болит запястье. Зато 100%, без сомнений.

Нифига не без сомнений. При расширении функционала может весь организм из-за таких вещей заболеть



0



8 / 8 / 0

Регистрация: 07.07.2010

Сообщений: 154

18.11.2011, 15:36

 [ТС]

15

Цитата
Сообщение от bober94
Посмотреть сообщение

Может напишите, как исправили? Все таки, +1 решение проблемы на форуме

Проблема была с сессиями, вписал session_start(); сразу же после <?php и все заработало



0



morgusha

2 / 2 / 2

Регистрация: 21.05.2009

Сообщений: 294

20.07.2015, 18:32

16

подскажите плиз ! как исправить ? в форме обратной связи при открытии окна такая вот ошибка :

HTML5
1
Notice: Undefined index: btn_submit in /.../form.php on line 5

тоесть это в этой вот строке

PHP
1
if($_POST['btn_submit']){

сессию пробывал . сессия стартует. объявлять btn_submit пробывал так вот

PHP
1
$btn_submit="";

ничего не помогло. что можно ещё попробывать ?

Добавлено через 30 минут
вот весь код формы !

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
<h2 style="text-align:center;color:#e2372c;">«Заказать звонок»</h2>
<?php
    $msg_box = ""; // в этой переменной будем хранить сообщения формы
 
    if(isset ($_POST['btn_submit'])){
        $errors = array(); // контейнер для ошибок
        // проверяем корректность полей
        if($_POST['user_name'] == "")    $errors[] = "Поле 'Ваше имя' не заполнено!";
        if($_POST['user_email'] == "")   $errors[] = "Поле 'Ваш e-mail' не заполнено!";
        if($_POST['text_comment'] == "") $errors[] = "Поле 'Текст сообщения' не заполнено!";
 
        // если форма без ошибок
        if(empty($errors)){     
            // собираем данные из формы
            $message  = "Имя пользователя: " . $_POST['user_name'] . "<br/>";
            $message .= "E-mail пользователя: " . $_POST['user_email'] . "<br/>";
            $message .= "Текст письма: " . $_POST['text_comment'];       
            send_mail($message); // отправим письмо
            // выведем сообщение об успехе
            $msg_box = "<span style='color: green;'>Сообщение успешно отправлено!</span>";
        }else{
            // если были ошибки, то выводим их
            $msg_box = "";
            foreach($errors as $one_error){
                $msg_box .= "<span style='color: red;'>$one_error</span><br/>";
            }
        }
    }
    
    // функция отправки письма
    function send_mail($message){
        // почта, на которую придет письмо
        $mail_to = "admin@admin.ru"; 
        // тема письма
        $subject = "Письмо с обратной связи";
        
        // заголовок письма
        $headers= "MIME-Version: 1.0rn";
        $headers .= "Content-type: text/html; charset=utf-8rn"; // кодировка письма
        $headers .= "From: Тестовое письмо <no-reply@test.com>rn"; // от кого письмо
        
        // отправляем письмо 
        mail($mail_to, $subject, $message, $headers);
    }
?>
 
    <br/>
    <?= $msg_box; // вывод сообщений ?>
    <br/>
    <div class="formm_oobr">
    
    <form action="<?=$_SERVER['PHP_SELF'];?>" method="post" name="frm_feedback">
        <label>Ваше имя:</label><br/>
        <input type="text" name="user_name" value="<?=($_POST['user_name']) ? $_POST['user_name'] : ""; // сохраняем то, что вводили?>" /><br/>
        
        <label>Ваш e-mail:</label><br/>
        <input type="text" name="user_email" value="<?=($_POST['user_email']) ? $_POST['user_email'] : ""; // сохраняем то, что вводили?>" /><br/>
        
        <label>Текст сообщения:</label><br/>
        <textarea name="text_comment"><?=($_POST['text_comment']) ? $_POST['text_comment'] : ""; // сохраняем то, что вводили?></textarea>
        
        <br/>
        <input style="background-color: orange;"type="submit" value="Отправить" name="btn_submit" />
    </form>
    </div>
    
    <style>
    .formm_oobr{
    text-align:center;
    background:grey;
    }
    </style>



0



alexsamos33

669 / 640 / 335

Регистрация: 26.04.2014

Сообщений: 2,122

21.07.2015, 16:37

17

Цитата
Сообщение от morgusha
Посмотреть сообщение

PHP
1
if($_POST['btn_submit']){

Попробуй так

PHP
1
if(isset($_POST['btn_submit'])){



1



2 / 2 / 2

Регистрация: 21.05.2009

Сообщений: 294

21.07.2015, 16:39

18

да да .спасибо разобрался уже )



0



Enamy

3 / 2 / 0

Регистрация: 17.07.2015

Сообщений: 52

01.07.2017, 22:08

19

Доброго времени суток, похожая проблема, подскажите кто шарит. код вот такой(ну во всяком случае его кусок):

PHP
1
2
3
4
5
6
7
8
9
<?php
if (empty($_COOKIE["NI_user_name"]))
{ header("Location: /"); }
$NI_user_name = $_POST["username"];
$code = $_POST["code"];
if (empty($NI_user_name) or empty($code) or $code != "123")
{ $NI_user_name = $_COOKIE["NI_user_name"];}
$status = $_GET["status"];
?>

Все работало без проблем, сегодня захожу на свой сайт обновляю страницу, а там такая фигня:
Notice: Undefined index: username in /var/www/12345/data/www/site.ru/index.php on line 4

Notice: Undefined index: code in /var/www/12345/data/www/site.ru/index.php on line 5

Notice: Undefined index: status in /var/www/12345/data/www/site.ru/index.php on line 8

Нигде ничего не менял, по сути вообще ничего не делал, вчера пахало, а садня вот так…
Подскажите плз в чем может быть проблема?



0



Jewbacabra

Эксперт PHP

4845 / 3857 / 1599

Регистрация: 24.04.2014

Сообщений: 11,317

01.07.2017, 22:15

20

PHP
1
2
3
4
5
6
7
if (empty($_COOKIE["NI_user_name"]))
{ header("Location: /"); }
$NI_user_name = isset($_POST["username"]) ? $_POST["username"] : null;
$code = isset($_POST["code"]) ? $_POST["code"] : null;
if (empty($NI_user_name) or empty($code) or $code != "123")
{ $NI_user_name = $_COOKIE["NI_user_name"];}
$status = $_GET["status"];



0



I am working on a shopping cart in PHP and I seem to be getting this error «Notice: Undefined index:» in all sorts of places. The error refers to the similar bit of coding in different places. For example I have a piece of coding that calculates a package price with the months a user decides to subscribe. I have the following variables where the errors refers to:

    $month = $_POST['month'];
    $op = $_POST['op'];

The $month variable is the number the user inputs in a form, and the $op variable is different packages whose value are stored in a vriable that a user selects from radio buttons on the form.

I hope that is clear in some way.

Thank You

EDIT: Sorry forgot to mention that they do go away when the user submits the data. But when they first come to the page it displays this error. How I can get rid of it so it doesnt display it?

This is the code:

<?php
    $pack_1 = 3;
    $pack_2 = 6;
    $pack_3 = 9;
    $pack_4 = 12;
    $month = $_POST['month'];
    $op = $_POST['op'];
    $action = $_GET['action'];

    if ( $op == "Adopter" ) {
       $answer = $pack_1 * $month;
    }

    if ( $op == "Defender" ) {
      $answer = $pack_2 * $month;
    }

    if ( $op == "Protector" ) {
      $answer = $pack_3 * $month;
    }

    if ( $op == "Guardian" ) {
      $answer = $pack_4 * $month;
    }

    switch($action) {   
        case "adds":
            $_SESSION['cart'][$answer][$op];
            break;
    }
?>  

Ali Ben Messaoud's user avatar

asked Dec 16, 2010 at 21:53

PHPNOOB's user avatar

7

You’re attempting to access indicies within an array which are not set. This raises a notice.

Mostly likely you’re noticing it now because your code has moved to a server where php.ini has error_reporting set to include E_NOTICE. Either suppress notices by setting error_reporting to E_ALL & ~E_NOTICE (not recommended), or verify that the index exists before you attempt to access it:

$month = array_key_exists('month', $_POST) ? $_POST['month'] : null;

answered Dec 16, 2010 at 21:55

user229044's user avatar

user229044user229044

232k40 gold badges328 silver badges336 bronze badges

0

Are you putting the form processor in the same script as the form? If so, it is attempting to process before the post values are set (everything is executing).

Wrap all the processing code in a conditional that checks if the form has even been sent.

if(isset($_POST) && array_key_exists('name_of_your_submit_input',$_POST)){
//process form!
}else{
//show form, don't process yet!  You can break out of php here and render your form
}

Scripts execute from the top down when programming procedurally. You need to make sure the program knows to ignore the processing logic if the form has not been sent. Likewise, after processing, you should redirect to a success page with something like

header('Location:http://www.yourdomainhere.com/formsuccess.php');

I would not get into the habit of supressing notices or errors.

Please don’t take offense if I suggest that if you are having these problems and you are attempting to build a shopping cart, that you instead utilize a mature ecommerce solution like Magento or OsCommerce. A shopping cart is an interface that requires a high degree of security and if you are struggling with these kind of POST issues I can guarantee you will be fraught with headaches later. There are many great stable releases, some as simple as mere object models, that are available for download.

answered Dec 16, 2010 at 22:48

DeaconDesperado's user avatar

DeaconDesperadoDeaconDesperado

9,9279 gold badges47 silver badges77 bronze badges

5

Obviously $_POST[‘month’] is not set. Maybe there’s a mistake in your HTML form definition, or maybe something else is causing this. Whatever the cause, you should always check if a variable exists before using it, so

if(isset($_POST['month'])) {
   $month = $_POST['month'];
} else {
   //month is not set, do something about it, raise an error, throw an exception, orwahtever
}

answered Dec 16, 2010 at 21:57

Mchl's user avatar

MchlMchl

61.3k9 gold badges117 silver badges120 bronze badges

2

How I can get rid of it so it doesnt display it?

People here are trying to tell you that it’s unprofessional (and it is), but in your case you should simply add following to the start of your application:

 error_reporting(E_ERROR|E_WARNING);

This will disable E_NOTICE reporting. E_NOTICES are not errors, but notices, as the name says. You’d better check this stuff out and proof that undefined variables don’t lead to errors. But the common case is that they are just informal, and perfectly normal for handling form input with PHP.

Also, next time Google the error message first.

answered Dec 16, 2010 at 22:21

mario's user avatar

mariomario

144k20 gold badges237 silver badges291 bronze badges

3

This are just php notice messages,it seems php.ini configurations are not according vtiger standards,
you can disable this message by setting error reporting to E_ALL & ~E_NOTICE in php.ini
For example error_reporting(E_ALL&~E_NOTICE) and then restart apache to reflect changes.

SheetJS's user avatar

SheetJS

22.4k12 gold badges64 silver badges75 bronze badges

answered Sep 24, 2013 at 6:39

mohammad's user avatar

Try this:

$month = ( isset($_POST['month']) ) ? $_POST['month'] : '';

$op = ( isset($_POST['op']) ) ? $_POST['op'] : '';

Matt's user avatar

Matt

74.1k26 gold badges153 silver badges180 bronze badges

answered Jul 4, 2015 at 20:36

helderk's user avatar

helderkhelderk

1794 silver badges12 bronze badges

I think there could be no form elements by name ‘month’ or ‘op’. Can you verify if the HTML source (of the page which results in error when submitted) indeed has html elements by he above names

answered Dec 16, 2010 at 21:56

Chandu's user avatar

ChanduChandu

81.1k19 gold badges133 silver badges134 bronze badges

undefined index means the array key is not set , do a var_dump($_POST);die(); before the line that throws the error and see that you’re trying to get an array key that does not exist.

answered Dec 16, 2010 at 21:57

Poelinca Dorin's user avatar

Poelinca DorinPoelinca Dorin

9,5692 gold badges38 silver badges43 bronze badges

it just means that the array, $_POST in this case, doesn’t have an element named what is undefined in your error. PHP issues a NOTICE instead of a WARNING of FATAL ERROR.

You can either log less events via editing php.ini or deal with it by first checking if the items is indeed initialized already by using isset()

answered Dec 16, 2010 at 21:57

digitalfoo's user avatar

digitalfoodigitalfoo

1,16513 silver badges14 bronze badges

apparently, the GET and/or the POST variable(s) do(es) not exist. simply test if «isset». (pseudocode):

if(isset($_GET['action'];)) {$action = $_GET['action'];} else { RECOVER FROM ERROR CODE }

answered Feb 16, 2012 at 13:24

tony gil's user avatar

tony giltony gil

9,3866 gold badges76 silver badges100 bronze badges

Assure you have used method=»post» in the form you are sending data from.

answered Jan 20, 2015 at 19:55

sanjay mundhra's user avatar

0

<?php
if ($_POST['parse_var'] == "contactform"){


        $emailTitle = 'New Email From KumbhAqua';
        $yourEmail = 'xyz@gmail.com';

        $emailField = $_POST['email'];
        $nameField = $_POST['name'];
        $numberField = $_POST['number'];
        $messageField = $_POST['message'];  

        $body = <<<EOD
<br><hr><br>
    Email: $emailField <br /> 
    Name:  $nameField <br />
    Message: $messageField <br />


EOD;

    $headers = "from: $emailFieldrn";
    $headers .= "Content-type: text/htmmlrn";
    $success =  mail("$yourEmail", "$emailTitle", "$body", "$headers");

    $sent ="Thank You ! Your Message Has Been sent.";

}

?>


 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>:: KumbhAqua ::</title>

    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
        <link rel="stylesheet" href="style1.css" type="text/css">

</head>

<body>
    <div class="container">
        <div class="mainHeader">
            <div class="transbox">

              <p><font color="red" face="Matura MT Script Capitals" size="+5">Kumbh</font><font face="Matura MT Script Capitals" size="+5" color=                                                                           "skyblue">Aqua</font><font color="skyblue"> Solution</font></p>
              <p ><font color="skyblue">Your First Destination for Healthier Life.</font></p>
                    <nav><ul>
                        <li> <a href="KumbhAqua.html">Home</a></li>
                        <li> <a href="aboutus.html">KumbhAqua</a></li>
                        <li> <a href="services.html">Products</a></li>
                        <li  class="active"> <a href="contactus.php">ContactUs</a></li>

                    </ul></nav>
                </div>
            </div>
        </div>
                    <div class="main">
                        <div class="mainContent">
                            <h1 style="font-size:28px; letter-spacing: 16px; padding-top: 20px; text-align:center; text-transform: uppercase; color:                                    #a7a7a7"><font color="red">Kumbh</font><font color="skyblue">Aqua</font> Symbol of purity</h1>
                                <div class="contactForm">
                                    <form name="contactform" id="contactform" method="POST" action="contactus.php" >
                                        Name :<br />
                                        <input type="text" id="name" name="name" maxlength="30" size="30" value="<?php echo "nameField"; ?>" /><br />
                                         E-mail :<br />
                                        <input type="text" id="email" name="email" maxlength="50" size="50" value="<?php echo "emailField"; ?>" /><br />
                                         Phone Number :<br />
                                        <input type="text" id="number" name="number" value="<?php echo "numberField"; ?>"/><br />
                                         Message :<br />
                                        <textarea id="message" name="message" rows="10" cols="20" value="<?php echo "messageField"; ?>" >Some Text...                                        </textarea>
                                        <input type="reset" name="reset" id="reset" value="Reset">
                                        <input type="hidden" name="parse_var" id="parse_var" value="contactform" />
                                        <input type="submit" name="submit" id="submit" value="Submit"> <br />

                                        <?php  echo "$sent"; ?>

                                    </form>
                                        </div>  
                            <div class="contactFormAdd">

                                    <img src="Images/k1.JPG" width="200" height="200" title="Contactus" />
                                    <h1>KumbhAqua Solution,</h1>
                                    <strong><p>Saraswati Vihar Colony,<br />
                                    New Cantt Allahabad, 211001
                                    </p></strong>
                                    <b>DEEPAK SINGH &nbsp;&nbsp;&nbsp; RISHIRAJ SINGH<br />
                                    8687263459 &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;8115120821 </b>

                            </div>
                        </div>
                    </div>

                            <footer class="mainFooter">
                            <nav>
                            <ul>
                                <li> <a href="KumbhAqua.html"> Home </a></li>
                                <li> <a href="aboutus.html"> KumbhAqua </a></li>
                                <li> <a href="services.html"> Products</a></li>
                                <li class="active"> <a href="contactus.php"> ContactUs </a></li>
                            </ul>
                                <div class="r_footer">


          Copyright &copy; 2015 <a href="#" Title="KumbhAqua">KumbhAqua.in</a> &nbsp;&nbsp;&nbsp;&nbsp; Created and Maintained By-   <a title="Randheer                                                                                                                                                                                                                             Pratap Singh "href="#">RandheerSingh</a>                                                                            </div>  
                            </nav>
                            </footer>
    </body>
</html> 

    enter code here

answered Apr 1, 2016 at 6:32

RandheerPratapSingh's user avatar

1

I did define all the variables that was the first thing I checked. I know it’s not required in PHP, but old habits die hard. Then I sanatized the info like this:

if ($_SERVER["REQUEST_METHOD"] == "POST") {
  if (empty($_POST["name1"])) {
    $name1Err = " First Name is a required field.";
  } else {
      $name1 = test_input($_POST["name1"]);
    // check if name only contains letters and whitespace
      if (!preg_match("/^[a-zA-Z ]*$/",$name1)) {
      $name1Err = "Only letters and white space allowed";

of course test_input is another function that does a trim, strilashes, and htmlspecialchars. I think the input is pretty well sanitized. Not trying to be rude just showing what I did. When it came to the email I also checked to see if it was the proper format. I think the real answer is in the fact that some variables are local and some are global. I have got it working without errors for now so, while I’m extremely busy right now I’ll accept shutting off errors as my answer. Don’t worry I’ll figure it out it’s just not vitally important right now!

answered May 1, 2017 at 6:44

Douglas Michalek's user avatar

Make sure the tags correctly closed. And the closing tag will not include inside a loop. (if it contains in a looping structure).

answered Sep 26, 2017 at 3:31

Ajmal Tk's user avatar

Ajmal TkAjmal Tk

1531 silver badge4 bronze badges

3


Photo from Unsplash

When accessing an array in PHP, you may see a notice message that says “undefined index” as follows:

<?php

$my_arr = [
    "name" => "Nathan",
];

echo $my_arr["age"];

// Notice: Undefined index: age on line 7

When accessing the PHP page from the browser, the following notice message appears:

The Notice: Undefined index message means that the index key you use to access an array’s value doesn’t exist.

In the above example, the array $my_arr only has the name index key. The age index is undefined.

To solve this notice message, you need to make sure that the index is defined inside the array.

The easiest way to do so is by calling the isset() function on the array index before accessing it.

Consider the example below:

<?php

$my_arr = [
    "name" => "Nathan",
];

// 👇 call isset to check for the age value
if (isset($my_arr["age"])) {
    echo $my_arr["age"];
} else {
    echo "age is not defined in the array!";
}

The isset() function in PHP will make sure that the age index is defined in $my_arr.

Combine it with an if condition to create a conditional block that runs when the array index is defined.

Alternatively, you can also use the null coalescing operator to provide a fallback value when the index is undefined like this:

<?php

$my_arr = [
    "name" => "Nathan",
];

echo $my_arr["age"] ?? 29;

// 👆 prints 29

Because the age index is undefined in the example above, the integer 29 is will be printed by the echo function.

The null coalescing operator is useful when you have a fallback value in case the first value is undefined.

Both isset and null coalescing operator also works when you are accessing form values with $_GET and $_POST global variable.

Suppose you’re accessing a PHP page with the following GET parameters:

index.php?name=nathan&age=22

The following code checks if you have a GET parameter named age:

if (isset($_GET["age"])) {
    echo "I am {$_GET["age"]} years old.";
} else {
    echo "age is not defined in the array!";
}

Or if you want to use the null coalescing operator:

// 👇 place the value in a variable
$age = $_GET["age"] ?? 27;

// 👇 call the variable inside echo
echo "I am $age years old.";

You can use the same methods with the $_POST variable.

Remove the undefined index notice

While the notice message is useful, you may want to turn it off in production environment so your visitors won’t see it.

When you don’t want the undefined index notice to appear, you can remove it by setting the error_reporting() function at the top of your PHP page.

Set it as follows:

<?php
error_reporting(E_ALL ^ E_NOTICE);

Now your PHP compiler will not show any notice messages, but other error messages will still be shown.

The error_reporting() function works only for the page where you call the function.

To make it work for all of your PHP pages, you need to set the configuration in your php.ini file as follows:

error_reporting = E_ALL & ~E_NOTICE

By setting the configuration in php.ini file, all pages will not show notice messages.

Conclusion

Now you’ve learned what is an undefined index notice in PHP and how to resolve the message.

You can use the isset() function or null coalescing operator to deal with an undefined index in PHP.

You can also remove the notice message by setting the error_reporting parameter in php.ini file, or calling the error_reporting() function.

У меня не выводиться новость на странице. Выводиться ошибка

Notice: Undefined index: id in D:OpenServerdomainsmvc-oopmvc-oopwwwcontrollersNews.php on line 21
Notice: Undefined offset: 0 in D:OpenServerdomainsmvc-oopmvc-oopwwwclassesAbstractModel.php on line 40
Warning: Invalid argument supplied for foreach() in D:OpenServerdomainsmvc-oopmvc-oopwwwviewsnewsone.php on line 1

В controllers/News.php есть функция actionOne()

<?php

namespace ApplicationControllers;

use ApplicationModelsNews as NewsModel;

class News{

    public function actionAll()
    {

        $news = NewsModel::findAll();
        $view = new View();
        $view->items = $news;
        $view->display('news/all.php');

    }

    public function actionOne()
    {
        $id = $_GET['id'];
        $newsById = NewsModel::findOneByPk($id);
        $view = new View();
        $view->items = $newsById;
        $view->display('news/one.php');
    }

}

А в AbstractModel есть:

public static function findOneByPk($id)
    {
        $class = get_called_class();
        $sql = 'SELECT * FROM ' . static::$table . ' WHERE id=:id';
        $db = new DB();
        $db->setClassName($class);
        return $db->query($sql, [':id' => $id])[0];
    }

а в самом view/one.php

<?php foreach ($items as $item): ?>
    <h1><?php echo $item->title; ?></h1>
    <div><?php echo $item->author; ?></div>
<?php endforeach; ?>

Не пойму что делаю не так, почему у меня не показывает новость по id?

  • Ошибка undefined array key php
  • Ошибка unfortunately has stopped
  • Ошибка uncaught typeerror is not a function
  • Ошибка unexpected store extension
  • Ошибка unb на стиральной машине леран