1
0
mirror of https://github.com/php/web-php.git synced 2026-03-23 23:02:13 +01:00

merge latest stuff from head

This commit is contained in:
jim winstead
2001-03-06 22:19:36 +00:00
parent 61a5b99866
commit 8c30820b9d
21 changed files with 328 additions and 1147 deletions

View File

@@ -1,3 +1,11 @@
NOTE: If you want to become an official PHP mirror, please sure to
read and follow these instructions carefully. You should have the
consent of your hosting company (if you aren't a hosting company
yourself), and be prepared for some reasonably significant bandwidth
usage (a reasonable estimate as of 2/2001 is 100MB/day). Also,
we are currently only accepting new official mirrors in countries
where we don't already have two active official mirrors.
Here is how to mirror the PHP site:
First, you need to have a rsync (http://rsync.samba.org/) installed.
@@ -19,17 +27,22 @@ to www.php.net to fetch user contributed manual notes.
Once you create a virtualhost which looks something like:
<VirtualHost xx.php.net>
ServerName xx.php.net
ServerAdmin yourname@yourdomain.com
DocumentRoot /www/htdocs/phpweb
php_value include_path .:/www/htdocs/phpweb/include
php_flag short_open_tag on
ErrorLog logs/error_log
TransferLog logs/access_log
DirectoryIndex index.php index.php3 index.html index.htm
ErrorDocument 404 /error/
ErrorDocument 401 /error/
ErrorDocument 403 /error/
ServerName xx.php.net
ServerAlias www.xx.php.net
ServerAdmin yourname@yourdomain.com
DocumentRoot /www/htdocs/phpweb
<IfModule mod_php3.c>
php3_include_path .:/www/htdocs/phpweb/include
</IfModule>
<IfModule mod_php4.c>
php_value include_path .:/www/htdocs/phpweb/include
</IfModule>
ErrorLog logs/error_log
TransferLog logs/access_log
DirectoryIndex index.php index.html
ErrorDocument 404 /error/
ErrorDocument 401 /error/
ErrorDocument 403 /error/
</VirtualHost>
modified to reflect your local paths and country, of course, then your site
@@ -73,14 +86,11 @@ appropriate steps will be taken to integrate your mirror site:
available in the preferred language yet, so long as English is
an acceptable secondary default.
Don't worry about graphics for your country's flag - we've got them all!
You must also sign up to the mirrors mailing list, by sending an empty
message to:
php-mirrors-subscribe@lists.php.net
We need to be able to keep in touch with you!
It is *not* required to sign up to the mirrors mailing list, by
sending an empty message to: php-mirrors-subscribe@lists.php.net
as we are able to keep in touch with you using your given email
address. The traffic on the mentioned mailing list is mainly
interesting for the webmasters of php.net.
And finally, don't forget to put a nice little PHP logo somewhere on your
hosting company's site if possible. Grab one of the logos from the

View File

@@ -28,11 +28,6 @@
<xsl:template match="/search-results">
<!-- Loop through all the matches -->
<xsl:for-each select="match">
<tr bgcolor="#D0D0D0" valign="top">
<td align="left"><img alt=" " src="/gifs/gcap-lefttop.gif" width="18"
height="18" border="0" /><br /></td>
<td align="left" rowspan="2">
<font face="tahoma, verdana, arial, helvetica, sans-serif" size="-1">
<xsl:element name="a">
<xsl:attribute name="href">
<xsl:value-of select="url_homepage" />
@@ -45,33 +40,10 @@
License: <xsl:value-of select="license" />
<xsl:text> -- </xsl:text>
Updated: <i><xsl:value-of select="date_updated" /></i>
</font>
</td>
<td align="right"><img alt=" " src="/gifs/gcap-righttop.gif" width="18"
height="18" border="0" /><br /></td>
</tr>
<tr valign="bottom" bgcolor="#D0D0D0">
<td align="left"><img alt=" " src="/gifs/gcap-leftbot.gif" width="18"
height="18" border="0" /><br /></td>
<td align="right"><img alt=" " src="/gifs/gcap-rightbot.gif" width="18"
height="18" border="0" /><br /></td>
</tr>
<tr valign="top">
<td width="18"><br /></td>
<td align="left">
<table border="0" cellpadding="5" cellspacing="0" bgcolor="#F0F0F0" width="100%">
<tr>
<td>
<font face="tahoma, verdana, arial, helvetica, sans-serif" size="-1">
<xsl:value-of select="desc_full" />
</font>
<br/>
</td>
</tr>
</table>
</td>
<td width="18"><br /></td>
</tr>
<br />
<br />
<xsl:value-of select="desc_full" />
<hr noshade="1" size="1" color="#000000" />
</xsl:for-each>
</xsl:template>

View File

@@ -1,9 +1,34 @@
#!/bin/sh
lynx -source http://www.freshmeat.net/search/?q=php\&mode=xml > backend/projects.xml~
lynx -source http://freshmeat.net/search-xml/?q=php\&filter=183 > backend/projects.xml~
if [ $? -ne 0 ]; then
echo problem getting results from freshmeat
exit 1
fi
mv backend/projects.xml~ backend/projects.xml
# won't be necessary when this is running on a machine that has php+sablotron
# but for now is necessary to give time for projects.xml to get mirrored over
# to www.php.net
sleep 900
lynx -source http://www.php.net/bin/projects.php > backend/projects.html~
if [ $? -ne 0 ]; then
echo problem converting results to html
exit 1
fi
mv backend/projects.html~ backend/projects.html
# generating the include file projects.inc
sleep 900
lynx -source http://www.php.net/bin/projects_inc.php > backend/projects.inc~
if [ $? -ne 0 ]; then
echo problem generating the include file
exit 1
fi
mv backend/projects.inc~ backend/projects.inc

View File

@@ -75,12 +75,8 @@ function showBook($title, $title_link, $author, $author_link=false, $image=false
echo "<br>\n";
echo "</p>\n</small>\n";
echo "</td>\n</tr>\n\n";
}
?>
<h1>
PHP Books
</h1>
@@ -424,6 +420,15 @@ showBook( array("PHP 4","Webserver-Programmierung f&uuml;r Um- und Einsteiger"),
"de" #lang
);
showBook( "PHP 4", # title(s)
"http://www.amazon.de/exec/obidos/ASIN/3826690044/wwwphpnet07", #title_link
"Dr. Susanne Wigard", #author(s)
"", #author_link(s)
"susanne_wigard.jpg", #img
"BHV, December 2000, ISBN 3-8266-9004-4, 448 pages", #info
"http://www.bhv.net/bhv/buchreihen/deinst_1110_3.html", #info_link
"de" #lang
);
showBook( "Das Einsteigerseminar PHP 4.0", #title(s)
"http://www.amazon.de/exec/obidos/ASIN/3828711103/wwwphpnet07", #title_link
@@ -501,6 +506,15 @@ showBook( "PHP 4 f&uuml;r Profis. Werkzeugkiste und Kochbuch", #title(s)
"de" #lang
);
showBook( "PHP 4 programmering", #title(s)
"http://pagina.se/bok.html?20660", #title_link
"Jesper Ek and Ulrika Eriksson", #author(s)
"", #author_link(s)
"ek-eriksson.gif", #img
"February 2001, ISBN 9-1636-0660-7, 220 pages", #info
"", #info_link
"se" #lang
);
showBook( "Gu&iacute;a Pr&aacute;cticas PHP 4", #title(s)
"http://www.AnayaMultimedia.es/", #title_link
@@ -760,6 +774,6 @@ showBook( "Mastering Regular Expressions", #title(s)
<?
<?php
commonFooter();
?>

View File

@@ -155,7 +155,6 @@ function show_types($first_item,$show_any,$var_name) {
"mhash related",
"Misbehaving function",
"FrontPage related",
"Feature/Change Request",
"Other");
echo "<select name=\"$var_name\">\n<option>$first_item\n";
@@ -372,6 +371,7 @@ if (isset($cmd) && $cmd == "Send bug report") {
}
$where_clause .= " dev_id = '$by' ";
}
$where_clause .= " and php_version like '3%'";
table_wrapper();
echo "<br><center><a href=\"$PHP_SELF\">Submit a Bug Report</a></center>\n";
} else if(!isset($cmd) && isset($id)) {

View File

@@ -604,7 +604,7 @@ if (isset($cmd) && $cmd == "Send bug report") {
if(crypt($pw,substr($psw,0,2))==$psw) {
$ts=date("Y-m-d H:i:s");
$result = mysql_query("select status, bug_type, ldesc, php_version, php_os from bugdb where id=$id");
mysql_query("UPDATE bugdb set sdesc='$esdesc',status='$estatus', bug_type='$ebug_type', assign='$eassign', comments='$comments', ts2='$ts', dev_id='$user' where id=$id");
mysql_query("UPDATE bugdb set sdesc='$esdesc',status='$estatus', bug_type='$ebug_type', assign='$eassign', comments='$comments', ts2='$ts', dev_id='$user', php_version='$ephp_version' where id=$id");
if (!empty($ncomment)) {
mysql_query("INSERT INTO bugdb_comments (bug, email, ts, comment) VALUES ($id,'".$user."@php.net','$ts','$ncomment')");
}

View File

@@ -83,11 +83,14 @@ you don't!
<tr><th>&nbsp;</th><td><input type=submit value="Send It"></td></tr>
</table>
</form>
</p>
<?php
} elseif ($fullname && $email && $password && $purpose && $checkread) {
mail("rasmus@lerdorf.on.ca","CVS Account Request","Full name: $fullname\nEmail: $email\nID: $id\nPassword: ".crypt($password)."\nPurpose: $purpose");
mail("php-dev@lists.php.net","CVS Account Request","Full name: $fullname\nEmail: $email\nID: $id\nPurpose: $purpose");
<?php } elseif ($fullname && $email && $password && $purpose && $checkread) {
mail("rasmus@lerdorf.on.ca","CVS Account Request","Full name: $fullname\nEmail: $email\nID: $id\nPassword: ".crypt($password)."\nPurpose: $purpose");
mail("php-dev@lists.php.net", "CVS Account Request",
"Full name: $fullname\n".
"Email: $email\n".
"ID: $id\n".
"Purpose: $purpose",
'From: "CVS Account Request" <donotemail@php.net>');
?>
<p>
Thank you. Your request has been sent.

159
docs.php
View File

@@ -1,13 +1,38 @@
<?php
require_once 'prepend.inc';
commonHeader("Documentation");
$languages = array(
"en" => "English",
"pt_BR" => "Brazilian Portuguese",
"cs" => "Czech",
"nl" => "Dutch",
"fr" => "French",
"de" => "German",
"hu" => "Hungarian",
"it" => "Italian",
"ja" => "Japanese",
"kr" => "Korean",
"es" => "Spanish"
);
$formats = array(
"bigmanual.html.gz" => array("Single HTML (compressed)", "html.gz"),
"manual_doc.pdb" => array("PalmPilot DOC", "doc.pdb"),
"manual_isilo.pdb" => array("PalmPilot iSilo", "isilo.pdb"),
"manual.pdf" => array("PDF", "pdf"),
"manual.txt.gz" => array("Plain text (compressed)", "txt.gz"),
"manual.tar.gz" => array("Many HTML files (compressed tar)", "tar.gz"),
"manual.zip" => array("Many HTML files (zip)", "zip"),
"manual.chm" => array("Windows HTML Help", "chm")
);
?>
<H1>
PHP FAQ
</H1>
<ul>
<li>The <a href="FAQ.php">PHP FAQ</a> is your first stop for general
<li>The <a href="/FAQ.php">PHP FAQ</a> is your first stop for general
information and those questions that seem to be on most people's minds.
</ul>
@@ -15,20 +40,18 @@ PHP FAQ
<? echo hdelim(); ?>
<?php
$prefix = ($MYSITE=='http://bugs.php.net/') ? 'http://www.php.net' : '';
?>
<H1>The PHP Manual On-line</H1>
<ul>
<li><a href="manual/">PHP Manual Online</a>. Your reference
<li><a href="<?php echo $prefix; ?>/manual/">PHP Manual Online</a>. Your reference
to everything that's great about PHP.
<li><a href="manual/html/">Plain HTML PHP Manual Online</a>. The very
<li><a href="<?php echo $prefix; ?>/manual/html/">Plain HTML PHP Manual Online</a>. The very
same manual in a light-weight, HTML 3.2 version without any bells or
whistles.
<li><a href="http://snaps.php.net/manual/">Latest Version and Internation Versions</a>.
Depending on how industrious the documentation team has been, you may find more
up-to-date info in this version of the manual than you will at one of the above
links. You can also browse or download translated versions here.
</ul>
@@ -44,7 +67,7 @@ PHP FAQ
all of the documentation, this will be the most current version,
as it is updated (and annotated) daily.
<LI><A href="http://www.php.net/manual/browse-errata.php3">PHP Manual
<LI><A href="http://www.php.net/manual/browse-errata.php">PHP Manual
Errata</A>. This is the collected errata from the on-line errata/note
system.
</ul>
@@ -53,83 +76,57 @@ PHP FAQ
<? echo hdelim(); ?>
<h1>Downloadable PHP Manuals</h1>
<H1>Downloadable PHP Manuals</H1>
<H2>HTML Version</H2>
<ul>
<li><?php download_link("bigmanual.html", "PHP HTML Manual (one BIG file)"); ?>
<li><?php download_link("manual.zip", "PHP HTML Manual ZIP File"); ?>
<li><?php download_link("manual.tar.gz", "PHP HTML Manual .tar.gz File"); ?>
</ul>
<H2>Latest Versions (Daily Snapshots)</H2>
<ul>
<li><?php download_link("http://snaps.php.net/manual/manual-en-current.tar.gz", "PHP HTML Manual (English) .tar.gz File"); ?>
<li><?php download_link("http://snaps.php.net/manual/manual-de-current.tar.gz", "PHP HTML Manual (German) .tar.gz File"); ?>
<li><?php download_link("http://snaps.php.net/manual/manual-it-current.tar.gz", "PHP HTML Manual (Italian) .tar.gz File"); ?>
<li><?php download_link("http://snaps.php.net/manual/manual-ja-current.tar.gz", "PHP HTML Manual (Japanese) .tar.gz File"); ?>
<li><?php download_link("http://snaps.php.net/manual/manual-fr-current.tar.gz", "PHP HTML Manual (French) .tar.gz File"); ?>
<li><?php download_link("http://snaps.php.net/manual/manual-es-current.tar.gz", "PHP HTML Manual (Spanish) .tar.gz File"); ?>
<li><?php download_link("http://snaps.php.net/manual/manual-hu-current.tar.gz", "PHP HTML Manual (Hungarian) .tar.gz File"); ?>
</ul>
<H2>WinHelp (CHM) versions (January 12, 2001)</H2>
<ul>
<li><?php download_link("manual.chm", "PHP Manual (English)"); ?>
<li><?php download_link("manual_de.chm", "PHP Manual (German)"); ?>
<li><?php download_link("manual_it.chm", "PHP Manual (Italian)"); ?>
<li><?php download_link("manual_nl.chm", "PHP Manual (Dutch)"); ?>
<li><?php download_link("manual_fr.chm", "PHP Manual (French)"); ?>
<li><?php download_link("manual_es.chm", "PHP Manual (Spanish)"); ?>
<li><?php download_link("manual_hu.chm", "PHP Manual (Hungarian)"); ?>
<li><?php download_link("manual_pt_BR.chm", "PHP Manual (Portugese)"); ?>
</ul>
<p>The PHP manual is also available in a selection of downloadable
formats for off-line use. Pick your format and language from the
table below:</p>
<H2>PDF Versions (February 04, 2001)</H2>
<ul>
<li><?php download_link("http://snaps.php.net/~jah/pdf/manual-cs.pdf", "PHP PDF Manual (Czech)"); ?>
<li><?php download_link("http://snaps.php.net/~jah/pdf/manual-nl.pdf", "PHP PDF Manual (Dutch)"); ?>
<li><?php download_link("http://snaps.php.net/~jah/pdf/manual-en.pdf", "PHP PDF Manual (English)"); ?>
<li><?php download_link("http://snaps.php.net/~jah/pdf/manual-fr.pdf", "PHP PDF Manual (French)"); ?>
<li><?php download_link("http://snaps.php.net/~jah/pdf/manual-de.pdf", "PHP PDF Manual (German)"); ?>
<li><?php download_link("http://snaps.php.net/~jah/pdf/manual-hu.pdf", "PHP PDF Manual (Hungarian)"); ?>
<li><?php download_link("http://snaps.php.net/~jah/pdf/manual-it.pdf", "PHP PDF Manual (Italian)"); ?>
<li><?php download_link("http://snaps.php.net/~jah/pdf/manual-pt_BR.pdf", "PHP PDF Manual (Portuguese)"); ?>
<li><?php download_link("http://snaps.php.net/~jah/pdf/manual-es.pdf", "PHP PDF Manual (Spanish)"); ?>
</ul>
<table border="0" cellpadding="2" cellspacing="1" width="100%">
<tr bgcolor="#cccccc">
<td></td>
<?php
while (list($k,$v) = each($formats)) {
echo "<th>$v[0]</th>\n";
}?>
</tr>
<?php
while (list($langcode,$language) = each($languages)) {
echo "<tr>\n<td bgcolor=\"#dddddd\"><b>$language</b></td>\n";
reset($formats);
while (list($fn,$details) = each($formats)) {
echo "<td align=\"center\" bgcolor=\"#eeeeee\">";
# temporary hack until pdf are auto-generated
if ($fn == "manual.pdf") {
echo "<a href=\"http://snaps.php.net/~jah/pdf/manual-$langcode.pdf\">$details[1]</a></td>";
continue;
}
# temporary hack until chm are auto-generated
if ($fn == "manual.chm") {
echo "<a href=\"distributions/manual_$langcode.chm\">$details[1]</a></td>";
continue;
}
$size = @filesize("manual/$langcode/$fn");
if ($size) {
echo "<a href=\"manual/$langcode/$fn\">$details[1]</a>";
}
else {
echo "&nbsp;";
}
echo "</td>\n";
}
}?>
</table>
<H2>Other Versions</H2>
<ul>
<li><?php download_link("manual.rtf", "PHP Manual RTF File"); ?>
<li><?php download_link("manual_isilo.pdb","PHP Manual - PalmPilot Isilo format"); ?>
<li><?php download_link("manual_doc.pdb","PHP Manual - PalmPilot DOC format"); ?>
</ul>
<h1>More Information</h1>
<? echo hdelim(); ?>
<H1>Translations</H1>
<ul>
<li><a href="http://www.cityfujisawa.ne.jp/~louis/apps/phpfi/index.html"
>Japanese translation of the PHP manual</a>
<li><a href="http://dev.nexen.net/docs/php/annotee/manuel_toc.php">Version fran&ccedil;aise annot&eacute;e.</a><br>
Versions t&eacute;l&eacute;chargeables <a href="http://dev.nexen.net/docs/php/chargement.html">disponibles</a>. (PDF, HTML, doc, ps, palm).
</ul>
<? echo hdelim(); ?>
<H1>More Information</H1>
<ul>
<li><a href="http://zugeschaut-und-mitgebaut.de/php/">PHP Function Table</a>.
This page has a overview about which pages are translated to the
different languages and in which versions of PHP the functions
are available.
<li><a href="books.php">Books on PHP</A>. Here you can find a
<li><a href="/books.php">Books on PHP</A>. Here you can find a
great selection of books on PHP and related themes.
<li>License questions? See the <a href="/license/#FAQ">License FAQ</a></li>
@@ -142,7 +139,7 @@ Versions t&eacute;l&eacute;chargeables <a href="http://dev.nexen.net/docs/php/ch
<H1>CVS Account</H1>
<ul>
<li><a href="anoncvs.php">CVS instructions</a></li>
<li><a href="/anoncvs.php">CVS instructions</a></li>
<li><A href="/cvs-php.php">Getting a CVS account</a>. If you wish to help out
with the development of PHP, read this.
</ul>
@@ -152,12 +149,10 @@ with the development of PHP, read this.
<? echo hdelim(); ?>
<H1>Old/Unsupported Information</H1>
<h1>Old/Unsupported Information</h1>
<ul>
<li><a href="manual/phpfi2.php">PHP/FI 2.0 Manual</a>. This includes
discussions on a few topics that aren't covered in the PHP 3 manual
yet.
<li><a href="/manual/phpfi2.html">PHP/FI 2.0 Manual</a>.
</ul>
<? commonFooter("") ?>
<?php commonFooter("") ?>

BIN
gifs/books/ek-eriksson.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

View File

@@ -1,187 +1,26 @@
<?php
// using Manuel Lemos's email validation class
/*
* email_validation.php
*
* @(#) $Header$
*
* email_validation.inc
* $Id$
*/
class email_validation_class
{
var $email_regular_expression="^([-!#\$%&'*+./0-9=?A-Z^_`a-z{|}~ ])+@([-!#\$%&'*+/0-9=?A-Z^_`a-z{|}~ ]+\\.)+[a-zA-Z]{2,4}\$";
var $timeout=0;
var $localhost="";
var $localuser="";
var $debug=0;
Function OutputDebug($message)
{
echo $message,"\n";
}
Function GetLine($connection)
{
for($line="";;)
{
if(feof($connection))
return(0);
$line.=fgets($connection,100);
$length=strlen($line);
if($length>=2
&& substr($line,$length-2,2)=="\r\n")
{
$line=substr($line,0,$length-2);
if($this->debug)
$this->OutputDebug("< $line");
return($line);
}
}
}
Function PutLine($connection,$line)
{
if($this->debug)
$this->OutputDebug("> $line");
return(fputs($connection,"$line\r\n"));
}
Function ValidateEmailAddress($email)
{
return(eregi($this->email_regular_expression,$email)!=0);
}
Function ValidateEmailHost($email,$hosts=0)
{
if(!$this->ValidateEmailAddress($email))
return(0);
$user=strtok($email,"@");
$domain=strtok("");
if(GetMXRR($domain,&$hosts,&$weights))
{
$mxhosts=array();
for($host=0;$host<count($hosts);$host++)
$mxhosts[$weights[$host]]=$hosts[$host];
KSort($mxhosts);
for(Reset($mxhosts),$host=0;$host<count($mxhosts);Next($mxhosts),$host++)
$hosts[$host]=$mxhosts[Key($mxhosts)];
}
else
{
$hosts=array();
if(strcmp(@gethostbyname($domain),$domain)!=0)
$hosts[]=$domain;
}
return(count($hosts)!=0);
}
Function VerifyResultLines($connection,$code)
{
while(($line=$this->GetLine($connection)))
{
if(!strcmp(strtok($line," "),$code))
return(1);
if(strcmp(strtok($line,"-"),$code))
return(0);
}
return(-1);
}
Function ValidateEmailBox($email)
{
if(!$this->ValidateEmailHost($email,&$hosts))
return(0);
if(!strcmp($localhost=$this->localhost,"")
&& !strcmp($localhost=getenv("SERVER_NAME"),"")
&& !strcmp($localhost=getenv("HOST"),""))
$localhost="localhost";
if(!strcmp($localuser=$this->localuser,"")
&& !strcmp($localuser=getenv("USERNAME"),"")
&& !strcmp($localuser=getenv("USER"),""))
$localuser="root";
for($host=0;$host<count($hosts);$host++)
{
if($this->debug)
$this->OutputDebug("Connecting to host \"".$hosts[$host]."\"...");
if(($connection=($this->timeout ? fsockopen($hosts[$host],25,&$errno,&$error,$this->timeout) : fsockopen($hosts[$host],25))))
{
if($this->debug)
$this->OutputDebug("Connected.");
if($this->VerifyResultLines($connection,"220")>0
&& $this->PutLine($connection,"HELO $localhost")
&& $this->VerifyResultLines($connection,"250")>0
&& $this->PutLine($connection,"MAIL FROM: <$localuser@$localhost>")
&& $this->VerifyResultLines($connection,"250")>0
&& $this->PutLine($connection,"RCPT TO: <$email>")
&& ($result=$this->VerifyResultLines($connection,"250"))>=0)
{
if($this->debug)
$this->OutputDebug("This host states that the address is ".($result ? "" : "not ")."valid.");
fclose($connection);
if($this->debug)
$this->OutputDebug("Disconnected.");
return($result);
} else { // Jesus M. Castagnetto
if($this->debug)
$this->OutputDebug("Unable to validate the address with this host.");
fclose($connection);
if($this->debug)
$this->OutputDebug("Disconnected.");
return false;
}
}
else
{
if($this->debug)
$this->OutputDebug("Failed.");
return false; // JMC
}
}
return(-1);
}
};
// checks that is an *outside* host, and removes the
// SPAM protection, before passing the address to the validation class
// checks that is an *outside* host, and tries to remove anti-SPAM bits
function clean_AntiSPAM ($email) {
$remove_spam = "[-_]?(NO|I[-_]?HATE|DELETE|REMOVE)[-_]?(THIS)?(ME|SPAM)?[-_]?";
return eregi_replace($remove_spam,"",trim($email));
}
function is_emailable_address( $email ) {
function is_emailable_address( $email) {
$hosts_regex="lists\.php\.net|chek.*\.com";
$excluded_hosts = ereg($hosts_regex,$email);
$email_regex="^([-!#\$%&'*+./0-9=?A-Z^_`a-z{|}~ ])+@([-!#\$%&'*+/0-9=?A-Z^_`a-z{|}~ ]+\\.)+[a-zA-Z]{2,4}\$";
if (!$excluded_hosts && $email != "") {
$validator = new email_validation_class;
$validator->timeout=10;
//$validator->debug=1;
return $validator->ValidateEmailBox($email);
return eregi($email_regex, $email);
} else {
return false;
}
}
// test of the validation function
// remove this part once all changes seem to work
/*
$test_add = array (
"wrong-email-address@lists.php.net","jcastagnetto@yahoo.com",
"some-wrong@asdas.com", "jcastagnetto-NO-SPAM@yahoo.com",
"jcastagnetto@NoSpam-yahoo.com", "jmcastagnetto@chek2.com",
"jcastagnetto-i-hate-spam@NOSPAMyahoo.com",
"asasasd324324@php.net", "jcastagnetto-delete-this-@yahoo.com",
"wrong-address-with@@@@-remove_me-and-some-i-hate_SPAM-stuff");
while (list(,$v) = each($test_add)) {
echo "The address: $v (".clean_AntiSpam($v).") is";
if (!is_emailable_address(clean_AntiSPAM($v)))
echo " not";
echo " valid\n";
}
*/
?>

View File

@@ -165,7 +165,7 @@ function makeEntry($date,$name,$blurb,$id=0) {
<?
echo clean_note($blurb);
?><BR>
<?if (isset($MAGIC_COOKIE)):?>
<?if (isset($MAGIC_COOKIE) && $id):?>
<hr noshade size=1>
<a href="/manual/admin-notes.php?action=delete+<?echo $id?>&brief=1&popup=1" target="admin">delete</a> |
<a href="/manual/admin-notes.php?action=reject+<?echo $id?>&brief=1&popup=1" target="admin">reject</a> |

View File

@@ -15,19 +15,24 @@ $MIRRORS = array(
"http://at.php.net/" => array("at", "Goodie Domain Service", "gds", "http://gd.tuwien.ac.at/", 1, 0, "de"),
"http://bg.php.net/" => array("bg", "Bulgaria Online", "", "http://online.bg/", 1, 0, "en"),
"http://br.php.net/" => array("br", "SST Internet", "sst", "http://www.sst.com.br/", 1, 0, "pt_BR"),
# "http://br2.php.net/" => array("br", "Lune Networks", "", "http://www.lunenetworks.com.br/", 1, 0, "pt_BR"),
"http://ca.php.net/" => array("ca", "easyDNS", "easydns", "http://www.easydns.com/", 1, 0, "en"),
"http://cn.php.net/" => array("cn", "China GNU/Linux Forum", "", "http://www.linuxforum.net/", 1, 0, "cn"),
# "http://cn.php.net/" => array("cn", "China GNU/Linux Forum", "", "http://www.linuxforum.net/", 1, 0, "cn"),
# "http://hk.php.net/" => array("hk", "TraLand.com", "", "http://www.traland.com", 1, 0, "en"),
"http://php3.globe.de/" => array("de", "@GLOBE GmbH", "globe", "http://www.globe.de/", 1, 0, "de"),
"http://php3.de/" => array("de", "Schlund + Partner", "schlund", "http://admin.schlund.de/s+p/count.phtml?BName=logo-schlund.gif&BLocation=(www.php3.de)&url=www.schlund.de", 1, 1, "de"),
"http://dk.php.net/" => array("dk", "B&oslash;rsen Online", "borsen", "http://www.borsen.dk/", 1, 0, "dk"),
"http://fi.php.net/" => array("fi", "NIC Finland", "nic", "http://www.nic.fi/", 1, 0, "fi"),
"http://fi2.php.net/" => array("fi", "NIC Finland", "nic", "http://www.nic.fi/", 2, 0, "fi"),
# "http://fi2.php.net/" => array("fi", "IMG-Multimedia", "", "http://www.img-media.com/", 1, 0, "fi"),
"http://fr.php.net/" => array("fr", "L'Universit&eacute; Michel de Montaigne Bordeaux III","montaigne", "http://www-recherche.montaigne.u-bordeaux.fr/", 1, 0, "fr"),
"http://hu.php.net/" => array("hu", "Externet", "externet", "http://www.externet.hu/", 1, 0, "hu"),
"http://php.fmal.com/" => array("it", "Open Technology Consulting", "sts", "http://otc.fmal.com/", 1, 0, "it"),
"http://it2.php.net/" => array("it", "Utility Line Italia S.r.l.", "utilina", "http://www.uli.it/", 1, 0, "it"),
# "http://it3.php.net/" => array("it", "Italia OnLine", "", "http://www.iol.it/", 1, 0, "it"),
"http://jp.php.net/" => array("jp", "HappySize, Inc.", "happy", "http://jp.gigahit.com/", 1, 1, "jp"),
"http://kr.php.net/" => array("kr", "HolyNet", "holynet", "http://www.holywar.net/", 1, 1, "kr"),
# "http://jp2.php.net/" => array("jp", "Hitachi Business International, Ltd.", "http://mirrors.hbi.co.jp/", 1, 1, "jp"),
# "http://kr.php.net/" => array("kr", "HolyNet", "holynet", "http://www.holywar.net/", 1, 1, "kr"),
# "http://li.php.net/" => array("li", "Lie-Comtel AG", "", "http://www.lie-comtel.li", 1, 0, "de"),
"http://mx.php.net/" => array("mx", "Urbano.com.mx", "urbano", "http://web.urbano.com.mx/?in=php", 1, 0, "es"),
"http://nl.php.net/" => array("nl", "WEBtic Internet Consultancy", "webtic", "http://www.webtic.com/", 1, 0, "nl"),
"http://php.nederland.net/" => array("nl", "Nederland.net", "nederlandnet", "http://www.nederland.net/", 1, 0, "nl"),
@@ -39,13 +44,14 @@ $MIRRORS = array(
"http://pt2.php.net/" => array("pt", "SONET", "", "http://www.sonet.pt/", 1, 0, "pt"),
"ftp://ftp.utt.ro/mirrors/php3/" => array("ro", "University of Timisoara","upt", "http://www.utt.ro/", 0, 0, "ro"),
"http://ru.php.net/" => array("ru", "Direct Internet", "directnet", "http://www.dn.ru/", 1, 0, "ru"),
"http://se.php.net/" => array("se", "Chalmers Lindholmen", "cl", "http://www.ios.chalmers.se/", 1, 1, "se"),
"http://sg.php.net/" => array("sg", "Hwa Chong Junior College", "", "http://www.hjc.edu.sg/", 1, 0, "en"),
"http://se.php.net/" => array("se", "Chalmers Lindholmen", "cl", "http://www.chl.chalmers.se/", 1, 1, "se"),
# "http://sg.php.net/" => array("sg", "Hwa Chong Junior College", "", "http://www.hjc.edu.sg/", 1, 0, "en"),
"http://ch.php.net/" => array("ch", "Laboratoire de Bases de Donn&eacute;es", "lbd", "http://lbdwww.epfl.ch/", 1, 1, "en"),
"http://sk.php.net/" => array("sk", "Isternet SR", "isternet", "http://www.isternet.sk/", 1, 0, "sk"),
"http://es.php.net/" => array("es", "IBD Internet", "ibd", "http://www.ibd.es/", 1, 0, "es"),
# "http://th.php.net/" => array("th", "", "", "", 1, 0, "th"),
"http://tr.php.net/" => array("tr", "Bilkent Sunsite", "sunsite", "http://sunsite.bilkent.edu.tr/", 1, 0, "tr"),
"http://tw.php.net/" => array("tw", "DW", "", "http://www.dw.com.tw", 1, 0, "en"),
# "http://tr2.php.net/" => array("tr", "proGEN Internet ve Bilisim Teknolojileri", "", "http://www.progen.com.tr/", 1, 1, "tr"),
# "http://tw.php.net/" => array("tw", "DW", "", "http://www.dw.com.tw", 1, 0, "en"),
"http://ua.php.net/" => array("ua", "PACOnet", "paco", "http://www.paco.net.ua/", 1, 0, "ua"),
"ftp://ua.php.net/" => array("ua", "PACOnet", "paco", "http://www.paco.net.ua/", 0, 0, "ua"),
"http://ua2.php.net/" => array("ua", "New Damage/Outline", "ndot", "http://www2.newdamage.com/", 1, 0, "ua"),
@@ -76,6 +82,7 @@ $COUNTRIES = array(
"es" => "Spain",
"fi" => "Finland",
"fr" => "France",
"hk" => "China (Hong Kong)",
"hu" => "Hungary",
"id" => "Indonesia",
"il" => "Israel",
@@ -94,6 +101,7 @@ $COUNTRIES = array(
"se" => "Sweden",
"sk" => "Slovakia",
"sg" => "Singapore",
"th" => "Thailand",
"tr" => "Turkey",
"tw" => "Taiwan",
"ua" => "Ukraine",
@@ -107,7 +115,7 @@ $COUNTRIES = array(
$MYSITE='http://'.getenv("SERVER_NAME").'/';
if (!isset($MIRRORS[$MYSITE])) {
$MIRRORS[$MYSITE] = array("xx", "Unknown", "none", $MYSITE, 1, 0);
$MIRRORS[$MYSITE] = array("xx", "Unknown", "none", $MYSITE, 1, 0, "en");
}
# fix for non-standard port in Australian mirror

View File

@@ -6,10 +6,17 @@ echo "\n<!--$MYSITE-->\n";
?>
<h1>
Patch Level 1 Released For PHP 4.0.4
</h1>
<p>
<h1>Announcing PHP-GTK</h1>
The first release of PHP-GTK is now available. PHP-GTK is a PHP extension that
provides an object-oriented interface to GTK+ toolkit and enables you to write
client-side cross-platform GUI applications. For more information, visit
<a href="http://gtk.php.net/">http://gtk.php.net/</a>.
<? echo hdelim(); ?>
<h1>Patch Level 1 released for PHP 4.0.4</h1>
Due to two security issues found in the Apache module version of PHP 4.0, PHP 4.0.4pl1
has been released. This bug-fix release also fixes a few party-crashing bugs that
were discovered in PHP 4.0.4.

View File

@@ -10,12 +10,21 @@ Brian Schaffner has put up a <A HREF="http://www.schaffner.net/emp">PHP Employme
PHP developers can post their resumes, and employers can post their job notices.
</P>
<P>
You can also try searching at <A
HREF="http://classifieds.yahoo.com/yc?cr=national&ce_f=&cpo=&cpj=&ck=PHP&g=&cs=time+2&cc=employment&cf=1&za=and"
>Yahoo Careers</A> for PHP-related jobs (US only for now).
</P>
<h4>Other Job Sites with PHP jobs:</h4>
<ul>
<li><a href="http://www.dice.com/">dice.com</a>
<li><a href="http://www.gnujobs.com/">gnujobs.com</a>
<li><a href="http://www.hotjobs.com/">hotjobs.com</a>
<li><a href="http://www.jobs.com/">Jobs.com</a>
<li><a href="http://www.monster.com/">Monster.com</a>
<li><a href="http://careers.yahoo.com/">Yahoo! Careers</a>
</ul>
<p>For a more exhaustive list of job
search sites on the web, take a look at <a
href="http://www.dmoz.org/Business/Employment/Job_Search/">dmoz.org's
Job Search listings</a>.</p>
<? echo hdelim(); ?>

View File

@@ -18,7 +18,8 @@ CREATE TABLE note (
*/
commonHeader("Manual Notes");
require("shared-manual.inc");
commonHeader("Manual Notes");
/* clean off leading and trailing whitespace */
$user = trim($user);
@@ -28,99 +29,116 @@ $note = trim($note);
on notes */
if ($user == "") {
$user = "php-general@lists.php.net";
}
}
if ($note == "") {
unset ($note);
}
}
# turn the POST data into GET data so we can do the redirect
if(!strstr($MYSITE,"www.php.net")) {
Header("Location: http://www.php.net/manual/add-note.php?sect=".urlencode($sect)."&lang=".urlencode($lang)."&redirect=".urlencode($redirect));
Header("Location: http://www.php.net/manual/add-note.php?sect=".urlencode($sect)."&lang=".urlencode($lang)."&redirect=".urlencode($redirect));
exit;
}
mysql_pconnect("localhost","nobody", "");
mysql_select_db("php3");
mysql_pconnect("localhost","nobody", "");
mysql_select_db("php3");
if (isset($note)):
$now = date("Y-m-d H:i:s");
$query = "INSERT INTO note (user, note, sect, ts, lang) VALUES ";
# protect all HTML-like stuff (may be "Joe Blow <joe@blow.com>")
$query .= "('" . htmlspecialchars($user) . "',";
# only protect PHP-code start tags.
$query .= "'" . ereg_replace("<\\?", "&lt;?", $note) . "',";
# or we could protect all HTML
#$query .= "'" . htmlspecialchars(nl2br($note)) . "',";
$query .= "'" . $sect . "',";
$query .= "'" . $now . "',";
$query .= "'" . $lang . "')";
//echo "<!--$query-->\n";
if (mysql_query($query)):?>
if (isset($note) && isset($action) && strtolower($action) != "preview"):
$now = date("Y-m-d H:i:s");
$query = "INSERT INTO note (user, note, sect, ts, lang) VALUES ";
# no need to call htmlspecialchars() -- we handle it on output
$query .= "('$user','$note','$sect','$now','$lang')";
//echo "<!--$query-->\n";
if (mysql_query($query)):?>
<P>Your submission was successful -- thanks for contributing!
<? $new_id = mysql_insert_id();
$msg = stripslashes($note);
$msg .= "\n\n $redirect \n";
mail("php-notes@lists.php.net","note $new_id added to $sect",$msg,"From: $user");
else:
// mail it.
mail($mailto, "failed manual note query", $query);
<? $new_id = mysql_insert_id();
$msg = stripslashes($note);
$msg .= "\n\n $redirect \n";
mail("php-notes@lists.php.net","note $new_id added to $sect",$msg,"From: $user");
else:
// mail it.
mail($mailto, "failed manual note query", $query);
?>
<P>There was an error processing your submission. It has been automatically
e-mailed to the developers.
<? endif;?>
<? endif;?>
<P>You can <A href="<?echo $redirect?>">go back</A> from whence you came,
or you can <A href="http://www.php.net/manual/">browse the manual with the
on-line notes</A>.
<? else:?>
<?else:
if (isset($note) && strtolower($action) == "preview"):?>
<p>This is what your entry will look like, roughly:</p>
<?
echo '<table border="0" cellpadding="0" cellspacing="0" width="100%">';
makeEntry(time(),stripslashes($user),stripslashes($note));
echo "</table>";
else:?>
<P>You can contribute to the PHP manual from the comfort of your browser!
Just add your comment in the big field below (and your email address in the
little one).
Just add your comment in the big field below, and, optionally, your email
address in the little one (usual anti-spam practices are OK, e.g.
johnNOSPAM@doe.NO_SPAM.com).</p>
<P>Note that HTML tags are not allowed in the posts. We tried allowing them
in the past, but people invariably made a mess of things making the manual
hard to read for everybody.
<p>Note that most HTML tags are not allowed in the posts. We tried
allowing them in the past, but people invariably made a mess of
things making the manual hard to read for everybody. You can include
&lt;p&gt;, &lt;/p&gt;, and &lt;br&gt; tags.</p>
<P><B>Note:</B> If you are trying to <A href="http://bugs.php.net">report a bug</A>, you're in the wrong place.
If you are just commenting on the fact that something is not documented,
save your breath. This is where <B>you</B> add to the documentation, not
where you ask <B>us</B> to add the documentation. This is also not the
correct place to <A href="/support.php">ask questions</A>. The notes
are being edited and support questions are being <b>deleted</b> from them,
so if you post a question, it will be removed. (But once you get an
answer, feel free to come back and add it here!)
<P>
<A href="/support.php">Click here to go to the support pages.</A><BR>
<A href="http://bugs.php.net">Click here to submit a bug report.</A><BR>
<A href="http://bugs.php.net">Click here to request a feature.</A>
<p>Read carefully the following note. If your post falls into one of the
categories mentioned there, it will be rejected by one of the editors.</p>
<?if (!isset($sect)):?>
<P><B>Note:</B> If you are trying to <A href="http://bugs.php.net">report a
bug</A>, or <a href="http://bugs.php.net/">request a new fature or language
change</a> you're in the wrong place. If you are just commenting on the fact
that something is not documented, save your breath. This is where <B>you</B>
add to the documentation, not where you ask <B>us</B> to add the
documentation. This is also not the correct place to <A
href="/support.php">ask questions</A> (even if you see others have done that
before, we are editing the notes slowly but surely). If you post a note in
any of the categories above, it will edited and/or removed.
</p>
<p>
Just to make the point once more. The notes are being edited and support
questions/bug reports/feature request/comments on lack of documentation, are
being <b>deleted</b> from them (and you may get a <b>rejection</b> email), so
if you post a question/bug/feature/complain, it will be removed. (But once you
get an answer/bug solution/function documentation, feel free to come back
and add it here!)</p>
<p>
<a href="/support.php">Click here to go to the support pages.</a><br>
<a href="http://bugs.php.net/">Click here to submit a bug report.</a><br>
<a href="http://bugs.php.net/">Click here to request a feature.</a>
</p>
<? endif;
if (!isset($sect)):?>
<p><b>To add a note, you must click on the 'Add Note' button
on the bottom of a manual page so we know where to add the note!</b>
<?else:?>
<FORM method="POST" action="/manual/add-note.php">
<INPUT type=hidden name="sect" value="<?echo $sect;?>">
<INPUT type=hidden name="redirect" value="<?echo $redirect;?>">
<INPUT type=hidden name="lang" value="<?echo $lang;?>">
<TABLE BORDER=0 CELLPADDING=5 CELLSPACING=0 BGCOLOR="#D0D0D0">
on the bottom of a manual page so we know where to add the note!</b></p>
<? else:?>
<form method="POST" action="/manual/add-note.php">
<input type="hidden" name="sect" value="<?echo $sect;?>">
<input type="hidden" name="redirect" value="<?echo $redirect;?>">
<input type="hidden" name="lang" value="<?echo $lang;?>">
<table border="0" cellpadding="5" cellspacing="0" bgcolor="#d0d0d0">
<TR VALIGN=top>
<TD><B>Your email address:</B></TD>
<TD><INPUT type=text name="user" size=40></TD>
<td><input type="text" name="user" size="40" maxlength="40" value="<?echo htmlspecialchars(stripslashes($user))?>"></td>
</TR>
<TR VALIGN=top>
<TD><B>Your notes:</B></TD>
<TD><TEXTAREA name="note" rows=6 cols=40 wrap=virtual></TEXTAREA><BR>
<td><textarea name="note" rows="6" cols="40" wrap="virtual"><?echo htmlspecialchars(stripslashes($note))?></textarea><br>
</TD>
</TR>
<TR><TD colspan=2 align=right>
<INPUT TYPE=image VALUE="Add Note" SRC='/gifs/b-addnote-p.gif' ALT='Add Note'
WIDTH=100 HEIGHT=21 VSPACE=7 BORDER=0 align=absmiddle><BR>
</TD></TR>
<TR>
<td colspan="2" align="right">
<input type="submit" name="action" value="Preview">
<input type="submit" name="action" value="Add Note">
</td>
</tr>
</TABLE>
</FORM>
<?endif;
endif;
commonFooter();
<? endif;
endif;
commonFooter();
?>

View File

@@ -3,6 +3,6 @@ require_once 'prepend.inc';
$lang = $MIRRORS[$MYSITE][6];
if (is_dir("../$lang/html")) {
header("Location: ../lang/html/");
header("Location: ../$lang/html/");
}
header("Location: ../en/html/");

View File

@@ -1,26 +1,29 @@
at at.php.net Antonin Sprinzl <Antonin.Sprinzl@tuwien.ac.at> 192.35.244.50
au au.php.net:81 David Robley <webmaster@www.nisu.flinders.edu.au> 129.96.218.17 port 81
au au2.php.net jason andrade <jason@planetmirror.com> php.planetmirror.com
bg bg.php.net Alexander Keremidarski <salle@online.bg>
php.online.bg
bg bg.php.net Alexander Keremidarski <salle@online.bg> php.online.bg
br br.php.net Antonio Dias <accdias@sst.com.br> 200.223.199.4
br2 br2.php.net Nelson Junior <nelson@lunenetworks.com.br> php-mirror.lunenetworks.com.br
ca php.easydns.com Colin Viebrock <cmv@privateworld.com> 205.210.42.153
ch ch.php.net prochat@lbdsun.epfl.ch 128.178.77.33
cn cn.php.net Yu Sun <yusun@atwell.co.jp>,mirror@linuxforum.net 210.77.60.220
cn cn.php.net Yu Sun <yusun@atwell.co.jp>,mirror@linuxforum.net 210.77.60.218
#cz www.php.cz jap@maya.cz 212.24.129.2
de www.php3.de smartin@schlund.de 62.104.64.10
de de.php.net Markus Wirtz <mw@globe.de> php3.globe.de
dk dk.php.net mkyed@borsen.dk 194.239.128.56
es es.php.net alfre@ibd.es 195.55.198.14
fi fi.php.net Kaj-Michael Lang <milang@tal.org> php.nic.fi
fi fi2.php.net Kaj-Michael Lang <milang@tal.org> php.nic.fi
fi fi2.php.net Toni Viemerö <toni.viemero@iki.fi> php.selfdestruct.net
fr fr.php.net web.montaigne.u-bordeaux.fr
hk hk.php.net Marquis Chan <marquix@traland.com> ns1.traland.com
hu hu.php.net Hojtsy Gabor <goba@php.net> same as phpnet.externet.hu
it it.php.net fmal@fmal.com php.fmal.com
it it2.php.net www.php.uli.it
it it3.php.net Dino Uras <dino.uras@iol.it> php.iol.it
jp jp.php.net sgk@happysize.co.jp jp-php-net.happysize.co.jp
jp jp2.php.net Hitachi BI Mirrors Administrator <mirrors-adm@hbi.co.jp> php.hbi.ne.jp
kr kr.php.net JunSeon Oh <holywar@holywar.net> php.holywar.net
mx mx.php.net webmaster@goliath.urbano.com.mx 200.36.127.163
li li.php.net Roland Guthauser <roland@unitec-inc.com> php.unitec-inc.com
mx mx.php.net webmaster@goliath.urbano.com.mx php.uservers.net
nl nl.php.net paulj@ns.web-tic.com php.webtic.com
nl php.nederland.net Sander Steffann <steffann@nederland.net> 193.67.110.5
no no.php.net Stig Bakken <stig@guardian.no> 195.1.254.5 same as php.guardian.no
@@ -29,9 +32,12 @@ pt pt.php.net melo@co.telenet.pt php.telenet.pt
pt pt2.php.net jfa@mail.sonet.pt 195.8.11.34
#ro ro.php.net cbredi@timisoara.roedu.net 193.226.9.16
ru ru.php.net Roma Kuzmin <kuzmin@directnet.ru> 195.222.162.101
se se.php.net Kalle Kiviaho <kivi@ios.chalmers.se> 129.16.214.87
se se.php.net Kalle Kiviaho <kivi@chl.chalmers.se>,Fredrik Öhrn <ohrn@chl.chalmers.se> rampart.chl.chalmers.se
sg sg.php.net Chen Shiyuan <csy@hjc.edu.sg> php.hjc.edu.sg
sk sk.php.net bednar@isternet.sk 195.72.0.6
th th.php.net spcom@loxinfo.co.th php.ubon.asianet.co.th
tr tr.php.net Mustafa Akgul <akgul@bilkent.edu.tr> php.bilkent.edu.tr
tr tr2.php.net Emre Odabas <php@progen.com.tr> php.progen.com.tr
tw tw.php.net Eagle Chao <ccgeagle@ms6.hinet.net> php.dw.com.tw
ua ua.php.net Alexander Ivanov <sander@paco.net> php.paco.net.ua
ua ua2.php.net Max Khaikin <max@alkar.net> php.ndot.com.ua

View File

@@ -1,753 +1,23 @@
<?
<?php
require_once 'prepend.inc';
commonHeader("Projects");
function makeEntry($project, $url=false, $author=false, $email=false) {
echo '<DT>';
echo hdelim();
echo '<h2>' . $project . '</h2>';
if ($author) {
echo 'by ';
if ($email) {
print_link('mailto:'.$email, $author);
} else {
echo $author;
}
echo '<BR>';
}
if ($url) {
print_link($url,$url);
echo '<BR>';
}
echo '</DT>';
echo '<DD>';
}
function endEntry() {
echo '</DD>';
}
?>
<h1>
Projects using PHP
</h1>
<p>
An increasing number of projects, both commercial and Open Source,
are using PHP as their main development tool.
This page is a listing of cool things based on PHP, available for download.
</p>
<p>An increasing number of projects, both commercial and open source,
are using PHP as their main development tool. This is a listing of
some of the open-source PHP applications available, courtesy of
<a href="http://freshmeat.net/">freshmeat</a>. (Last updated:
<?echo date("M j, Y h:ia", filemtime("backend/projects.html"))?>.)</p>
<p>
If you have a project you feel belongs on this list, send us email us at
<A HREF="mailto:projects@php.net">projects@php.net</A> (we consider a project to be
a software package where the code is available for download).
</p>
<?echo hdelim(); ?>
<?readfile("backend/projects.html");?>
<DL>
<p>If you have a project you feel belongs on this list, submit it to
<a href="http://freshmeat.net/">freshmeat</a> and make sure to categorize
it in the "Programming Language : PHP" category.</p>
<? makeEntry("Keystone",
"http://www.stonekeep.com/keystone.php3",
"Dave Belfer-Shevett",
"shevett@pobox.com");
?>
Keystone is a web-based application designed to help a workgroup keep
track of issues and tasks via a shared central resource. The system was
designed specifically with the IT department in mind, where quick access
to shared data and history is a requirement. This centralized model works
to help organize the department, as well as giving the group the
information it needs to best serve its customers.
</DD>
<DD>
Keystone can be used for:
<ul>
<li>Bug tracking on software projects
<li>Problem ticketing for helpdesk operations
<li>IT department trouble ticketing
<li>Any environment where quick access to historical data on workgroup
activity is a requirement.
</ul>
<? endEntry();?>
<? makeEntry("Double Choco Latte",
"http://dcl.sourceforge.net/",
"Michael Dean & Tim Norman",
"mdean@kcnet.com");
?>
Double Choco Latte is a system for tracking bugs, changes,
enhancements, requests for software. The system is suited for multiple
products and multiple accounts (clients). It is in its infancy now and
should only be downloaded by experienced users. Once the web interface
is completed, a Java 2/Swing enabled version will be started.
<? endEntry();?>
<? makeEntry("Phorum",
"http://www.phorum.org/",
"Brian Moon",
"brianlmoon@iname.com");
?>
Forums and message boards are popping up all over the place. To this
point the most popular has been the free perl one at Matt's Script
Archive. This project is trying to design a better forum with the use
of PHP and a database. We are currently using MySQL, but hope to either
have a database independent version or multiple versions for different
databases in the future.
<? endEntry();?>
<? makeEntry("NeoBoard",
"http://www.neoqst.com/public/neoboard/neoboard.html",
"Wankyu Choi",
"wankyu@neoqst.com");
?>
NeoBoard is a web based threaded message board written in PHP 3.0.
NeoBoard uses MySQL to manage its messages. If you have some knowlege on PHP,
it won't be too much trouble to get it to work with other database engines.
You need a PHP-enabled web server (or CGI PHP) and MySQL 3.22 or later to
get NeoBoard working.
<? endEntry();?>
<? makeEntry("Ministry of Truth",
"http://mot.sourceforge.net/",
"Hal Roberts",
"hroberts@storystreet.com");
?>
The Ministry of Truth is a web-based job, equipment, and software
tracking system that works via PHP and MySQL. MOT is a handy way for
an IT support department to keep track of its support calls in a way
that also maintains change logs for all machines and software packages.
<? endEntry();?>
<? makeEntry("IMP",
"http://horde.org/imp/",
"Chuck Hagenbuch",
"chuck@osmos.ml.org");
?>
IMP is a set of PHP 3.0 scripts that implement an IMAP based webmail system.
Assuming you have an account on a server that supports IMAP, you can theoretically
use an installation of IMP to check your mail from anywhere that you have web access.
<? endEntry();?>
<!-- site down
<? makeEntry("SwellMail",
"https://www.swellmail.net",
"Angelos Karageorgiou",
"angelos@www.datatone.com");
?>
A PHP based secure email reading interface for IMAP based servers.
<? endEntry();?>
-->
<? makeEntry("PHP Base Library",
"http://phplib.netuse.de",
"Boris Erdmann & Kristian Köhntopp",
"kk@netuse.de");
?>
The PHP Base Library is a toolkit of extremely useful functions needed in many web applications.
<? endEntry();?>
<? makeEntry("DJPIM",
"ftp://tcomtoo.tcomeng.com/djpim/",
"Daryl Jones",
"daryl@tcomeng.com");
?>
DJPIM is a very simple web-based interface to a MYSQL table that
serves as a prioritized list of reminders. It's designed for rapid
data entry of things to do, like telephone messages, prepare quotations,
and send invoices. The author uses it as a substitute for a paper
&quot;to do&quot; list.
<? endEntry();?>
<? makeEntry("OBM",
"http://www.aliacom.fr/obm/",
"Pierre Baudracco",
"pierre.baudracco@aliacom.fr");
?>
OBM is an Intranet application which goal is to help manage a company,
but can be used as a contact database. It is written by Pierre Baudracco,
with contributions by Patrice Bridoux and Pierre Carlier (and more to
come) and released under the terms of the GPL.
<? endEntry();?>
<!-- site is down as of 7/8/1999
<? makeEntry("MyAdServer",
"http://www.314interactive.com",
"3.14Interactive",
"wj@314interactive.com");
?>
This is a web adserver using PHP 3.0 and MySQL It includes the following features:
<ul>
<li> &quot;random&quot; rotation of banners on web pages, done by inserting just one line
of PHP code into each page that you would like a banner displayed.
<li> password protected entry into restricted area for both clients and administrator.
<li> within this restricted area, the clients have access to statistics
relevant to their banner, including overall and daily clicks, views, ads
remaining in account, as well as ratio calculations pertaining to banner
view/clicks.
<li> The administrator has the power to:
<ul>
<li> add client
<li> modify client
<li> view overall stats of ad server.
<li> View each client statistics, both overall and daily.
</ul>
<li> In addition, each client is automatically emailed when their "ads
remaining on account" drops below a specified level.
</ul>
<? endEntry();?>
-->
<? makeEntry("W-Agora",
"http://www.araxe.fr/w-agora",
"Marc Druilhe",
"mdruilhe@araxe.fr");
?>
W-Agora is a web-based and customizable forum package. It allows you to install forums, BBS, guestbooks and all derived things.
More than "just another web BBS/forum software", w-agora is designed so you can easily adapt it to your needs. For example you can also use it to:
<ul>
<li> distribute informations, news, announcements
<li> diffuse software updates to people on an intranet site
<li> publish adverts, FAQs,
<li> allows people to upload documents and share information on your server
</ul>
<? endEntry();?>
<? makeEntry("Timesheet",
"http://www.egr.uri.edu/~kovacsp/timesheet/",
"Peter Kovacs",
"kovacsp@egr.uri.edu");
?>
A multiuser time tracking system. Users can check in and out and it keeps
track of how long they've worked.
<? endEntry();?>
<? makeEntry("FocalMail",
"http://www.focalmail.com/home/index.html",
"FocalTek",
"support@focalmail.com");
?>
FocalMail is a web based email interface which allow you to manage your mail virtually anywhere with any Javascript enabled web browser.
<? endEntry();?>
<? makeEntry("Joe Rock's Beer Recipe Calculator",
"http://www.jrock.com/recipe_calc/",
"Joseph S. Sellinger",
"jss@jrock.com");
?>
A web based recipe calculator with a recipe database and other beer related goodies.<br>
<b>Note from Rasmus:</b> This might sound like a trivial little thing, but go have a look. It is
a very complete and complex site and not your average, &quot;duh.. I like beer site&quot;.
<? endEntry();?>
<? makeEntry("phpMyAdmin",
"http://www.phpwizard.net/projects/phpMyAdmin/",
"Tobias Ratschiller",
"tobias@dnet.it");
?>
phpMyAdmin is intended to handle the adminstration of MySQL over the
web. Currently it can:
<UL>
<LI>create and drop databases
<LI>create, copy, drop and alter tables
<LI>delete, edit and add fields
<LI>execute any SQL-statement, even batch-queries
<LI>manage keys on fields
<LI>load text files into tables
<LI>create and read dumps of tables
<LI>export data to CSV values
<LI>administer multiple servers and single databases
</UL>
<? endEntry();?>
<? makeEntry("DBE",
"http://edseek.com/developers.shtml",
"Jason Boxman",
"jasonb@edseek.com");
?>
DBE is a web-based database interface.
<? endEntry();?>
<? makeEntry("SQLFusion",
"http://www.sqlfusion.org",
"Philippe Lewicki",
"plewicki@ixio.com");
?>
The SQLFusion project is a collection of components in java for netobject Fusion.
It's an easy and fast way to build php3 and mSQL web sites with NetObject
Fusion. Its all free under a GNU license.
<? endEntry();?>
<? makeEntry("TWIG",
"http://screwdriver.net/twig/",
"Christopher Heschong",
"chris@wiw.org");
?>
TWIG (formerly known as Muppet) came about because several of our users were
running Windows 3.x with non-javascript browsers (specifically MSIE 3.x for Win3.x).
Although we like IMP (http://web.horde.org/imp/), it wasn't exactly practical for
them to use. Muppet works in every browser we've tested so far, including lynx.
<? endEntry();?>
<? makeEntry("phpAds",
"http://www.phpwizard.net/projects/phpAds/",
"Tobias Ratschiller",
"tobias@dnet.it");
?>
phpAds is a free banner management system for PHP. Currently it can
<UL>
<LI>manage multiple clients (each with own login)
<LI>manage multiple banners (any size) per client
<LI>view daily, overall and summary statistics
<LI>send statistics to clients via email
<LI>use HTML, GIF, JPEG and PNG-banners
<LI>show random, pre-defined or HTML/image banners
<LI>show banners belonging to a specific group
<LI>activate and de-activate individual banners
</UL>
<? endEntry();?>
<? makeEntry ("The Diary",
"http://none.cs.umass.edu/~schapira/thediary/",
"Agustin Schapira",
"schapira@cs.umass.edu");
?>
The Diary lets you keep notebooks and write notes in them. You can add
notes or browse through your notes from any Web browser anywhere in
the world. You can also search inside your notebooks to find entries
that interest you.
<? endEntry();?>
<? makeEntry("Freemed",
"http://www.freemed.org",
"Jeff B",
"jeff@univrel.pr.uconn.edu");
?>
Freemed is a medical management system written using PHP and MySQL.
<? endEntry();?>
<? makeEntry("PHPGem",
"http://sptl.org/phpgem/",
"Nickolas Grebnev",
"nick@sptl.org");
?>
PHPGem is a program accelerates the process of creating of PHP scripts for
working with tables. It works with a variety of SQL servers (PostgreSQL,
MySQL, mSQL, ODBC). You input a description and parameters of your
table's fields (name, on/off searching in the field, etc.). The result
is another PHP script which will work with this tables (view table,
edit table, add/delete entries, search in the tables).
<? endEntry();?>
<? makeEntry("IRM",
"http://www.redshift.com/~yramin/atp/irm",
"Yann Ramin",
"atrus@montereyhigh.com");
?>
IRM is a powerful tracking utility for computers and software. Demos have
been set up where IRM successfully tracked thousands of records. Features
include:
<ul>
<li>A complete tracking utility with new and old jobs, followups, and more
<li>Software to computer relationships: Track the number of licenses of a
piece of software.
<li>Search utilities that get better every day.
<li>A comprehensive number of fields, everything from Contact Person to the
NIC brand.
<li>Multi-user, easy to use and light weight interface, user preferences
<li>Adding from templates and batch update support (update more than one
computer at a time)
</ul>
<? endEntry();?>
<!--
<? makeEntry("PHPGen",
"http://www.byggsoft.se/~mikaelu/",
"Mikael Ulfenborg",
"mikael.ulfenborg@byggsoft.se");
?>
PHPGen is small PHP-script used to make a framework for a new PHP-application.
<? endEntry();?>
-->
<? makeEntry("FishCartSQL",
"http://www.fni.com/fcsql/",
"FishNet&reg;, Inc.",
"fcsql@fni.com");
?>
FishCartSQL(sm) is a catalog management system for online e-commerce
solutions; it has been in active use since January 1998. A few of the key
benefits include multiple parallel catalogs, multiple languages, timed
sales, Associate ID tracking, and Web based catalog maintenance. The
order output of FishCartSQL(sm) can be adapted for easy integration with
existing order processing systems.
<? endEntry();?>
<? makeEntry("EU-Webboard",
"http://www.eu-industries.com/produkt.html",
"EU-Industries",
"ulrich.eckardt@eu-industries.com");
?>
EU-Webboard is a Webboard solution for Internet and Intranet-Servers
written in PHP 3.0 with a MySQL-connection. Freeware. (This site is in German.)
<? endEntry();?>
<? makeEntry("Bookmarker",
"http://renaghan.com/bookmarker/",
"Padraic Renaghan",
false);
?>
bookmarker is a WWW based application for managing bookmarks. It allows
multiple users to list, search, maintain, and create bookmarks. It is
written in PHP using PHPLIB, which allows support for multiple
databases. bookmarker includes functions to store URLs and send URLs via
e-mail directly from your browser (quik-mark, mail-this-link) using
javascript functions that link directly to the application.
<? endEntry();?>
<? makeEntry("MyGuestbook",
"http://mygb.php-homepage.de",
"Mark Kronsbein",
"mk@html-design.com");
?>
This is a simple guestbook application that uses MySQL and supports
several languages.
<? endEntry();?>
<? makeEntry("PHP3Domo",
"http://gateway.digitaria.com/users/chris/php3domo/",
"Chris Adams",
"chris@digitaria.com");
?>
Provides full SMTP validation of a mailing list subscription before forwarding
the request on to Majordomo.
<? endEntry();?>
<? makeEntry("phpHoo",
"http://www.webreference.com/perl/xhoo/php1/",
"CDI",
"cdi@thewebmasters.net");
?>
Xhoo is a collaborative project whose goal is to create Open Source
Web Catalog software for various platforms and languages that can
selectively import data from the Open Directory Project. This project
is currently being supported by Webreference.com. Early releases are
currently available for Perl, ASP, and PHP.
<? endEntry();?>
<? makeEntry("kidSister",
"http://kidsister.tjw.org",
"Tony J. White",
"tjw@tjw.org");
?>
kidSister is a to-do list and a time logger. It was designed to help
programmers organize many intricate tasks pertaining to multiple projects
as well as keep track of the completion of such tasks. kidSister also has
workgroup-like features that give its users the ability to &quot;spy&quot;
on each other when granted the proper permission.
<? endEntry();?>
<? makeEntry("Midgard",
"http://www.midgard-project.org",
"The Midgard Project",
"midgard@greywolves.org");
?>
Midgard is a freely-available Web application
development and publishing platform based on the popular
PHP scripting language. It is an Open Source development
project, giving you the freedom to create your solutions
in an open environment. Midgard is the tool for
creating, modifying and maintaining dynamic
database-enabled Web services
<? endEntry();?>
<? makeEntry("Phorm",
"http://www.holotech.net/scripts.html",
"Alan Little",
"darguz@holotech.net");
?>
The Script Formerly Known As PHPMail. As features were added to PHPMail, its name became
inaccurate, as it can now do so much more than just mailing form results, including
sending an autoresponder, logging to a text file, and logging to a MySQL database.
The next version will support validation of email addresses, credit card numbers
and U.S. phone numbers.
<? endEntry();?>
<? makeEntry("phpDB",
"http://phpdb.linuxbox.com/",
"Joe Thong",
"darkjoe@softhome.net");
?>
phpDB is a database wrapper that provides a consistent interface to
various database servers thus eliminating the need to port PHP software
to support another database specific server. Supported database servers
are MySQL, MSQL, PostgreSQL, Microsoft SQL Server, Sybase.
<? endEntry();?>
<? makeEntry("Dominion",
"http://dominion.styx.net/",
"Master Phil",
"philippe@styx.net");
?>
Dominion is a "Universal Database Administration System Generator". It allows creation of
multifunctional lists, and forms to insert, update and delete data against any kind of
database, just by changing one variable. It just reduces administration time developement
from 10 to 1.
<? endEntry();?>
<? makeEntry("TreeDoc",
"http://www.softky.com/TreeDoc/",
"Bill Softky",
"bill@softky.com");
?>
TreeDoc allows even php-ignorant page designers to create "Tree Documents," or
"Fluid Documents," in which hyperlinks are opened in boxes in the middle of the
calling page, right below the link, instead of on a new page. This lets you
open a document's sections, subsections, definitions etc. just like you would
open sub-folders in a "tree control." The recursive code is encapsulated in php
tags analogous to HTML &lt;a href="..."&gt; tags, so non-programmers can create such
documents.
<? endEntry(); ?>
<? makeEntry("xml2tree",
"http://www.risource.org/phpTools/xml2tree/README.html",
"Bill Softky",
"bill@rsv.ricoh.com");
?>
xml2tree is a single PHP include file for manipulating XML "tree objects" (i.e. a
PHP4 "treeNode" object which contains an array of attributes and an array of child-strings and
child-treeNodes). treeNodes can be constructed from XML files, created from
scratch, edited, copied, referenced, and written; smaller treeNodes can be extracted from larger
treeNodes based on simple criteria. No other libraries or software are needed; everything is 100% PHP.
<? endEntry(); ?>
<? makeEntry("PHPXref",
"http://phpxref.sourceforge.net/",
"Gareth Watts",
"gareth@omnipotent.net");
?>
PHPXref is a small Perl script that cross-references functions, variables, and SQL tables used
in a PHP-based Web site and generates HTML output. In addition, it can extract inline
formatted comments from the PHP files to provide browsable documentation for the functions
defined in the scripts.
<? endEntry(); ?>
<? makeEntry("eGrail",
"http://www.egrail.org",
"Al Brown",
"abrown@egrail.com");
?>
eGrail is a comprehensive web management system with templates, and revision
control. It is based completely on open source products.
<? endEntry(); ?>
<? makeEntry("FireSite",
"http://www.dotvoid.com",
"Danne Lundqvist",
"dotvoid@dotvoid.com");
?>
FireSite is a Content Management System with very flexible role based user access.
Using a module based approach it is easy to adopt into various organisations
with different information needs.
<? endEntry(); ?>
<? makeEntry("phpDBForm",
"http://phpdbform.sourceforge.net",
"Paulo Assis",
"ottani@uol.com.br");
?>
PHP scripts to help manage a html form to admin data in MySQL. With only some
lines of PHP code you get a html form. Features: easy management, customizations,
drop down lists easy, and others.
<? endEntry(); ?>
<? makeEntry("SquirrelMail",
"http://www.squirrelmail.org/",
"SquirrelMail Development Team",
false);
?>
SquirrelMail is a web-based mail program that will read and send your mail on
IMAP-based mail servers. This script is very easy to install and configure.
The newest version supports plugins, which expand SquirrelMail's capabilities
and allows developers to try their hand at developing new features.
<UL>
<li>It is written entirely in PHP 4.
<li>It has its own IMAP implementation (you don't need it compiled into PHP)
<li>Address book supports LDAP (if compiled in)
<li>Source (and CVS) available on SourceForge.net
<li>Works with a wide variety of IMAP servers
</UL>
<? endEntry(); ?>
<? makeEntry("PHP Bind 8",
"http://sourceforge.net/projects/phpbind/",
"Alexey Zilber",
"alex@dayak.com");
?>
PHP Bind is a fully self-contained PHP class for controlling
Bind 8.2's config files. It can parse, regenerate, modify, and
activate/deactivate domains in named.conf and domain db
files.
<? endEntry(); ?>
<? makeEntry("GroupIT Engine",
"http://www.groupit.org/channel/",
"Sean Pecor",
"sean@digitalspinner.com"); ?>
The GroupIT v0.90 Engine (for PHP) is a open source content and community
management engine for online communities, extranets and intranets. Forums
supported in this version include Message forums, Article forums, Link forums,
Contributor Forums, and Photo Gallery forums. GroupIT administrators can use
the engine as a turnkey solution or, because the entire source code is available,
the package can be completely customized to suit the requirements of any web site.
</DD>
<DD>
The entire source code of the GroupIT engine is available for download and use
under the terms of the "Orchestrated Open Source License
(OOSL - http://www.groupit.org/oosl).
<? endEntry(); ?>
<? makeEntry("Les Visiteurs v1.4",
"http://www.phpinfo.net/visiteurs.php3",
"Jean-Pierre Dezelus",
"jpdezelus@phpinfo.net");
?>
'Les Visiteurs v1.4' (Visitors) is a comprehensive Web site statistics analysis
program written in PHP that uses a MySQL database on backend for data handling.
Key reports include details on last 30 visitors, Daily breakdowns for each month,
Visitor OS, browsers, Top 30 referrers, Top 30 domains, hits by hour, and more.
It uses the GD library for creating statistical charts. Note that the document
and scripts are written in French.
<? endEntry(); ?>
<? makeEntry("PhpDocumentor",
"http://phpdocu.sourceforge.net/",
"Joshua Eichorn",
"jeichorn@asu.edu");
?>
PhpDocumentor is a php script that allows you to create javadoc style documentation from your php code.
<? endEntry(); ?>
<? makeEntry("phpGroupWare",
"http://www.phpgroupware.org",
"Joseph Engo",
"jengo@phpgroupware.com");
?>
phpGroupWare is a multi-user web-based groupware suite written in PHP. It also
provides an API for developing additional applications.<br />
<? endEntry(); ?>
<? makeEntry("phpCMS",
"http://mcyra.homeip.net/homepage/phpcms/phpcms.htm",
"Michael Brauchl",
"michael.brauchl@chello.at");
?>
phpCMS is a PHP-Powered Content Management System [Note: phpCMS is a German-language site]
<? endEntry(); ?>
<? makeEntry("SEARCpHp",
"http://www.hansanderson.com/php/search/",
"Hans H. Anderson",
"me@hansanderson.com");
?>
Searcphp - a search engine written exclusively in PHP. It does not require any database or external program. Works with PHP3 and above. Great for all sites, but especially for sites that can't use other search tools such as agrep, htdig, glimpse or swish. Indexes information from any source that PHP can access -- local files, web pages, databases -- whatever.
<? endEntry(); ?>
<? makeEntry("PHP Time Tracking",
"http://www.hansanderson.com/php/time/",
"Hans H. Anderson",
"me@hansanderson.com");
?>
PHP Time Tracking - Time Tracking tool for knowing what you did for whom. Good for programmers or web authors. Serves as a Journal for keeping track of what you did.
<? endEntry(); ?>
<? makeEntry("XML Class",
"http://www.hansanderson.com/php/xml/",
"Hans H. Anderson",
"me@hansanderson.com");
?>
XML Class - An EXTREMELY easy to use XML Tree and statistic parser. You need PHP4 (even if you have XML if PHP3, this requires PHP4). Basically, in two lines, this class will turn XML Data into PHP objects with internal data arrays. This means you can access your XML data with minimal effort.
<? endEntry(); ?>
<? makeEntry("PHPLOT",
"http://www.phplot.com/",
"Afan Ottenheimer",
"afan@jeo.net");
?>
PHPLOT is a graphics class for generating graphics on the fly and now
used in several countries for graphing things like GPS skiing routes in
the alps and stock market graphs. Its released under the PHP license and
supports all versions of GD, TTF &amp; non-TTF systems, PHP3, PHP4, PNG, GIF,
JPEG, and data in text-linear, linear-linear, and linear-linear-error
formats.
<? endEntry();?>
<? makeEntry("Ciao EmailList Manager",
"http://www.technobreeze.com/php/emaillist/",
"Ben Drushell",
"ben@technobreeze.com");
?>
Ciao EmailList Manager is a PHP/MySQL opt-in mass e-mail program. This
program is intended to assist in the sending of updates/ notifications/
newsletters/ etc. via the web. A single message can be e-mailed to a
large number of addresses. Each recipient has no way of knowing who
else is on the mailing list.
<? endEntry();?>
<? commonFooter(); ?>
<?php commonFooter(); ?>

View File

@@ -42,7 +42,7 @@ if (isset($pattern) && ($pattern)) {
exit;
}
if (!$HAVE_SEARCH) {
$location="http://uk.php.net/search.php";
$location="http://www.php.net/search.php";
$query = "show=".$show."&pattern=".urlencode($pattern)."&sourceurl=".urlencode($MYSITE);
Header("Location: ".$location."?".$query);
exit;
@@ -118,7 +118,7 @@ Restrict the search to: <BR>
if ($HAVE_SEARCH && isset($htsearch_prog)) {
$form=$PHP_SELF;
} else {
$form="http://uk.php.net/search.php";
$form="http://www.php.net/search.php";
}
if (!isset($base)) {
if (ereg("^(.+//[^/]+)/",$HTTP_REFERER,$reg)) {

View File

@@ -142,6 +142,11 @@ lists. There are many PHP-related mailing lists available.
'A list for those working with template engines in PHP',
false, true, true
),
Array (
'php-gtk', 'PHP-GTK mailing list',
'A list for those who would like to use PHP to write client-side GUI applications' ,
false, true, false
),
Array (
'php-kb', 'Knowledge Base list',
'This list receives daily mailings with summaries of topics on the user list, as well as others drawn from the <a href="#phpkb">Knowledge Base</a>',