ID:               22575
 Updated by:       [EMAIL PROTECTED]
 Reported By:      public at hverdag dot dk
-Status:           Open
+Status:           Feedback
-Bug Type:         Variables related
+Bug Type:         Session related
 Operating System: Windows 2000
 PHP Version:      4.3.1
 New Comment:

It's most likely caused by sessions.
Try adding 'error_reporting(E_ALL);' as first line
in the script and see what errors you get.



Previous Comments:
------------------------------------------------------------------------

[2003-03-06 14:48:15] public at hverdag dot dk

I have one function (see it below) where I pass 2 arguments. But
sometimes (yes, only sometimes!) when inside the function myfield has
the same value as myvalue instead of it's own value. In other words, it
simply changes the values of the arguments!

I have a long script where I at one point have a line like this several
times to build up my SQL statement, calling this function:

  $enterSQL .= field_to_sql('category', 'autovalue');

But when I check the value of these two arguments inside the function
both arguments have the value 'autovalue'!

This happens inside my long script and it can happen usually two times
(meaning: after a page reload) but the third time (second reload) the
problem is gone and script executes as expected! And if I try to call
this function from another simple page the problem never occurs.

I'm using sessions but I cannot see how that should affect any of this
(meaning, page reload should not affect anything).

Here is the function (which is located in an included file in the above
mentioned script):

  function field_to_sql($myfield, $myvalue) {
        echo "<br>+". $myfield . "+". $myvalue ."+";
        #this outputs wrong value for the myfield variable!
        if ($myvalue == 'autovalue') {
                $myvalue_var_name = 'value_' . $myfield;
                global $$myvalue_var_name;
                if (!isset($$myvalue_var_name)) {                       echo 'Warning, 
variable is not
set';
                }
                $myvalue = $$myvalue_var_name;
        }
        $myvalue = str_replace("'", "\'", $myvalue);
        if ($myvalue == '') {
                return "`$myfield` = null, ";
        } else {
                return "`$myfield` = '$myvalue', ";
        }
  }


------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=22575&edit=1

Reply via email to