PHP/FI CHANGE LOG                                                    ChangeLog
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Feb. 12 Version 1.99c
- Oops.  Fixed small bug in msql_regcase()
- Fixed documentation bugs in doc/doc.html
- Replaced hard-coded '$' references with VAR_INIT_CHAR (defined in php.h)
- Added mkdir() function
- msql() function now only returns -1 on an error.  0 is returned if query
  didn't return anything (and wasn't supposed to) and a positive integer
  is returned if a result pointer was allocated.  (doc.html updated to reflect 
  this)
- Fixed log.html bug
- Fixed bug in logging related to log.html bug
- Added .phtml (Apache cgi_redirect_module check to log.html)
- Fixed isset() parser bug and related potential core dump in var.c
- Changed documentation to reflect new location of GD library 
  (www.boutell.com/gd)
- Wrote more descriptive chapter on Apache httpd and how to configure
  a cgi redirection module with Apache
- Memory handling changes to _RegReplace function in reg.c - fixed potential
  memory leak
- Wrote long chapter in doc.html on how to add your own functions to PHP/FI
- Added @ (no error printing) version of fopen call
- Fixed silly coredump in fopen() function
- Fixed file upload bug - normal form fields are not url encoded when they
  come as part of the form-data in an upload.  I had incorrectly assumed
  that they would be encoded and attempted to decode them.
- Fixed AddSlashes bug which caused memory corruption when special characters
  needed to be escaped - lots of memory weirdness here.  Hopefully it is 
  clean now.
- Rewrote ParseEscapes function in echo.c - Another source of memory 
  allocation confusion cleared up.

Feb. 5 Version 1.99b 
- Fixed #if -> #ifdef typo in mime.c
- Added check to OpenFile() to disallow loading files that look like temporary
  files from the File Upload function
- Added check for a MAX_FILE_SIZE variable to be defined as a hidden field
  before the file field in a file upload form.  If present, it gives the max
  size in bytes an uploaded file may be.
- Cleaned up error reporting a bit
- Fixed year 2000 bug in date() function
- Added install question to query whether or not file upload support is desired
- Added a "BROKEN_CONFIG_PW" #define to php.h for those people who cannot
  get ?config to accept their password no matter what they do.
- Windows versions of NetScape seem to send the full local pathname of a
  file in the file upload feature - added code to only store the last component
  of this path.
- Added #if LOGGING code around Logging lines in acc.c to fix compile problem
  when access control is selected without logging
- Fixed putenv-free bug in file.c - Thanks to Kenneth Holmlund for finding this 
  one
- Added \n \r \t processing to "header" command
- Added $$variable syntax to support variable variable names
- Did more work on the NSAPI support - still not functional yet
- Initial work for supporting Empress (a full commercial RDBMS)
- Made msql() function return "-1" on a failed query
- New internal variable: $phperrmsg - This will contain any error message that
  may be generated by PHP.  Especially useful in conjunction with the '@'
  character which hides error messages from being shown from certain functions
- Fixed logging bug related to "include" command
- Made msql_regcase() a bit smarter so it doesn't do [11][22] for example
- Added stuff to doc/doc.html
- Added chmod(), chown() and chgrp() native PHP functions

Jan. 24 Version 1.99a (Not quite ready to call it 2.0 yet)
- Fixed floating point multiplication bug
- Fixed Guestbook bug
- Fixed SecureVar() bug
- Fixed core dump which happened when running PHP from the command line
  and the file the file argument pointed to did not exist
- Added setshowinfo() and setlogging() functions to be able to enable/disable
  logging and info blocks from within a script as opposed to having to use
  the ?config screen to do it
- Actual log entry is done after page is loaded now both in order for
  setlogging() to work and for performance reasons
- Fixed bug in CheckType function which would incorrectly cast a posted
  variable like "-0.5" to be a string instead of a double.
- Fixed bug in lex.c which prevented something like: $a = .05; from parsing 
  correctly
- Added usleep() function
- Fixed \\" bug.  Two backslashes followed by a quote character would
  mess up parsing from thereon.
- Removed the StripSlashes() call right before the msqlQuery() call in msql.c.
  We don't want the slashes stripped at this point.
