[PHP-DEV] PHP 4.0 Bug #8493 Updated: Parse Error From: sniper <email protected>
Date: 01/02/01

ID: 8493
Updated by: sniper
Reported By: rainbow178 <email protected>
Old-Status: Open
Status: Closed
Bug Type: Oracle related
Assigned To:
Comments:

Your script has bug. Not PHP.
Change the line:

putenv ("TNS_ADMIN "C:\orant\NET80\ADMIN");

to

putenv ('TNS_ADMIN="C:\orant\NET80\ADMIN"');

--Jani

p.s. I think you should add those environment variables
to the startup of IIS. ie. they should be set before
starting the web server.

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

[2000-12-30 13:37:22] rainbow178 <email protected>
Hi all,
  i use oracle 8.0.5, developer 6.0 and IIS 4.0 for the web server. i want to make a php homepage to access the oracle database. i don't know why i cannot login to the database, here is my coding of the php file:
-----------------------------------------------------------
<? php

putenv ("ORACLE_SID=som");
putenv ("ORACLE_HOME=C:orant");
putenv ("TNS_ADMIN "C:orantNET80ADMIN");

$conn = ora_logon("system", "manager");

$cursor = ora_open($conn);

ora_commitoff($conn);
/*
if(!$conn){
        echo"fail to connet!n";
}
*/
$cursor=ora_open($conn);
ORA_commitoff($conn);
$query="select sid, sname from students";
ORA_Parse($conn,$query) or die;
ora_exec($cursor);

echo ("<HTML><PRE>n");

echo ("$querynn");

$numcols = 0;

while(ora_fetch($cursor)){

$numcols = ora_numcols($cursor);

for($column=0; $column < $numcols; $column++){

$data = trim(ora_getcolumn($cursor, $column));

if($data =="") $data = "NULL";

echo("$datat");

}

echo ("n");

}

$numrows = ora_numrows($cursor);

echo ("nROWS RETURNED: $numrowsn");

echo ("</PRE></HTML>n");

ora_close($cursor);
ora_logoff($conn);

?>

-----------------------------------------------------------
But there is a error:
Parse error: parse error in H:ProjectHomepage2login.php on line 3

And here is the coding of php.ini in c:winnt :

-----------------------------------------------------------
; PHP's built-in default is text/html
default_mimetype = "text/html"
;default_charset = "iso-8859-1"

;;;;;;;;;;;;;;;;;;;;;;;;;
; Paths and Directories ;
;;;;;;;;;;;;;;;;;;;;;;;;;
include_path = ; UNIX: "/path1:/path2" Windows: "path1;path2"
doc_root = ; the root of the 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 = 2097152 ; 2 Meg default limit on file uploads
extension_dir = c:php ; directory in which the loadable extensions (modules) reside
enable_dl = On ; Whether or not to enable the dl() function.
                                                                        ; The dl() function does NOT properly work in multithreaded
                                                                        ; servers, such as IIS or Zeus, and is automatically disabled
                                                                        ; on them.

;;;;;;;;;;;;;;;;;;;;;;
; Dynamic Extensions ;
;;;;;;;;;;;;;;;;;;;;;;
; if you wish to have an extension loaded automaticly, use the
; following syntax: extension=modulename.extension
; for example, on windows,
  extension=ora.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_dir directive above.

;Windows Extensions
;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
;extension=php_crypt.dll
;extension=php_msql2.dll
;extension=php_odbc.dll
; Note that MySQL support is now built in, so no dll is needed for it.

;;;;;;;;;;;;;;;;;;;
; Module Settings ;
;;;;;;;;;;;;;;;;;;;

[Syslog]
define_syslog_variables = Off ; Whether or not to define the various syslog variables,
                                                                ; e.g. $LOG_PID, $LOG_CRON, etc. Turning it off is a
                                                                ; good idea performance-wise. In runtime, you can define
                                                                ; these variables by calling define_syslog_variables()

[mail function]
SMTP = localhost ;for win32 only
sendmail_from = me <email protected> ;for win32 only
;sendmail_path = ;for unix only, may supply arguments as well (default is 'sendmail -t -i')

[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
uodbc.check_persistent = On ; check that a connection is still validbefore reuse
uodbc.max_persistent = -1 ; maximum number of persistent links. -1 means no limit
uodbc.max_links = -1 ; maximum number of links (persistent+non persistent). -1 means no limit
uodbc.defaultlrl = 4096 ; Handling of LONG fields. Returns number of bytes to variables, 0 means passthru
uodbc.defaultbinmode = 1 ; Handling of binary data. 0 means passthru, 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 (persistent+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
                                                                ; entry in /etc/services, or the compile-time defined MYSQL_PORT
                                                                ; (in that order). Win32 will only look at MYSQL_PORT.
mysql.default_socket = ; default socket name for local MySQL connects. If empty, uses the built-in
                                                                ; MySQL defaults
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 able to reveal the password as well.

[mSQL]
msql.allow_persistent = On ; allow or prevent persistent link
msql.max_persistent = -1 ; maximum number of persistent links. -1 means no limit
msql.max_links = -1 ; maximum number of links (persistent+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 (persistent+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 (persistent+non persistent). -1 means no limit
;sybase.interface_file = "/usr/sybase/interfaces"
sybase.min_error_severity = 10 ; minimum error severity to display
sybase.min_message_severity = 10 ; minimum message severity to display
sybase.compatability_mode = Off ; compatability mode with old versions of PHP 3.0.
                                                                        ; If on, this will cause PHP to automatically assign types to results
                                                                        ; according to their Sybase type, instead of treating them all as
                                                                        ; strings. This compatability mode will probably not stay around
                                                                        ; forever, so try applying whatever necessary changes to your code,
                                                                        ; and turn it off.

[Sybase-CT]
sybct.allow_persistent = On ; allow or prevent persistent link
sybct.max_persistent = -1 ; maximum number of persistent links. -1 means no limit
sybct.max_links = -1 ; maximum number of links (persistent+non persistent). -1 means no limit
sybct.min_server_severity = 10 ; minimum server message severity to display
sybct.min_client_severity = 10 ; minimum client message severity to display

[bcmath]
bcmath.scale = 0 ; number of decimal digits for all bcmath functions

[browscap]
;browscap = c:nt_csesystem32inetsrvbrowscap.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_connect() (doesn't apply in safe mode)
ifx.allow_persistent = On ; allow or prevent persistent link
ifx.max_persistent = -1 ; maximum number of persistent links. -1 means no limit
ifx.max_links = -1 ; maximum number of links (persistent+non persistent). -1 means no limit
ifx.textasvarchar = 0 ; if set on, select statements return the contents of a text blob instead of it's id
ifx.byteasvarchar = 0 ; if set on, select statements return the contents of a byte blob instead of it's id
ifx.charasvarchar = 0 ; trailing blanks are stripped from fixed-length char columns. May help the life
                                                ; of Informix SE users.
ifx.blobinfile = 0 ; if set on, the contents of text&byte blobs are dumped to a file instead of
                                                ; keeping them in memory
ifx.nullformat = 0 ; NULL's are returned as empty strings, 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
                                    ; 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 ; percentual 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.referer_check = ; check HTTP Referer to invalidate
                                    ; externally stored URLs containing ids
session.entropy_length = 0 ; how many bytes to read from the file
session.entropy_file = ; specified here to create the session id
; session.entropy_length = 16
; session.entropy_file = /dev/urandom
session.cache_limiter = nocache ; set to {nocache,private,public} to
                                    ; determine HTTP caching aspects
session.cache_expire = 180 ; document expires after n minutes

[MSSQL]
;extension=php_mssql.dll
mssql.allow_persistent = On ; allow or prevent persistent link
mssql.max_persistent = -1 ; maximum number of persistent links. -1 means no limit
mssql.max_links = -1 ; maximum number of links (persistent+non persistent). -1 means no limit
mssql.min_error_severity = 10 ; minimum error severity to display
mssql.min_message_severity = 10 ; minimum message severity to display
mssql.compatability_mode = Off ; compatability mode with old versions of PHP 3.0.

[Assertion]
;assert.active = On ; assert(expr); active by default
;assert.warning = On ; issue a PHP warning for each failed assertion.
;assert.bail = Off ; don't bail out by default.
;assert.callback = 0 ; user-function to be called if an assertion fails.
;assert.quiet_eval = 0 ; eval the expression with current error_reporting(). set to true if you want error_reporting(0) around the eval().

[Ingres II]
ii.allow_persistent = On ; allow or prevent persistent link
ii.max_persistent = -1 ; maximum number of persistent links. (-1 means no limit)
ii.max_links = -1 ; maximum number of links, including persistents (-1 means no limit)
ii.default_database = ; default database (format : [node_id::]dbname[/srv_class]
ii.default_user = ; default user
ii.default_password = ; default password

[Verisign Payflow Pro]
pfpro.defaulthost = "test.signio.com" ; default Signio server
pfpro.defaultport = 443 ; default port to connect to
pfpro.defaulttimeout = 30 ; default timeout in seconds

; pfpro.proxyaddress = ; default proxy IP address (if required)
; pfpro.proxyport = ; default proxy port
; pfpro.proxylogon = ; default proxy logon
; pfpro.proxypassword = ; default proxy password

; Local Variables:
; tab-width: 4
; End:
------------------------------------------------------------

Does i need to add more coding in that file? what other setting do i need to do?

Thx for all your help~! :)

Rainbow in Hongkong

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

The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online.

Full Bug description available at: http://bugs.php.net/?id=8493

-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: php-dev-unsubscribe <email protected>
For additional commands, e-mail: php-dev-help <email protected>
To contact the list administrators, e-mail: php-list-admin <email protected>