#41540 [Opn->Bgs]: A probable solution for the Mysterious Warning Message.
| From: | tony2001@php.net | Date: | Wed, 30 May 2007 12:06:03 +0000 |
| Subject: | #41540 [Opn->Bgs]: A probable solution for the Mysterious Warning Message. | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-113191@lists.php.net to get a copy of this message | ||
ID: 41540
Updated by: tony2001@php.net
Reported By: essem76 at yahoo dot com
-Status: Open
+Status: Bogus
Bug Type: Session related
Operating System: Windows Server 2000
PHP Version: 5.2.2
New Comment:
Sorry, but your problem does not imply a bug in PHP itself. For a
list of more appropriate places to ask for help using PHP, please
visit http://www.php.net/support.php as this bug system
is not the
appropriate forum for asking support questions. Due to the volume
of reports we can not explain in detail here why your report is not
a bug. The support channels will be able to provide an explanation
for you.
Thank you for your interest in PHP.
Previous Comments:
------------------------------------------------------------------------
[2007-05-30 11:53:06] essem76 at yahoo dot com
Description:
------------
If that iritating warning occurs then check the mistyped PHP variables
assigned to session variable.
I faced the same problem and half an hour after getting on my nerves I
found the typing mistake and the nasty warning disappeared.
As there aren't many articles when I googled, I thought this might be
help someone..
Reproduce code:
---------------
<?php
session_start();
function checkArrEmpty($arr){
$flag = false;
if(is_array($arr)) {
foreach($arr as $val){
if($val == ""){
$flag = true; break;
}
}
}
return $flag;
}
if(!$_SESSION['blnFormDataValid']){
$arrUserData = $_SESSION['arrFormData'];
}
if(isset($_POST['btnAdd'])){
$arrFormData = $_POST;
if(!checkArrEmpty($arrFormData)){
$_SESSION['blnFormDataValid'] = true;
$_SESSION['arrFormData'] = ""; //header("location:
XTemp.php"); //exit();
}
else{//THE following nasty variable mistyped (look for small case d in
data) is creating a hell.
//Simply replace $arrFormdata to $arrFormData and see the
difference.
$_SESSION['arrFormData'] = $arrFormdata;
$_SESSION['blnFormDataValid'] = false;
}
}
?>
<form id="frmUser" method="post" action="<?php echo
$_SERVER['PHP_SELF']; ?>">
<label>First Name: </label><input type="text" name="fName"
value="<?php echo $arrUserData['fName']; ?>" /><br/>
<label>Last Name: </label><input type="text" name="lName"
value="<?php
echo $arrUserData['lName']; ?>" /><br/>
<input type="submit" name="btnAdd" value="add" />
</form>
Expected result:
----------------
The code is expected to check the server side validations of the form
inputs failing which will generate the same form but with the partially
filled values this time.
Actual result:
--------------
The following warning is displayed even in PHP 5.2.0:-
Warning: Unknown: Your script possibly relies on a session side-effect
which existed until PHP 4.2.3. Please be advised that the session
extension does not consider global variables as a source of data, unless
register_globals is enabled. You can disable this functionality and this
warning by setting session.bug_compat_42 or session.bug_compat_warn to
off, respectively. in Unknown on line 0
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=41540&edit=1