Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:1949 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 65925 invoked from network); 23 May 2003 20:30:47 -0000 Received: from unknown (HELO www.lerdorf.com) (66.93.78.119) by pb1.pair.com with SMTP; 23 May 2003 20:30:47 -0000 Received: from rasmus2.corp.yahoo.com (rasmus2.corp.yahoo.com [207.126.232.175]) by www.lerdorf.com (8.12.9/8.12.9/Debian-3) with ESMTP id h4NKUkKN010580; Fri, 23 May 2003 13:30:46 -0700 Date: Fri, 23 May 2003 13:30:41 -0700 (PDT) To: Patrick Gibson cc: internals@lists.php.net In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Subject: Re: [PHP-DEV] Update to mail() function help From: rasmus@lerdorf.com (Rasmus Lerdorf) References: To access $_SERVER['SERVER_NAME'] from C you would do: zend_hash_find(PG(http_globals)[TRACK_VARS_SERVER]->value.ht, "SERVER_NAME", sizeof("SERVER_NAME"), (void **) &server_name)==FAILURE) But, if variables_order doesn't include "S" it isn't going to be there. You are probably better off getting it directly from the server instead of from the PHP symbol table. You can call php_apache_getenv() directly, or to be more correct and portable to other SAPI's you would call sapi_module.getenv(). -Rasmus On Fri, 23 May 2003, Patrick Gibson wrote: > I'd like modify the PHP mail() function to add the $_SERVER['SERVER_NAME'] > into the header if it's available. It would be equivalent to adding a line > into the headers argument from the PHP end that would be like: > > if ($_SERVER['SERVER_NAME']) > { > $headers .= '\nX-Originated-From: www.mywebsite.com'; > } > > I see exactly in ext/standard/mail.c where I need to add this, but my > problem is I'm not sure how to gain access to the $_SERVER super global > array from the C API. > > Can anyone point me in the right direction? I don't see anything in the API > docs that explains this, nor can I think of any PHP function that does > something like this for a reference (except phpinfo(), but the code is > unclear to me). > > I run a hosting company, and if any of our customers abuses this function, I > want to be able to know from which website the mail originated. When there > are hundreds of virtual hosts, something like this would make it really > helpful at times. > > Thanks so much, > > Patrick > > >