Re: Re: error checking a null array

From: Date: Mon, 01 Aug 2005 21:09:45 +0000
Subject: Re: Re: error checking a null array
References: 1 2 3 4 5 6 7  Groups: php.general 
Request: Send a blank email to php-general+get-219796@lists.php.net to get a copy of this message
Jack Jackson wrote:
AAarg. Okay, thanks to all of you I've decided that any field name I need to see will be sent to $_SESSION['required_fields'] and basta. Then after the submit button is pressed, I am doing this: reset($_SESSION['required_fields']);
reset is not required when using foreach. and given that you have probably not looped that item
foreach ($_SESSION['required_fields'] as $fieldname)
    {
       if (!isset($_POST[$fieldname]) || empty($_POST[$fieldname]))
        {
        $message[$fieldname]=1;
        include_once(QUESTIONS . 'q.inc');
        }
    }//error check
you may be getting into trouble because of php's typecasting - try using fielnames that are strings that do not auto cast to integers (which can be used as array keys for indexed arrays) e.g. "cb1" instead of "1"
And this is *almost* working: it seems to crap out after the first loop through the $_SESSION['required_field'] array. The array says: Array ( [required_fields] => Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 1 [5] => 2 [6] => 3 [7] => 4 [8] => 1 [9] => 2 [10] => 3 [11] => 4 ) ) $_POST says: Array ( [action] => [process]process [1] => [2] => 68 [3] => [4] => )
that does not look like valid output from var_dump() neither does the output you show for $_SESSION['required_field'].
So you see, there's an answer specified for the value of question [2]. But $messages says only: $message: array(1) { [1]=> int(1) } Why is it dying after the first loop through?
is it? (use print_r() or var_dump() inside the loop to see what is happening) NOT SO SUBTLE HINT: USE echo, print_r() and var_dump() until either you fingers or your eyes start to bleed ;-) if you still haven't figured it out by then it's time to see a doctor -
Thanks in advance


« previous php.general (#219796) next »