473,788 Members | 2,735 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Notice: Undefined index...

I have since recently turned up my error reporting on a production site
to E_ALL to ensure I am using 'best practices' when writing out code.

So far it has helped me discipline myself with initializing my
variables. I am running into a problem with my $_POST array though.

I am self-referencing a form page for processing, so at the beginning I
am looking for the existence of certain $_POST variables for processing.

I am setting an 'action' field to 'login' for example.

I have done this on several occasions with no problems and even in this
case there is no fatal error. I am however receiving a NOTICE that my
$_POST variables I am looking at is undeclared.

"Notice: Undefined index: action"

I cannot openly see a way to declare the $_POST['action'] prior to
checking it since it is set by the server when the page is loaded.

Here is my actual code snippet:

if($_POST['action'] === 'login') {
//process data//
}

Will I need to learn to ignore this specific error or is there something
I am not seeing?

Thanks
Scotty
Aug 17 '08 #1
10 3272
On Sat, 16 Aug 2008 21:02:05 -0700, FutureShock <fu*********@at t.net>
wrote in <Zn************ *****@flpi143.f fdc.sbc.com>:

[snip]
>"Notice: Undefined index: action"

I cannot openly see a way to declare the $_POST['action'] prior to
checking it since it is set by the server when the page is loaded.

Here is my actual code snippet:

if($_POST['action'] === 'login') {
//process data//
}
Use the function isset():

$action = isset($_POST['action']) ? $_POST['action'] : '';
if ($action == 'login')
{
// process data
}

Now you have a declared variable that will have either the value
posted or a default value. You can use a different default value
depending on the type the variable holds (e.g. 0 or -1 if numeric).
--
Charles Calvert | Software Design/Development
Celtic Wolf, Inc. | Project Management
http://www.celticwolf.com/ | Technical Writing
(703) 580-0210 | Research
Aug 17 '08 #2
Charles Calvert wrote:
On Sat, 16 Aug 2008 21:02:05 -0700, FutureShock <fu*********@at t.net>
wrote in <Zn************ *****@flpi143.f fdc.sbc.com>:

[snip]
>"Notice: Undefined index: action"

I cannot openly see a way to declare the $_POST['action'] prior to
checking it since it is set by the server when the page is loaded.

Here is my actual code snippet:

if($_POST['action'] === 'login') {
//process data//
}

Use the function isset():

$action = isset($_POST['action']) ? $_POST['action'] : '';
if ($action == 'login')
{
// process data
}

Now you have a declared variable that will have either the value
posted or a default value. You can use a different default value
depending on the type the variable holds (e.g. 0 or -1 if numeric).
BINGO!!!

* writes this one down in notebook.

Thanks very much for your time.

So as long as I am not trying to look at the value of it, it won't
complain about it.

Scotty

Aug 17 '08 #3
FutureShock nous disait :
if($_POST['action'] === 'login') {
//process data//
}

Will I need to learn to ignore this specific error or is there something
I am not seeing?
I'm always starting by :
if ($GLOBALS['_SERVER']['HTTP_METHOD'] == "POST") {
// Do stuff
header("Locatio n: self.php");
exit();
}

This avoids your problem of undef item in $_POST *and also* forces the
user to use GET for viewing a form. Therefore a page refresh NEVER
re-posts stuff.

Cheers,

Nicolas

--
Nicolas - 06 20 71 62 34 - http://nicolas.bouthors.org/album/
Aug 17 '08 #4
Nicolas Bouthors wrote:
FutureShock nous disait :
>if($_POST['action'] === 'login') {
//process data//
}

Will I need to learn to ignore this specific error or is there something
I am not seeing?

I'm always starting by :
if ($GLOBALS['_SERVER']['HTTP_METHOD'] == "POST") {
// Do stuff
header("Locatio n: self.php");
exit();
}

This avoids your problem of undef item in $_POST *and also* forces the
user to use GET for viewing a form. Therefore a page refresh NEVER
re-posts stuff.

Cheers,