- Added a MAGIC_QUOTE #define to php.h.  If MAGIC_QUOTES is defined, then the
  single quote (') character will automatically be escaped when it is found
  in a variable which comes from either a GET or a POST method form.
- Added File Upload support.
- Finally fixed the bug which caused the page counter to be stuck at 1 for the first
  two hits on a page.
- log filenames are no longer based on inodes, but on the actual filename.
  *NOTE* This makes logs from previous versions incompatible!
- Fixed a number of logging related bugs which could potentially have caused core
  dumps in earlier versions.
- Added a default password of "php" to the ?config screen.  This password will be
  used in case the getpwuid() call to get a user's alphanumeric user id fails.
  ie. if you run PHP ?config for the first time and your user id does not work
  as your password, try entering: php

Dec. 8 Version 1.99
- Fixed minor compile problem related to compiling without MMAP support
- Added rwho.html example
- Fixed compile problem in var.c
- Added |= and &= operators
- Added support for \n, \r and \t within strings
- Cleaned up regexpr code to make it more ANSI compliant to be able to use 
  bounds-checking version of gcc (xgcc)
- Cleaned up bison-generated parser code to make it more ANSI compliant
  to be able to use xgcc
- Fixed inconsistencies in StrTok() function (found by xgcc)
- Fixed nasty "off-by-one" memory allocation bug in dbm module (found by xgcc)
- Package is now distributed under GPL
- Changed from a dynamically to a statically allocated buffer in TempNam() to
  get around xgcc (perhaps unfounded?) complaints
- Fixed potential core dump in log.c found by xgcc
- Fixed potential core dump in exec.c found by xgcc
- Added mail.html example to examples directory

Nov. 18 Version 1.98
- Added msql_regcase() function which changes a string like "abc" to 
  "[aA][bB][cC]"
- Added C-like += and -= operators to parser
- Changed StrVal() function to return the argument's string value
- Added IntVal() and DoubleVal() functions to return the argument's
  integer and double values respectively
- Added SetType() and GetType() functions to set/get a variable type
- Added sys/types.h include to php.h to fix problem on BSDi 1.1
- Major Makefile modifications to prepare for NSAPI support
- Code changes to prepare for NSAPI support
- Added mktime() function
- Changed escape character (backslash) handling
- Fixed error reporting bug when an error occurs after an included file
  (the wrong filename was showing up in the error message)
- Added "table.field" syntax for getting results of joins in msql_result()
  function
- When a variable is used as both indexed and unindexed, the unindexed
  contents is synomymous with index "0" - Using a veriable in this manner
  core dumped php previously
- Small change to the FixFilename() function to load file.htm if file.html
  is not found and file.htm is present
- Added SecureVar() function to be able to mark variables as not being allowed
  to be set by the GET method.  This is to prevent people from faking variable
  settings in secure environments.
- Added BinDec() function to convert a string representing a binary number to 
  decimal
- Added DecBin() function to convert a long integer to a binary number in a 
  string
- Added HexDec() function to convert from a hex string to a long integer
- Added DecHex() function to convert from a long integer to a hex string
- Added OctDec() function to convert from an octal to a decimal number
- Added DecOct() function to convert from a decimal to an octal number
- Added SubStr() function 
- Lots of new stuff in the doc/php.html documentation
- Increased parser stack size (should make parser stack overflow errors go away)
- Major changes to parser yacc code to reduce shift/reduce conflicts and 
  completely eliminate reduce/reduce conflicts
- Added Fopen(), Fclose(), Fgets(), Fputs(), Rewind(), Ftell() and Fseek()
  functions for manipulating text files
- MAJOR performance enhancement!  Files are now mapped directly into memory
  using the mmap() system call.  This will improve performance on all
  page loads, but will be most apparent on pages with while loops with
  many iterations.
- Fixed long-standing bug related to initial access logging
- Removed **, // and %% operators.  They didn't make much sense and only
  served to make the parser more complex than necessary
- Fixed bug in log.html where first entry would always show a date in 1969
- Minor fixes to survey.html and guestbook.html examples.  ie. replace strval()
  with intval() calls
- Made PHP script error message reporting more informative.  The actual
  character which triggered the error is highlighted now.
- Added GetMyPid() function - returns current php process id
- Fixed busy-loop problem on bogus URL's which occurred on certain
  systems.  Linux/Apache systems seemed to be most sensitive to it.
- Added missing "division by zero" check
- Added &, | and ^ operators - mathematical AND, OR and XOR
- Added ChDir() function
- VAR_INIT_CHAR definition in php.h to allow customization of variable
  designation character

Nov. 7 Version 1.97
- Removed extraneous debug message from conf.c
- Small changes in dns.c regarding error reporting
- Stripped any trailing whitespaces from end of exec strings
- Fixed array variable substitution in " " expressions bug
- Added PutEnv() function
- Fixed bug in Header command - it wasn't sending a carriage return
- Included Bison 1.24 generated parse.c file
- Changed Makefile to not try to generate parse.c 
  ('make parser' to generate parse.c if you need to)
- Fixed possible infinite loop in RegReplace() function
- Modified mSQL support to allow for multiple connections to multiple
  msql daemons on either the same machine or on different machines.
  (To work correctly, this requires some minor mSQL modifications)
- Removed length check on EMAIL_ADDR variable
- Fixed \" bug - now any character may be escaped inside a quoted string
- Removed "." default directory suggestion from install script
- Small fixes to survey.html and guestbook.html example programs

Nov. 1 Version 1.96
- Fixed bug in log.html - missing dbmclose() call.
- Fixed various type-related issues which should make PHP compile and
  work nicely on 64-bit architectures like DEC's Alpha.  
- Added VIRTUAL_HOST #define to php.h to overcome SCRIPT_NAME bug
  on some httpd's when virtual hosts are used.
- Fixed space problem in form GET/POST data support.

Oct. 30 Version 1.95
- Fixed ?config problem related to matching on e-mail addresses
- Added ability to edit entries in example guestbook
- Added YYMAXDEPTH 50000 definition to parse.y to eliminate stack overflows in
  older versions of bison
- Added support for Tom Boutell's GD library
- Added ImageCreate(), ImageDestroy(), ImageGif(), ImageSetPixel(), 
  ImageLine(), ImageRectangle(), ImageFilledRectangle(), 
  ImageArc(), ImageFillToBorder(), ImageFill(), ImageColorAllocate(),
  ImageColorTransparent(), ImageInterlace() functions
- Added tempnam() function
- Added unlink() function
- Added rename() function
- Added sleep() function
- Added ?url to Location directive on external E-mail and Password forms
  enabling people to write these external forms and use $argv[0] as the
  form to go to once an e-mail address/password has been entered
- Added the ability to specify an array variable in the exec() call to
  store all lines of output from the given Unix command in
- Fixed linenumber report inconsistency in error message when file had a while loop
- Added Max() and Min() functions to return the maximum or minimum element of an array
- Improved the docs/php.html documentation
- Fixed bug in file...() functions
- Added ImagePolygon() and ImageFilledPolygon() functions which take a
  PHP array of x,y points as arguments
- Changed msql_result() to ensure it never returned NULL
- Changed echo command to not print an error if argument is NULL
- Rewrote FixFilename function to allow ~username expansion.  Also made
  it chdir() to the directory where the current html file is located to
  allow relative paths in the <IMG > tag.  Also made it first try to
  load index.html and then Overview.html if given filename is a directory.
- Added PATH_DIR variable to be only the directory portion of PATH_INFO
- Fixed potential bug in Exec()/System() functions
- Optimized stat code to remove redundant calls
- Added PHP_PUB_DIRNAME and PHP_ROOT_DIR configurable options to php.h
- Added ImageChar(), ImageCharUp(), ImageString() and ImageStringUp() functions
- Added survey.html example 
- Added traditional GET method support 
- Added explanation to php.html on how to propogate e-mail addresses using new GET
  method support
  
Oct. 22 Version 1.94
- Fixed numerical variable name bug in var.c
- Fixed potential floating point exception core dump
- Fixed Arithmetic snafu
- Fixed unary minus bug
- Fixed include command bug
- Change in acc.c to convert domain name and e-mail address to lower case
  before doing a match.
- Change in file.c to look for given file relative to location of php binary
  if file cannot be found relative to server's root_dir.
- Change in file.c to force loading of either index.html or Overview.html if the
  given path is a directory
- Added guestbook to examples directory
- Fixed day of week bug in date.c
- Added support for brackets in conditional expressions
- Fixed sort bug and made sort function type aware
- Fixed bug in Exit() - I was closing a null fp in some cases

Oct. 19 Version 1.93
- Changed /bin/more to /usr/bin/more in install
- Fixed typo in config.h.in -lgdbm comment
- Fixed compile problem when access control and access logging is disabled
- Changed internal re_* function names to php_re_* to avoid conflicts on SGI boxes
- Changed msqlsethost() function name to msql_connect() to be consistent
- Added multiple result cursors to mSQL support
- Changed syntax of msql_result() function
- Added msql_freeresult() function
- Added msql_fieldname() function
- Added msql_fieldtype() function
- Added msql_fieldlen() function
- Added msql_fieldflags() function
- Added msql_numrows() function
- Added msql_numfields() function
- Updated demo_msql.html to reflect above changes
- Fixed various minor things to get it to compile cleanly on SunOS4.1.3
- Fixed msql library detection problem
- Fixed Makefile bug which caused ACCESS_DIR error messages on some systems
- Added some more info to the ?info screen

Oct. 17 Version 1.92
- First public release of the code

Oct. 9 Version 1.91
- Complete rewrite of original PHP and integrated into code

Sept. 18 Version 1.90
- Complete rewrite of original FI.

|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
