PHP 4.0 Bug #3763: variable type-array error
| From: | kochin at soback dot kornet dot net | Date: | Wed, 08 Mar 2000 12:46:44 +0000 |
| Subject: | PHP 4.0 Bug #3763: variable type-array error | ||
| Groups: | php.dev | ||
| Request: | Send a blank email to php-dev+get-16532@lists.php.net to get a copy of this message | ||
From: kochin@soback.kornet.net
Operating system: redhat 6.1
PHP version: 4.0 Beta 3
PHP Bug Type: Performance problem
Bug description: variable type-array error
I am running apache1.3.10 and mysql &php-4.0b3
any html pages are good.
but any html pages of the same mysql database presenet error.
examples;
Warning: Use of undefined constant use_auth - assumed 'use_auth' in
/usr/local/apache/htdocs/bbs/dboard.html on line 54
Warning: Use of undefined constant head - assumed 'head' in
/usr/local/apache/htdocs/bbs/dboard.html on line 61
Warning: Use of undefined constant head - assumed 'head' in
/usr/local/apache/htdocs/bbs/dboard.html on line 61
Warning: Use of undefined constant foot - assumed 'foot' in
/usr/local/apache/htdocs/bbs/dboard.html on line 62
Warning: Use of undefined constant foot - assumed 'foot' in
/usr/local/apache/htdocs/bbs/dboard.html on line 62
.....
*(source code)
......
$que_bbs="select * from bbs_info where code='$code'" ;
$result=mysql_query($que_bbs,$connect );
$bbs=mysql_fetch_array($result);
if($bbs[use_auth] && !isset($PHP_AUTH_USER))
{
echo(" <meta http-equiv='Refresh' content='0;
URL=./auboard.html?code=$code'>
");
exit ;
}
$bbs[head] = stripslashes($bbs[head]);
$bbs[foot] = stripslashes($bbs[foot]);
echo("$bbs[head]
<BR>
<center>");
......
that is, array type of variable is incorrect.
php.ini
[root@history lib]# more php.ini
[PHP]
;;;;;;;;;;;;;;;;;;;
; About this file ;
;;;;;;;;;;;;;;;;;;;
; This file controls many aspects of PHP's behavior. In order for PHP to
; read it, it must be named 'php.ini'. PHP looks for it in the current
; working directory, in the path designated by the environment variable
; PHPRC, and in the path that was defined in compile time (in that order).
; Under Windows, the compile-time path is the Windows directory. The
; path in which the php.ini file is looked for can be overriden using
; the -c argument in command line mode.
;
; The syntax of the file is extremely simple. Whitespace and Lines
; beginning with a semicolon are silently ignored (as you probably guessed).
; Section headers (e.g. [Foo]) are also silently ignored, even though
; they might mean something in the future (they probably won't).
;
; Options are specified using the syntax key = value or key = "complex value".
; Key names are *case sensitive*. foo = bar is different from FOO = bar.
; 'value' can be any number, word or keyword (keywords are On, Off, True,
; False, Yes and No, and are case insensitive).
--More--(7%)
; False, Yes and No, and are case insensitive).
; 'complex value' can be just about anything, expcept for " and a newline
; Boolean flags can be turned on using the values 1, On, True or Yes.
; They can be turned off using the values 0, Off, False or No.
;
; All the values in the php.ini-dist file correspond to the builtin
; defaults (that is, if no php.ini is used, or if you delete these lines,
; the builtin defaults will be identical).
;;;;;;;;;;;;;;;;;;;;
; Language Options ;
;;;;;;;;;;;;;;;;;;;;
engine = On ; Enable the PHP scripting language engi
ne under Apache
short_open_tag = On ; allow the <? tag. otherwise, only <?php and <
script> tags are recognized.
asp_tags = Off ; allow ASP-style <% %> tags
precision = 14 ; number of significant digits displayed
in floating point numbers
y2k_compliance = Off ; whether to be year 2000 compliant (will cause
problems with non y2k compliant browsers)
--More--(13%)
problems with non y2k compliant browsers)
output_buffering = Off ; Output buffering allows you to send header lin
es (including cookies)
; even after you send bo
dy content, in the price of slowing PHP's
; output layer a bit.
; You can enable output
buffering by in runtime by calling the output
; buffering functions, o
r enable output buffering for all files
; by setting this direct
ive to On.
; Safe Mode
safe_mode = Off
safe_mode_exec_dir =
; Colors for Syntax Highlighting mode. Anything that's acceptable in <font colo
r=???> would work.
highlight.string = #DD0000
highlight.comment = #FF8000
highlight.keyword = #007700
highlight.bg = #FFFFFF
highlight.default = #0000BB
--More--(17%)
highlight.default = #0000BB
highlight.html = #000000
; Misc
expose_php = On ; Decides whether PHP may expose the fac
t that it is installed on the
; server (e.g., by adding its si
gnature to the Web server header).
; It is no security threat in an
y way, but it makes it possible
; to determine whether you use P
HP on your server or not.
;;;;;;;;;;;;;;;;;;;
; Resource Limits ;
;;;;;;;;;;;;;;;;;;;
max_execution_time = 30 ; Maximum execution time of each script, in seconds
(UNIX only)
memory_limit = 8388608 ; Maximum amount of memory a script may consume
(8MB)
--More--(21%)
(8MB)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Error handling and logging ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; error_reporting is a bit-field. Add each number up to get desired error repor
ting level
; 1 = Normal errors
; 2 = Normal warnings
; 4 = Parser errors
; 8 = Notices - warnings you can ignore, but sometimes imply a bug (e.g., using
an uninitialized variable)
error_reporting = 7
display_errors = On ; Print out errors (as a part of the HTML script
)
log_errors = Off ; Log errors into a log file (server-spe
cific log, stderr, or error_log (below))
track_errors = Off ; Store the last error/warning message in $php_e
rrormsg (boolean)
;error_prepend_string = "<font color=ff0000>" ; string to output before an err
or message
;error_append_string = "</font>" ; string to output after an erro
--More--(27%)
;error_append_string = "</font>" ; string to output after an erro
r message
;error_log = filename ; log errors to specified file
;error_log = syslog ; log errors to syslog (Event Log on NT,
not valid in Windows 95)
warn_plus_overloading = Off ; warn if the + operator is used
with strings
;;;;;;;;;;;;;;;;;
; Data Handling ;
;;;;;;;;;;;;;;;;;
gpc_order = "GPC" ; Order of evaluation of GET/POS
T/Cookie data. Later values override
; earlier values
(e.g., by default, POST variables override GET variables,
; and Cookie var
iables override both POST and GET variables).
gpc_globals = On ; Whether or not to defi
ne GET/POST/Cookie variables in the global
; scope. You ma
y want to turn this off if you don't want
; to clutter you
--More--(31%)
; to clutter you
r scripts' global scope with user data. This makes
; most sense whe
n coupled with track_vars - in which case you can
; access all of
the GPC variables through the $HTTP_GET_VARS[],
; $HTTP_POST_VAR
S[] and $HTTP_COOKIE_VARS[] variables.
track_vars = On ; enable $HTTP_GET_VARS[
], $HTTP_POST_VARS[] and $HTTP_COOKIE_VARS[] arrays
; Magic quotes
magic_quotes_gpc = On ; magic quotes for incoming GET/
POST/Cookie data
magic_quotes_runtime= Off ; magic quotes for runtime-generated dat
a, e.g. data from SQL, from exec(), etc.
magic_quotes_sybase = Off ; Use Sybase-style magic quotes
(escape ' with '' instead of \')
; automatically add files before or after any PHP document
auto_prepend_file =
auto_append_file =
--More--(37%)
;;;;;;;;;;;;;;;;;;;;;;;;;
; Paths and Directories ;
;;;;;;;;;;;;;;;;;;;;;;;;;
include_path = ; UNIX: "/path1:/path2" Windows: "\path1;\p
at
h2"
doc_root = ; the root of th
e php pages, used only if nonempty
user_dir = ; the directory
under which php opens the script using /~username, used only if nonempty
;upload_tmp_dir = ; temporary directory for HTTP uploaded
files (will use system default if not specified)
upload_max_filesize =12097152 ; 2 Meg default limit on file uploads
extension_dir = ./ ; directory in which the
loadable extensions (modules) reside
;;;;;;;;;;;;;;;;;;;;;;
; Dynamic Extensions ;
;;;;;;;;;;;;;;;;;;;;;;
; if you wish to have an extension loaded automaticly, use the
; following syntax: extension=modulename.extension
--More--(42%)
; following syntax: extension=modulename.extension
; for example, on windows,
; extension=msql.dll
; or under UNIX,
; extension=msql.so
; Note that it should be the name of the module only, no directory information
; needs to go here. Specify the location of the extension with the extension_di
r directive above.
;Windows Extensions
;extension=php_mysql.dll
;extension=php_nsmail.dll
;extension=php_calendar.dll
;extension=php_dbase.dll
;extension=php_filepro.dll
;extension=php_gd.dll
;extension=php_dbm.dll
;extension=php_mssql.dll
;extension=php_zlib.dll
;extension=php_filepro.dll
;extension=php_imap4r2.dll
;extension=php_ldap.dll
--More--(46%)
;extension=php_ldap.dll
;extension=php_crypt.dll
;extension=php_msql2.dll
;extension=php_odbc.dll
;;;;;;;;;;;;;;;;;;;
; Module Settings ;
;;;;;;;;;;;;;;;;;;;
[Syslog]
define_syslog_variables = Off ; Whether or not to define the various syslog va
riables,
; e.g. $LOG_PID,
$LOG_CRON, etc. Turning it off is a
; good idea perf
ormance-wise. In runtime, you can define
; these variable
s by calling define_syslog_variables()
[mail function]
SMTP = localhost ;for win32 only
sendmail_from = me@localhost.com ;for win32 only
--More--(50%)
sendmail_from = me@localhost.com ;for win32 only
sendmail_path = /usr/bin/sendmail -t
;for unix only, may supply arguments as well (default is sendmail -t)
[Debugger]
debugger.host = localhost
debugger.port = 7869
debugger.enabled = False
[Logging]
; These configuration directives are used by the example logging mechanism.
; See examples/README.logging for more explanation.
;logging.method = db
;logging.directory = /path/to/log/directory
[SQL]
sql.safe_mode = Off
[ODBC]
;uodbc.default_db = Not yet implemented
;uodbc.default_user = Not yet implemented
;uodbc.default_pw = Not yet implemented
uodbc.allow_persistent = On ; allow or prevent persistent links
--More--(54%)
uodbc.allow_persistent = On ; allow or prevent persistent links
uodbc.max_persistent = -1 ; maximum number of persistent links. -1
means no limit
uodbc.max_links = -1 ; maximum number of links (persi
stent+non persistent). -1 means no limit
uodbc.defaultlrl = 4096 ; Handling of LONG fields. Returns numbe
r of bytes to variables, 0 means passthru
uodbc.defaultbinmode = 1 ; Handling of binary data. 0 means passt
hru, 1 return as is, 2 convert to char
; See the documentation on odbc_binmode and odbc_longreadlen for an explanation
of uodbc.defaultlrl
; and uodbc.defaultbinmode
[MySQL]
mysql.allow_persistent = On ; allow or prevent persistent link
mysql.max_persistent = -1 ; maximum number of persistent links. -1
means no limit
mysql.max_links = -1 ; maximum number of links (persi
stent+non persistent). -1 means no limit
mysql.default_port = ; default port number for mysql_
connect(). If unset,
; mysql_connect(
) will use the $MYSQL_TCP_PORT, or the mysql-tcp
--More--(60%)
) will use the $MYSQL_TCP_PORT, or the mysql-tcp
; entry in /etc/
services, or the compile-time defined MYSQL_PORT
; (in that order
). Win32 will only look at MYSQL_PORT.
mysql.default_host = ; default host for mysql_connect
() (doesn't apply in safe mode)
mysql.default_user = ; default user for mysql_connect
() (doesn't apply in safe mode)
mysql.default_password = ; default password for mysql_connect() (
doesn't apply in safe mode)
; Note that this
is generally a *bad* idea to store passwords
; in this file.
*Any* user with PHP access can run
; 'echo cfg_get_
var("mysql.default_password")' and reveal that
; password! And
of course, any users with read access to this
; file will be a
ble to reveal the password as well.
[mSQL]
--More--(65%)
[mSQL]
msql.allow_persistent = On ; allow or prevent persistent link
msql.max_persistent = -1 ; maximum number of persistent l
inks. -1 means no limit
msql.max_links = -1 ; maximum number of links (persi
stent+non persistent). -1 means no limit
[PostgresSQL]
pgsql.allow_persistent = On ; allow or prevent persistent link
pgsql.max_persistent = -1 ; maximum number of persistent links. -1
means no limit
pgsql.max_links = -1 ; maximum number of links (persi
stent+non persistent). -1 means no limit
[Sybase]
sybase.allow_persistent = On ; allow or prevent persistent link
sybase.max_persistent = -1 ; maximum number of persistent links. -1
means no limit
sybase.max_links = -1 ; maximum number of links (persi
stent+non persistent). -1 means no limit
;sybase.interface_file = "/usr/sybase/interfaces"
sybase.min_error_severity = 10 ; minimum error severity to disp
lay
--More--(71%)
lay
sybase.min_message_severity = 10 ; minimum message severity to di
splay
sybase.compatability_mode = Off ; compatability mode with old versions o
f PHP 3.0.
; If on,
this will cause PHP to automatically assign types to results
; accord
ing to their Sybase type, instead of treating them all as
; string
s. This compatability mode will probably not stay around
; foreve
r, so try applying whatever necessary changes to your code,
; and tu
rn it off.
[Sybase-CT]
sybct.allow_persistent = On ; allow or prevent persistent li
nk
sybct.max_persistent = -1 ; maximum number of persistent l
inks. -1 means no limit
sybct.max_links = -1 ; maximum number of link
s (persistent+non persistent). -1 means no limit
--More--(76%)
s (persistent+non persistent). -1 means no limit
sybct.min_server_severity = 10 ; minimum server message severit
y to display
sybct.min_client_severity = 10 ; minimum client message severit
y to display
[bcmath]
bcmath.scale = 0 ; number of decimal digits for all bcmath functi
ons
[browscap]
;browscap = extra/browscap.ini
[Informix]
ifx.default_host = ; default host for ifx_connect()
(doesn't apply in safe mode)
ifx.default_user = ; default user for ifx_connect()
(doesn't apply in safe mode)
ifx.default_password = ; default password for ifx_conne
ct() (doesn't apply in safe mode)
ifx.allow_persistent = On ; allow or prevent persistent li
nk
ifx.max_persistent = -1 ; maximum number of persistent l
--More--(81%)
ifx.max_persistent = -1 ; maximum number of persistent l
inks. -1 means no limit
ifx.max_links = -1 ; maximum number of links (persi
stent+non persistent). -1 means no limit
ifx.textasvarchar = 0 ; if set on, select statements r
eturn the contents of a text blob instead of it's id
ifx.byteasvarchar = 0 ; if set on, select statements r
eturn the contents of a byte blob instead of it's id
ifx.charasvarchar = 0 ; trailing blanks are stripped f
rom fixed-length char columns. May help the life
; of Informix SE users.
ifx.blobinfile = 0 ; if set on, the contents of tex
t&byte blobs are dumped to a file instead of
; keeping them in memory
ifx.nullformat = 0 ; NULL's are returned as empty s
trings, unless this is set to 1. In that case,
; NULL's are returned as string
'NULL'.
[Session]
session.save_handler = files ; handler used to store/retrieve data
session.save_path = /tmp ; argument passed to save_handler
; in the case of files, this is the
--More--(87%)
; in the case of files, this is the
; path where data files are stored
session.use_cookies = 1 ; whether to use cookies
session.name = PHPSESSID ; name of the session
; is used as cookie name
session.auto_start = 0 ; initialize session on request startup
session.cookie_lifetime = 0 ; lifetime in seconds of cookie
; or if 0, until browser is restarted
session.cookie_path = / ; the path the cookie is valid for
session.cookie_domain = ; the domain the cookie is valid for
session.serialize_handler = php ; handler used to serialize data
; php is the standard serializer of PHP
session.gc_probability = 1 ; procentual probability that the
; 'garbage collection' process is started
; on every session initialization
session.gc_maxlifetime = 1440 ; after this number of seconds, stored
; data will be seen as 'garbage' and
; cleaned up by the gc process
session.extern_referer_check = ;
session.entropy_file = ;
session.entropy_length = 0 ;
[MSSQL]
--More--(96%)
; 'garbage collection' process is started
; on every session initialization
session.gc_maxlifetime = 1440 ; after this number of seconds, stored
; data will be seen as 'garbage' and
; cleaned up by the gc process
session.extern_referer_check = ;
session.entropy_file = ;
session.entropy_length = 0 ;
[MSSQL]
;extension=php_mssql.dll
mssql.allow_persistent = On ; allow or prevent persistent li
nk
mssql.max_persistent = -1 ; maximum number of persistent l
inks. -1 means no limit
mssql.max_links = -1 ; maximum number of link
s (persistent+non persistent). -1 means no limit
mssql.min_error_severity = 10 ; minimum error severity to disp
lay
mssql.min_message_severity = 10 ; minimum message severity to di
splay
mssql.compatability_mode = Off ; compatability mode with old versions o
f PHP 3.0.