Nicolas
Completely worthless. It doesn't allow you to process information
posted to the page and display them, for instance.

--
=============== ===
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
js*******@attgl obal.net
=============== ===

Aug 17 '08 #5
Jerry Stuckle nous disait :
Completely worthless. It doesn't allow you to process information
posted to the page and display them, for instance.
Assuming the rest of the page starts with a mysql_fetch it does ;)
The intent is to always post to change data, and to always get to view
data.

My opinion anyway, glad you shared yours,

Nico
--
Nicolas - 06 20 71 62 34 - http://nicolas.bouthors.org/album/
Aug 17 '08 #6
Nicolas Bouthors wrote:
Jerry Stuckle nous disait :
>Completely worthless. It doesn't allow you to process information
posted to the page and display them, for instance.

Assuming the rest of the page starts with a mysql_fetch it does ;)
The intent is to always post to change data, and to always get to view
data.

My opinion anyway, glad you shared yours,

Nico

Not at all. For instance, how are you going to post information back to
the page, validate it, and if it's incorrect, display the data with an
error message?

--
=============== ===
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
js*******@attgl obal.net
=============== ===

Aug 17 '08 #7
On 2008-08-17, Jerry Stuckle <js*******@attg lobal.netwrote:
Nicolas Bouthors wrote:
>Jerry Stuckle nous disait :
>>Completely worthless. It doesn't allow you to process information
posted to the page and display them, for instance.

Assuming the rest of the page starts with a mysql_fetch it does ;)
The intent is to always post to change data, and to always get to view
data.

My opinion anyway, glad you shared yours,

Nico


Not at all. For instance, how are you going to post information back to
the page, validate it, and if it's incorrect, display the data with an
error message?
Save the invalid data in $_SESSION and redirect back to the original page
with $_GET["err"] set or something, instead of redirecting to the success
page.

--
Andrew Poelstra ap*******@wpsof tware.com
To email me, use the above email addresss with .com set to .net
Aug 17 '08 #8
Andrew Poelstra wrote:
On 2008-08-17, Jerry Stuckle <js*******@attg lobal.netwrote:
>Nicolas Bouthors wrote:
>>Jerry Stuckle nous disait :
Completely worthless. It doesn't allow you to process information
posted to the page and display them, for instance.
Assuming the rest of the page starts with a mysql_fetch it does ;)
The intent is to always post to change data, and to always get to view
data.

My opinion anyway, glad you shared yours,

Nico

Not at all. For instance, how are you going to post information back to
the page, validate it, and if it's incorrect, display the data with an
error message?

Save the invalid data in $_SESSION and redirect back to the original page
with $_GET["err"] set or something, instead of redirecting to the success
page.
This is probably one of the worst ways to do it. Not only does it
require extra processing on both the server the the client, you now have
to keep track of additional data within the $_SESSION. Additionally,
you're doing the data entry on one page and validation on another -
which means if there is any change in the form, you have to update (at
least) two pages, instead of just one.

It means a lot of completely unnecessary work for both the computers and
the programmer.

Much cleaner is to post back to the same page, validate the data and if
it's good, do whatever you need with the data. As a final step (and
only a final step), just redirect to a "thank you" page or whatever else
is appropriate.

That way you're not doing unnecessary redirects for error handling and
you keep everything in one file. Much cleaner.
--
=============== ===
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
js*******@attgl obal.net
=============== ===

Aug 17 '08 #9
..oO(Nicolas Bouthors)
>FutureShock nous disait :
>if($_POST['action'] === 'login') {
//process data//
}

Will I need to learn to ignore this specific error or is there something
I am not seeing?

I'm always starting by :
if ($GLOBALS['_SERVER']['HTTP_METHOD'] == "POST") {
// Do stuff
header("Locatio n: self.php");
exit();
}

This avoids your problem of undef item in $_POST *and also* forces the
user to use GET for viewing a form. Therefore a page refresh NEVER
re-posts stuff.
Ugly, too complicated and even violating the HTTP RFC. The correct way
is to check that the POST values exist before you want to use them.

