mirror of
https://github.com/php/web-php.git
synced 2026-03-23 23:02:13 +01:00
387 lines
15 KiB
PHP
387 lines
15 KiB
PHP
<?php
|
|
/*
|
|
If you're reading this, it isn't because you've found a security hole.
|
|
this is an open source website. read and learn!
|
|
*/
|
|
|
|
/* ------------------------------------------------------------------------- */
|
|
|
|
// Get the modification date of this PHP file
|
|
$timestamps = array(@getlastmod());
|
|
|
|
/*
|
|
The date of prepend.inc represents the age of ALL
|
|
included files. Please touch it if you modify any
|
|
other include file (and the modification affects
|
|
the display of the index page). The cost of stat'ing
|
|
them all is prohibitive. Also note the file path,
|
|
we aren't using the include path here.
|
|
*/
|
|
$timestamps[] = @filemtime("include/prepend.inc");
|
|
|
|
// Calendar, conference teasers & latest releaes box are the only "dynamic" features on this page
|
|
$timestamps[] = @filemtime("include/pregen-events.inc");
|
|
$timestamps[] = @filemtime("include/pregen-confs.inc");
|
|
$timestamps[] = @filemtime("include/version.inc");
|
|
|
|
// The latest of these modification dates is our real Last-Modified date
|
|
$timestamp = max($timestamps);
|
|
|
|
// Note that this is not a RFC 822 date (the tz is always GMT)
|
|
$tsstring = gmdate("D, d M Y H:i:s ", $timestamp) . "GMT";
|
|
|
|
// Check if the client has the same page cached
|
|
if (isset($_SERVER["HTTP_IF_MODIFIED_SINCE"]) &&
|
|
($_SERVER["HTTP_IF_MODIFIED_SINCE"] == $tsstring)) {
|
|
header("HTTP/1.1 304 Not Modified");
|
|
exit();
|
|
}
|
|
// Inform the user agent what is our last modification date
|
|
else {
|
|
header("Last-Modified: " . $tsstring);
|
|
}
|
|
|
|
$_SERVER['BASE_PAGE'] = 'index.php';
|
|
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/prepend.inc';
|
|
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/pregen-events.inc';
|
|
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/pregen-confs.inc';
|
|
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/version.inc';
|
|
|
|
// This goes to the left sidebar of the front page
|
|
$SIDEBAR_DATA = '
|
|
<h3>What is PHP?</h3>
|
|
<p>
|
|
<acronym title="recursive acronym for PHP: Hypertext Preprocessor">PHP</acronym>
|
|
is a widely-used general-purpose scripting language that is
|
|
especially suited for Web development and can be embedded into HTML.
|
|
If you are new to PHP and want to get some idea
|
|
of how it works, try the <a href="/tut.php">introductory tutorial</a>.
|
|
After that, check out the online <a href="/docs.php">manual</a>,
|
|
and the example archive sites and some of the other resources
|
|
available in the <a href="/links.php">links section</a>.
|
|
</p>
|
|
<p>
|
|
Ever wondered how popular PHP is? see the
|
|
<a href="/usage.php">Netcraft Survey</a>.
|
|
</p>
|
|
|
|
<h3><a href="/thanks.php">Thanks To</a></h3>
|
|
<ul class="simple">
|
|
<li><a href="http://www.easydns.com/?V=698570efeb62a6e2" title="DNS Hosting provided by easyDNS">easyDNS</a></li>
|
|
<li><a href="http://www.directi.com/">Directi</a></li>
|
|
<li><a href="http://promote.pair.com/direct.pl?php.net">pair Networks</a></li>
|
|
<li><a href="http://www.ev1servers.net/">EV1Servers</a></li>
|
|
<li><a href="http://www.servercentral.net/">Server Central</a></li>
|
|
<li><a href="http://www.hostedsolutions.com/">Hosted Solutions</a></li>
|
|
<li><a href="http://www.spry.com/">Spry VPS Hosting</a></li>
|
|
<li><a href="http://ez.no/">eZ Systems</a> / <a href="http://www.hit.no/english">HiT</a></li>
|
|
<li><a href="http://www.osuosl.org">OSU Open Source Lab</a></li>
|
|
<li><a href="http://www.yahoo.com/">Yahoo! Inc.</a></li>
|
|
<li><a href="http://www.binarysec.com/">BinarySEC</a></li>
|
|
</ul>
|
|
<h3>Related sites</h3>
|
|
<ul class="simple">
|
|
<li><a href="http://www.apache.org/">Apache</a></li>
|
|
<li><a href="http://www.mysql.com/">MySQL</a></li>
|
|
<li><a href="http://www.postgresql.org/">PostgreSQL</a></li>
|
|
<li><a href="http://www.zend.com/">Zend Technologies</a></li>
|
|
</ul>
|
|
<h3>Community</h3>
|
|
<ul class="simple">
|
|
<li><a href="http://www.linuxfund.org/">LinuxFund.org</a></li>
|
|
<li><a href="http://www.ostg.com/">OSTG</a></li>
|
|
</ul>
|
|
|
|
<h3>Syndication</h3>
|
|
<p>
|
|
You can grab our news as an RSS feed via a daily dump in a file
|
|
named <a href="/news.rss">news.rss</a>.
|
|
</p>';
|
|
|
|
$MIRROR_IMAGE = '';
|
|
|
|
// Try to find a sponsor image in case this is an official mirror
|
|
if (is_official_mirror()) {
|
|
|
|
// Iterate through possible mirror provider logo types in priority order
|
|
$types = array("gif", "jpg", "png");
|
|
while (list(,$ext) = each($types)) {
|
|
|
|
// Check if file exists for this type
|
|
if (file_exists("backend/mirror." . $ext)) {
|
|
|
|
// Add text to rigth sidebar
|
|
$MIRROR_IMAGE = "<div align=\"center\"><h3>This mirror sponsored by:</h3>\n";
|
|
|
|
// Create image HTML code
|
|
$img = make_image(
|
|
'mirror.' . $ext,
|
|
htmlspecialchars(mirror_provider()),
|
|
FALSE,
|
|
FALSE,
|
|
'backend',
|
|
0
|
|
);
|
|
|
|
// Add size information depending on mirror type
|
|
if (is_primary_site() || is_backup_primary()) {
|
|
$img = resize_image($img, 125, 125);
|
|
} else {
|
|
$img = resize_image($img, 120, 60);
|
|
}
|
|
|
|
// End mirror specific part
|
|
$MIRROR_IMAGE .= '<a href="' . mirror_provider_url() . '">' .
|
|
$img . "</a></div><br /><hr />\n";
|
|
|
|
// We have found an image
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
/* {{{ Generate latest release info */
|
|
$PHP_5_STABLE = $PHP_4_STABLE = array();
|
|
$PHP_5_RC = $PHP_4_RC = "";
|
|
$rel = $rc = "";
|
|
|
|
list($PHP_5_STABLE, ) = each($RELEASES[5]);
|
|
list($PHP_4_STABLE, ) = each($RELEASES[4]);
|
|
|
|
$rel = <<< EOT
|
|
<div id="releaseBox">
|
|
<h4>Stable Releases</h4>
|
|
<ol id="releases">
|
|
<li class="php5"><a href="/downloads.php#v5">Current PHP 5 Stable: <span class="release">$PHP_5_STABLE</span></a></li>
|
|
<li class="php5"><a href="/downloads.php#v4">Current PHP 4 Stable: <span class="release">$PHP_4_STABLE</span></a></li>
|
|
</ol>
|
|
</div>\n
|
|
EOT;
|
|
|
|
/* Do we have any release candidates to brag about? */
|
|
if (count($RELEASES[5]>1)) {
|
|
list($PHP_5_RC, ) = each($RELEASES[5]);
|
|
|
|
if (!empty($PHP_5_RC)) {
|
|
$rc .= " <li class=\"php5\"><a href=\"http://qa.php.net/\">Current PHP 5 RC: <span class=\"release\">$PHP_5_RC</span></a></li>\n";
|
|
}
|
|
}
|
|
if (count($RELEASES[4]>1)) {
|
|
list($PHP_4_RC, ) = each($RELEASES[4]);
|
|
|
|
if (!empty($PHP_4_RC)) {
|
|
$rc .= " <li class=\"php4\"><a href=\"http://qa.php.net/\">Current PHP 4 RC: <span class=\"release\">$PHP_4_RC</span></a></li>\n";
|
|
}
|
|
}
|
|
if (!empty($rc)) {
|
|
$rel .= <<< EOT
|
|
<div id="candidateBox">
|
|
<h4><a href="http://qa.php.net/rc.php">Release Candidates</a></h4>
|
|
<ol id="candidates">
|
|
$rc
|
|
</ol>
|
|
</div>\n
|
|
EOT;
|
|
}
|
|
/* }}} */
|
|
|
|
// Prepend mirror image & latest releases to sidebar text
|
|
$RSIDEBAR_DATA = $MIRROR_IMAGE . $rel . $RSIDEBAR_DATA;
|
|
|
|
// Write out common header
|
|
site_header("Hypertext Preprocessor", array('onload' => 'boldEvents();', 'headtags' => '<link rel="alternate" type="application/rss+xml" title="PHP: Hypertext Preprocessor" href="' . $MYSITE . 'news.rss" />'));
|
|
|
|
if (is_array($CONF_TEASER) && count($CONF_TEASER)) {
|
|
$categories = array("conference" => "Conferences", "cfp" => "Calling for papers");
|
|
echo ' <div id="confTeaser">' . "\n";
|
|
echo " <table>\n";
|
|
foreach($CONF_TEASER as $k => $a) {
|
|
if (is_array($a) && count($a)) {
|
|
echo " <tr>\n <td valign='top' style='white-space: nowrap'>".$categories[$k].":</td>\n";
|
|
echo " <td valign='top'>\n";
|
|
echo ' <ul class="' .$k. '">' . "\n";
|
|
$count = 0;
|
|
$a = preg_replace("'([A-Za-z0-9])([\s\:\-\,]*?)call for(.*?)$'i", "$1", $a);
|
|
foreach($a as $url => $title) {
|
|
if ($count++ >= 4) {
|
|
break;
|
|
}
|
|
echo ' <li><a href="' . $url. '">' . $title. '</a></li>' . "\n";
|
|
}
|
|
echo " </ul>\n </td>\n </tr>\n";
|
|
} // if set
|
|
}
|
|
echo " </table>\n </div>\n\n<br />\n";
|
|
}
|
|
|
|
// DO NOT REMOVE THIS COMMENT (the RSS parser is dependant on it)
|
|
?>
|
|
|
|
<a name="5"></a>
|
|
<h1>PHP 4.4.6 Released</h1>
|
|
<p>
|
|
<span class="newsdate">[01-Mar-2007]</span>
|
|
The PHP development team would like to announce the immediate <a
|
|
href="/downloads.php#v4">availability of PHP 4.4.6</a>.
|
|
|
|
The main issue that this release addresses is a crash problem that was
|
|
introduced in PHP 4.4.5. The problem occurs when session variables are used
|
|
while register_globals is enabled.
|
|
|
|
Details about the PHP 4.4.6 release can be found in the <a
|
|
href="/releases/4_4_6.php">release announcement for 4.4.6</a>, the full list
|
|
of changes is available in the <a href="/ChangeLog-4.php#4.4.6">ChangeLog for
|
|
PHP 4</a>.
|
|
</p>
|
|
|
|
<hr />
|
|
|
|
<a name="4"></a>
|
|
<h1>PHP 5.2.1 and PHP 4.4.5 Released</h1>
|
|
<p>
|
|
<span class="newsdate">[14-Feb-2007]</span>
|
|
The PHP development team would like to announce the immediate <a
|
|
href="/downloads.php#v5">availability of PHP 5.2.1</a> and <a
|
|
href="/downloads.php#v4">availability of PHP 4.4.5</a>.
|
|
These releases are major stability and security enhancements of the 5.x and
|
|
4.4.x branches, and all users are strongly encouraged to upgrade to it as
|
|
soon as possible. Further details about the PHP 5.2.1 release can be found in the <a
|
|
href="/releases/5_2_1.php">release announcement for 5.2.1</a>, the full list of
|
|
changes is available in the <a href="/ChangeLog-5.php#5.2.1">ChangeLog for PHP
|
|
5</a>. Details about the PHP 4.4.5 release can be found in the <a
|
|
href="/releases/4_4_5.php">release announcement for 4.4.5</a>, the full list of
|
|
changes is available in the <a href="/ChangeLog-4.php#4.4.5">ChangeLog for PHP
|
|
4</a>.
|
|
</p>
|
|
|
|
<p>
|
|
<b>Security Enhancements and Fixes in PHP 5.2.1 and PHP 4.4.5:</b>
|
|
</p>
|
|
<ul>
|
|
<li>Fixed possible safe_mode & open_basedir bypasses inside the session extension.</li>
|
|
<li>Fixed unserialize() abuse on 64 bit systems with certain input strings.</li>
|
|
<li>Fixed possible overflows and stack corruptions in the session extension.</li>
|
|
<li>Fixed an underflow inside the internal sapi_header_op() function.</li>
|
|
<li>Fixed non-validated resource destruction inside the shmop extension.</li>
|
|
<li>Fixed a possible overflow in the str_replace() function.</li>
|
|
<li>Fixed possible clobbering of super-globals in several code paths.</li>
|
|
<li>Fixed a possible information disclosure inside the wddx extension.</li>
|
|
<li>Fixed a possible string format vulnerability in *print() functions on 64 bit systems.</li>
|
|
<li>Fixed a possible buffer overflow inside ibase_{delete,add,modify}_user() functions.</li>
|
|
<li>Fixed a string format vulnerability inside the odbc_result_all() function.</li>
|
|
</ul>
|
|
<p>
|
|
<b>Security Enhancements and Fixes in PHP 5.2.1 only:</b>
|
|
</p>
|
|
<ul>
|
|
<li>Prevent search engines from indexing the phpinfo() page.</li>
|
|
<li>Fixed a number of input processing bugs inside the filter extension.</li>
|
|
<li>Fixed allocation bugs caused by attempts to allocate negative values in some code paths.</li>
|
|
<li>Fixed possible stack/buffer overflows inside zip, imap & sqlite extensions.</li>
|
|
<li>Fixed several possible buffer overflows inside the stream filters.</li>
|
|
<li>Memory limit is now enabled by default.</li>
|
|
<li>Added internal heap protection.</li>
|
|
<li>Extended filter extension support for $_SERVER in CGI and apache2 SAPIs.</li>
|
|
</ul>
|
|
<p>
|
|
<b>Security Enhancements and Fixes in PHP 4.4.5 only:</b>
|
|
</p>
|
|
<ul>
|
|
<li>Fixed possible overflows inside zip & imap extensions.</li>
|
|
<li>Fixed a possible buffer overflow inside mail() function on Windows.</li>
|
|
<li>Unbundled the ovrimos extension.</li>
|
|
</ul>
|
|
|
|
<p>
|
|
The majority of the security vulnerabilities discovered and resolved can in
|
|
most cases be only abused by local users and cannot be triggered remotely.
|
|
However, some of the above issues can be triggered remotely in certain
|
|
situations, or exploited by malicious local users on shared hosting setups
|
|
utilizing PHP as an Apache module. Therefore, we strongly advise all users of
|
|
PHP, regardless of the version to upgrade to the 5.2.1 or 4.4.5 releases as soon as possible.
|
|
</p>
|
|
|
|
<p>
|
|
For users upgrading to PHP 5.2 from PHP 5.0 and PHP 5.1, an upgrade guide is
|
|
available <a href="/UPDATE_5_2.txt">here</a>, detailing the changes between
|
|
those releases and PHP 5.2.1.
|
|
</p>
|
|
|
|
<p><strong>Update: Feb 14th;</strong> Added release information for PHP
|
|
4.4.5.</p>
|
|
|
|
<p><strong>Update: Feb 12th;</strong> The Windows install package had problems
|
|
with upgrading from previous PHP versions. That has now been fixed and new file
|
|
posted in the <a href="/downloads.php">download section</a>.</p>
|
|
<hr />
|
|
|
|
<a name="3"></a>
|
|
<h1>The front page has changed</h1>
|
|
<p>
|
|
<span class="newsdate">[08-Feb-2007]</span>
|
|
The news on the front page of php.net has changed, the <a href="/conferences/">conference
|
|
announcements</a> are now located on their own page. The idea is to keep php.net specific
|
|
news clear and also opens the door for additional news entries, like for RC releases.
|
|
More changes are on the way so keep an eye out.
|
|
</p>
|
|
|
|
<hr />
|
|
|
|
<a name="2"></a>
|
|
<?php news_image('http://php.net/manual/en/','php-logo.gif','The PHP Manual'); ?>
|
|
<h1>PHP Manual Updates</h1>
|
|
<p>
|
|
<span class="newsdate">[03-Feb-2007]</span>
|
|
The PHP documentation team is proud to present to the PHP community a few
|
|
fixes and tweaks to the <a href="http://php.net/manual/en/">PHP Manual</a>,
|
|
including:
|
|
</p>
|
|
<ul>
|
|
<li>an improved, XSL-based build system that will deliver compiled manuals
|
|
to mirrors in a more timely manner (goodbye dsssl)</li>
|
|
<li>manual pages can now contain images (see
|
|
<code><a href="http://php.net/en/function.imagearc">imagearc()</a></code>
|
|
for an example)</li>
|
|
<li>updated function version information and capture system (fewer
|
|
"no version information, might be only in CVS" messages)</li>
|
|
<li>... and more to come!</li>
|
|
</ul>
|
|
<p>
|
|
Please <a href="http://php.net/about.howtohelp">help us improve the documentation</a> by <a href="http://bugs.php.net/">submitting bug reports</a>, and adding notes to undocumented functions.
|
|
</p>
|
|
|
|
<hr />
|
|
|
|
<a name="1"></a>
|
|
<h1>PHP 5.2.0 Released</h1>
|
|
<p>
|
|
<span class="newsdate">[02-Nov-2006]</span>
|
|
The PHP development team is proud to announce the immediate release of PHP
|
|
5.2.0. This release is a major improvement in the 5.X series, which includes a
|
|
large number of new features, bug fixes and security enhancements.
|
|
Further details about this release can be found in the release announcement
|
|
<a href="/releases/5_2_0.php">5.2.0</a>, the full list of changes is
|
|
available in the ChangeLog <a href="/ChangeLog-5.php#5.2.0">PHP 5</a>.
|
|
</p>
|
|
<p>
|
|
All users of PHP, especially those using earlier PHP 5 releases are advised
|
|
to upgrade to this release as soon as possible. This release also obsoletes
|
|
the 5.1 branch of PHP.
|
|
</p>
|
|
|
|
<p>
|
|
For users upgrading from PHP 5.0 and PHP 5.1 there is an upgrading guide
|
|
available <a href="/UPDATE_5_2.txt">here</a>, detailing the changes between those releases
|
|
and PHP 5.2.0.
|
|
</p>
|
|
|
|
<hr />
|
|
|
|
<p class="center"><a href="/archive/index.php">News Archive</a></p>
|
|
|
|
<?php
|
|
site_footer(
|
|
array("rss" => "/news.rss") // Add a link to the feed at the bottom
|
|
);
|
|
|