ID:               21771
 Comment by:       [EMAIL PROTECTED]
 Reported By:      [EMAIL PROTECTED]
 Status:           Open
 Bug Type:         Variables related
 Operating System: linux kernel 2.4.18
 PHP Version:      4.3.0
 New Comment:

Thanks for checking it out. Can you please close or "bogusify" the bug,
then (I can't, since I'm neither the submitter nor a PHP developer)?

As a last note: probably you will need to use something like

  setlocale(LC_CTYPE,"tr_TR") 

if you use strtoupper("i") etc., because otherwise PHP cannot know that
you want to get an uppercase I with dot.


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

[2003-01-30 03:30:53] [EMAIL PROTECTED]

Hmm...
Indeed, this seems to be a apache problem.

I took a look at the locale definition files for my OS (RedHat 7.2) and
they seem to contain correct definitions of uppercase and lowercase
letters (and their correspondance).

when

register_globals=on
LC_CTYPE=tr_TR

script.php?ID=some_value works perfectly.

with the same settings, a var_dump($GLOBALS) gives:

  ["HTTP_ACCEPT_ENCODİNG"]=>
  string(38) "deflate, gzip, x-gzip, identity, *;q=0"
  ["HTTP_CONNECTİON"]=>
  string(14) "Keep-Alive, TE"
  ["HTTP_COOKİE"]=>
  string(42) "PHPSESSID=4035cdd7974d97ccdcd79f9f711299c1"
  ["HTTP_COOKİE2"]=>
  string(10) "$Version=1"

Note the İ in the variable names. However, names of variables such as
SCRIPT_FILENAME, SERVER_ADMIN, or SERVER_SIGNATURE are correct, i.e.
they contain an I and not an İ.

In fact, as much as I can see, variables with this problem are only
those containing "COOKIE", "ENCODING", and "CONNECTION" words (whether
they are global or indices in the _SERVER or HTTP_SERVER_VARS). The
other variables containing "I" are correct.

So my original problem was actually: Since the register_globals off and
since apache did not pass cookies due to the incorrect variable name
(when it started with LC_CTYPE=tr_TR), my session script didn't work.

The same (or similar) problem occurs with mod_mime_magic.so, when
enabled, apache does not start at all, giving the error message
"Invalid command 'MIMEMagicFile', perhaps mis-spelled or...".

So,

unset LC_ALL
LC_CTYPE=C    (or LC_CTYPE=en_US)
export LC_CTYPE

works (but you should do apachectl stop and apachectl start, instead of
apachectl restart).

Since this is probably a problem at the server side itself, a
setlocale(LC_ALL,"en_US") in the php script itself does not work (a
friend of mine had recommended trying, I gave a shot).

Thank you all for your help.

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

[2003-01-29 12:21:06] [EMAIL PROTECTED]

Tufan, can you please (after answering Sniper's questions) try and put
the following lines into your apachectl:

unset LC_ALL
LC_CTYPE=C
export LC_CTYPE

See my comments on http://bugs.php.net/bug.php?id=21919 (in short:
perhaps this is Apache's problem, because it happens also with
mod_perl).

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

[2003-01-28 23:19:43] [EMAIL PROTECTED]

And are the names mangled in $GLOBALS too?
try:

<?php var_dump($GLOBALS); ?>

And check the output for the _COOKIE / _SESSION indexes.


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

[2003-01-21 19:10:33] [EMAIL PROTECTED]

restore mangled summary and OS entries.


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

[2003-01-21 11:26:21] [EMAIL PROTECTED]

strange ... this was fixed for functions constants
but should not affect variables, as these are 
case insensitive (so no conversions take place
while resolving them)
or is there something different going on with
the super-globals?

does this affect $_SESSION only? what if you have
register_globals enabled and try to pass something
like "...script.php?ID=test"? do you have $ID or
$İD set in your script then?

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

The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
    http://bugs.php.net/21771

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

Reply via email to