Micha
Aug 17 '08 #10

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

6
20855
by: jsgoodrich | last post by:
I am looking for some help if anyone can lend a hand. I have a simple php website that displays a table from my mysql database. To prep for my MCSE I moved my home server to Windows 2003 Standard, I installed mysql and php 5 to run some of my databases and websites. Under Linux the site worked fine, under windows I keep getting Notice Undefined Index error on line 67
3
5504
by: number1yan | last post by:
Can anyone help me, i am creating a website and am using a php script that recomends the website to other people. I keep getting the same error and can not work out why. The error is: Notice: Undefined index: FriendName in D:\Yan\Over_8\SendEmail.php on line 4, Notice: Undefined index: FriendEmail in D:\Yan\Over_8\SendEmail.php on line 5, Notice: Undefined index: Name in D:\Yan\Over_8\SendEmail.php on line 6, Notice: Undefined index: Email...
2
10634
by: Reggie | last post by:
am trying to create a a upload file.am uploading files ok but i recieve this message. Notice: Undefined variable: uploaded_size in /home/fhlinux169/c/ clashoff.co.uk/user/htdocs/upload.php on line 7 Notice: Undefined variable: uploaded_type in /home/fhlinux169/c/ clashoff.co.uk/user/htdocs/upload.php on line 14 Notice: Undefined index: uploadedfile in /home/fhlinux169/c/
3
3876
by: sickboy | last post by:
$channels=$_GET; if (empty($channels)) { $channels='blank'; } changechannels($channels); $theatre=$_GET; if (empty($theatre)) { $theatre='splash'; } changetheatre($theatre); $info=$_GET; if (empty($info)) { $info='noinfo'; } changeinfo($info); Hey everyone, I keep getting an error regarding the above code. These are the errors: Notice: Undefined index: channels in /home/forcefed/public_html/index.php on line 5
5
7366
by: Pseudonyme | last post by:
Dear All : Ever had an httpd error_log bigger than the httpd access log ? We are using Linux-Apache-Fedora-Httpd 2006 configuration. The PHP lines code that lead too tons of errors are : $http_ref= $HTTP_REFERER; $prog = $_COOKIE;
1
2745
by: francsutherland | last post by:
Notice: Undefined index: send in D:\Domains\workingdata.co.uk\wwwroot\contact_text.php on line 7 Hi, I've started getting this error in the contact page form of my website. The web hosting company did an upgrade and it seems to coincide with that. The Notice is at the top of the page, but the rest of the page displays normally and form still works. I don't get the Notice when I test the page on the local Apache server in the XAMPP...
11
6760
by: stealthmode666 | last post by:
New to .php so need script help. I want to know how to stop this being displayed when I click submit. Notice: Undefined index: homeowner in E:\domains\r\...\user\htdocs\...\form.php on line 166 I have an array which takes filled in fields and blank fields and sends them via email. I DON'T need the user to fill in all the fields which is resulting in this notice on every field that is not filled in. I do need the fields to be sent tho'...
4
2908
by: complearn | last post by:
Do you know why I got these errors for status_bar.php in some webhost, but work perfectly on other webhost? Whats wrong? here are the codes from line 18, our webhost is running php5. $dmg = ($_GET == 0 || $_GET == '22') ? $_GET : $_GET+$_GET;
2
4588
by: Smellydog | last post by:
I'm having a strange issue with PHP version 5.2.8 running on Windows Vista with Lighttpd. I receive a Notice that says the following: Notice</b>: Undefined index: name in <b>E:\LightTPD\htdocs\go\go\form.php</b> on line <b>160</b> Here is the odd part. No matter what I do, no matter how many times I change the script, add lines, remove lines, the notice keeps referencing the same file and line number. Even when I comment out the line,...
0
9656
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look ! Part I. Meaning of...
0
9498
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
10373
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
1
10118
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
9969
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
0
8995
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
0
6750
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
1
4074
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
2
3677
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.