|
Neohapsis is currently accepting applications for employment. For more information, please visit our website www.neohapsis.com or email hr@neohapsis.com |
php-general Digest 26 Aug 2005 19:52:56 -0000 Issue 3647
php-general-digest-help
lists.php.net
Date: Fri Aug 26 2005 - 14:52:56 CDT
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
php-general Digest 26 Aug 2005 19:52:56 -0000 Issue 3647
Topics (messages 221409 through 221449):
changes in php.ini
221409 by: hope
221411 by: Jasper Bryant-Greene
221412 by: hope
221413 by: George Pitcher
221414 by: Raz
221415 by: hope
Re: Computer name?
221410 by: Jasper Bryant-Greene
Re: php ldap
221416 by: Mark Rees
221417 by: Santosh Jambhlikar
221423 by: Björn Bartels
221424 by: Santosh Jambhlikar
Re: php ldap]
221418 by: Björn Bartels
Re: php ldap] soory...
221419 by: Björn Bartels
Re: PHP Security
221420 by: mikespook
221435 by: Rory Browne
221436 by: Miles Thompson
221437 by: Miles Thompson
Re: Newbie: Safe function call to a .inc file outside the web folder
221421 by: Edward Vermillion
Help Needed
221422 by: David Skyers
221425 by: Raz
221426 by: David Skyers
221427 by: Raz
221431 by: Angelo Zanetti
221433 by: David Skyers
221434 by: Raz
221438 by: Mark Rees
Re: creating of html-archive
221428 by: Michelle Konzack
221429 by: Michelle Konzack
Re: [new version] Re: [a proactive example of learning by hacking] Re: [PHP] Getting queries from files FYI
221430 by: Jochem Maas
221432 by: Jay Blanchard
Re: PHP Polling script?
221439 by: David Robley
Re: PHP CMS
221440 by: David Robley
Re: possible to get a function from another domain
221441 by: Rory Browne
Re: QUERY TOKENIZER WAS Re: [new version] Re: [a proactive....
221442 by: Jay Blanchard
What's wrong with this picture? (branding function makes solid bl ack image)
221443 by: Jim Moseby
Re: Form Processor?
221444 by: Mike Walsh
read directory and paginate
221445 by: Ryan A
221446 by: Philip Hallstrom
221447 by: Ryan A
PHP MySql Extension No Loading
221448 by: Glen Zimmerman
Sort table by column and pagination
221449 by: Daevid Vincent
Administrivia:
To subscribe to the digest, e-mail:
php-general-digest-subscribe
lists.php.net
To unsubscribe from the digest, e-mail:
php-general-digest-unsubscribe
lists.php.net
To post to the list, e-mail:
php-general
lists.php.net
----------------------------------------------------------------------
attached mail follows:
Hi all
Whenever I create a site
and create a index.php file as my home page.
Whenever i run it a http://localhost/myproject/
it says Page cannot be found
However if I have index.html file
it displays.
SOmebody told me that i need to make changes to php.ini
bt where and what to change there.
Regards
Hope
attached mail follows:
hope wrote:
> Hi all
>
> Whenever I create a site
> and create a index.php file as my home page.
>
> Whenever i run it a http://localhost/myproject/
>
>
> it says Page cannot be found
>
> However if I have index.html file it displays.
>
> SOmebody told me that i need to make changes to php.ini
>
> bt where and what to change there.
You don't need to change php.ini, you need to configure your server (is
it Apache?) to display index.php files as the DirectoryIndex. If it is
Apache, then either insert the following line in the relevant part of
httpd.conf for that virtual host/directory, or put it in an .htaccess
file in the root of your web application:
DirectoryIndex index.php
Jasper
attached mail follows:
Nops
I m using IIS
Hope
Jasper Bryant-Greene wrote:
> hope wrote:
>> Hi all
>>
>> Whenever I create a site
>> and create a index.php file as my home page.
>>
>> Whenever i run it a http://localhost/myproject/
>>
>>
>> it says Page cannot be found
>>
>> However if I have index.html file it displays.
>>
>> SOmebody told me that i need to make changes to php.ini
>>
>> bt where and what to change there.
> You don't need to change php.ini, you need to configure your server (is
> it Apache?) to display index.php files as the DirectoryIndex. If it is
> Apache, then either insert the following line in the relevant part of
> httpd.conf for that virtual host/directory, or put it in an .htaccess
> file in the root of your web application:
> DirectoryIndex index.php
> Jasper
attached mail follows:
For IIS, where you have defined your index.html as a default page, you laso
need to define index.php as well. To to this, open the 'Properties' for your
website in the IIS Admin tool, click on the 'Documents' tab and its
straightforward from there. You need to do this for each site.
George
> -----Original Message-----
> From: hope [mailto:umeed921
yahoo.com]
> Sent: 26 August 2005 8:56 am
> To: php-general
lists.php.net
> Subject: Re: [PHP] changes in php.ini
>
>
> Nops
> I m using IIS
>
>
> Hope
>
>
> Jasper Bryant-Greene wrote:
>
> > hope wrote:
> >> Hi all
> >>
> >> Whenever I create a site
> >> and create a index.php file as my home page.
> >>
> >> Whenever i run it a http://localhost/myproject/
> >>
> >>
> >> it says Page cannot be found
> >>
> >> However if I have index.html file it displays.
> >>
> >> SOmebody told me that i need to make changes to php.ini
> >>
> >> bt where and what to change there.
>
> > You don't need to change php.ini, you need to configure your server (is
> > it Apache?) to display index.php files as the DirectoryIndex. If it is
> > Apache, then either insert the following line in the relevant part of
> > httpd.conf for that virtual host/directory, or put it in an .htaccess
> > file in the root of your web application:
>
> > DirectoryIndex index.php
>
> > Jasper
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>
attached mail follows:
Have you tested to make sure that php is actually working yet?
Raz
attached mail follows:
ya php is working fine
Raz wrote:
> Have you tested to make sure that php is actually working yet?
> Raz
attached mail follows:
Adrian Cid Almaguer wrote:
> You can find the IP and find with it the name.
Certainly, you can. But do you realise what sort of slowdown doing a DNS
lookup for (I am assuming here) every request would cause? Better to
store the IPs and run some sort of tool on the logs later to get the
names, maybe at a time when there's hardly any load on the server
Of course if you're only doing it in certain situations, it might be OK...
Jasper
attached mail follows:
"Santosh Jambhlikar" <santosh.jambhlikar
cash-tech.com> wrote in message
news:430EBCEC.7090005
cash-tech.com...
> then can i output the SMD5 of my password in php.
>
>
> Jeff Loiselle wrote:
>
> > Santosh Jambhlikar wrote:
> >
> >> Hi ,
> >>
> >> I have a ldap server the user password are stored in that. my php
> >> ldasearch result says that the result is
> >> ldap user password : {SMD5}eRuT8dttD6M6N6tgMJF33/TNAvc=
> >> i want to compare this password with the user given password in other
> >> application (obviously php) but when i md5("passwordgiven") then it
> >> is showing different output.
> >> Any suggestions.
You could try to bind to the server using ldap_bind with the supplied
password. That will check if it is valid or not.
> >
> >
> > MD5 and SMD5 are not the same type of encryption. md5() will not
> > return the correct results.
> >
>
> --
> Santosh Jambhlikar
> Linux Administrator
> Cash-Tech Solutions
> Pride Parmar Galaxy, Pune
> Maharashtra.
> Ph.
> O.:- 56052000
> ext. 2150
attached mail follows:
$ldaprdn = 'user';
$ldappass = 'userpass';
$ldapconn = ldap_connect("ldap.mydomain.com")
or die("Could not connect to LDAP server.");
if ($ldapconn) {
$ldapbind = ldap_bind($ldapconn,$ldaprdn, $ldappass);
if ($ldapbind) {
echo "LDAP bind successful...";
} else {
echo "LDAP bind failed...";
}
}
this program is giving me "*Invalid DN syntax* " error. what's wrong? cn
for the the user is "user"
Mark Rees wrote:
>"Santosh Jambhlikar" <santosh.jambhlikar
cash-tech.com> wrote in message
>news:430EBCEC.7090005
cash-tech.com...
>
>
>>then can i output the SMD5 of my password in php.
>>
>>
>>Jeff Loiselle wrote:
>>
>>
>>
>>>Santosh Jambhlikar wrote:
>>>
>>>
>>>
>>>>Hi ,
>>>>
>>>>I have a ldap server the user password are stored in that. my php
>>>>ldasearch result says that the result is
>>>>ldap user password : {SMD5}eRuT8dttD6M6N6tgMJF33/TNAvc=
>>>>i want to compare this password with the user given password in other
>>>>application (obviously php) but when i md5("passwordgiven") then it
>>>>is showing different output.
>>>>Any suggestions.
>>>>
>>>>
>
>You could try to bind to the server using ldap_bind with the supplied
>password. That will check if it is valid or not.
>
>
>
>>>MD5 and SMD5 are not the same type of encryption. md5() will not
>>>return the correct results.
>>>
>>>
>>>
>>
>>
attached mail follows:
that looks good, i think you should better use "uid" instead of "cn"...
btw, i mentioned some authentication-problem earlier in this list.
take a look at the php-manualÂ
 ldap_bind() for a workaround if
the same thing is happening to you (testscript works fine, loginscript
does not !?!)...
You'll find a function there by edi
..... which might help you out
>So should i give
>$ldaprdn = 'cn=user,ou=Users,dc=mydomain,dc=com';
>
sorry for that delayed reply... being at work now :)
Björn Bartels
-Development/IT-Services-
----------------------------------------------
dbusiness.de gmbh
digital business & printing gmbh
Greifswalder Str. 152
D-10409 Berlin
Fon: [0.30] 4.21.19.95
Fax: [0.30] 4.21.19.74
www.dbusiness.de
info
dbusiness.de
ftp://dbusiness.dyndns.org
attached mail follows:
thanks bartels,
ldap_bind is working find i just used uid instead of cn. :)
Björn Bartels wrote:
>that looks good, i think you should better use "uid" instead of "cn"...
>btw, i mentioned some authentication-problem earlier in this list.
>take a look at the php-manual
ldap_bind() for a workaround if
>the same thing is happening to you (testscript works fine, loginscript
>does not !?!)...
>You'll find a function there by edi
..... which might help you out
>
>
>
>
>>So should i give
>>$ldaprdn = 'cn=user,ou=Users,dc=mydomain,dc=com';
>>
>>
>>
>
>sorry for that delayed reply... being at work now :)
>
>Björn Bartels
>-Development/IT-Services-
>
>----------------------------------------------
>dbusiness.de gmbh
>digital business & printing gmbh
>
>Greifswalder Str. 152
>D-10409 Berlin
>
>Fon: [0.30] 4.21.19.95
>Fax: [0.30] 4.21.19.74
>
>www.dbusiness.de
>info
dbusiness.de
>ftp://dbusiness.dyndns.org
>
>
>
>
>
>
--
Santosh Jambhlikar
Linux Administrator
Cash-Tech Solutions
Pride Parmar Galaxy, Pune
Maharashtra.
Ph.
O.:- 56052000
ext. 2150
attached mail follows:
>this program is giving me "*Invalid DN syntax* " error. what's wrong?
>cn
>for the the user is "user"
the DN should look like this
cn={username},..., dc={yourdomain}, dc={TLD}
ask your admin for further options...
cheers
Björn Bartels
-Development/IT-Services-
----------------------------------------------
dbusiness.de gmbh
digital business & printing gmbh
Greifswalder Str. 152
D-10409 Berlin
Fon: [0.30] 4.21.19.95
Fax: [0.30] 4.21.19.74
www.dbusiness.de
info
dbusiness.de
ftp://dbusiness.dyndns.org
Björn Bartels
-Development/IT-Services-
----------------------------------------------
dbusiness.de gmbh
digital business & printing gmbh
Greifswalder Str. 152
D-10409 Berlin
Fon: [0.30] 4.21.19.95
Fax: [0.30] 4.21.19.74
www.dbusiness.de
info
dbusiness.de
ftp://dbusiness.dyndns.org
attached mail follows:
>this program is giving me "*Invalid DN syntax* " error. what's wrong?
>cn
>for the the user is "user"
the DN should look like this
uid={username},..., dc={yourdomain}, dc={TLD}
ask your admin for further options...
cheers
Björn Bartels
-Development/IT-Services-
----------------------------------------------
dbusiness.de gmbh
digital business & printing gmbh
Greifswalder Str. 152
D-10409 Berlin
Fon: [0.30] 4.21.19.95
Fax: [0.30] 4.21.19.74
www.dbusiness.de
info
dbusiness.de
ftp://dbusiness.dyndns.org
Björn Bartels
-Development/IT-Services-
----------------------------------------------
dbusiness.de gmbh
digital business & printing gmbh
Greifswalder Str. 152
D-10409 Berlin
Fon: [0.30] 4.21.19.95
Fax: [0.30] 4.21.19.74
www.dbusiness.de
info
dbusiness.de
ftp://dbusiness.dyndns.org
attached mail follows:
http://phpsec.org/
PHP Security Consortium
this is what you want.hehe~it`s helpful
"Ian C . McGarvey" <ianmac77
comcast.net>
??????:d6daf19b800a6a7ea6f8dbaebc4a8750
comcast.net...
>I have been studying PHP all summer because I wanted to put some PHP code
>on my schools web site. I got to school and went to the web design teacher.
>I asked him if they had installed PHP on their server. He said that the
>district thinks that it would be a HUGE security risk and that people at my
>school would try to hack into the server (what bull). Anyway, can you give
>me some tips to make the server secure? Any help would be appreciated!
attached mail follows:
Santosh:
Personally what I think you did wrong, was to simply paste the header
of that news article into your email. You simply said that PHP was hit
by another security hole, that allowed crackers(sometimes incorrectly
refered to as hackers), to gain access to any php service. I don't
think you would have been attacked if you simply refered to some
article said php was insecure, saying "This article says php is
insecure". You seemed to be saying yourself that "PHP was insecure",
and backing it up using that article.
I think at this stage a bit of background in computer security is in
order. There is no computer that is 100% secure. Even a computer that
is buried 5 miles beneth a heavly guarded army base with no power or
communicaton cables can be penetrated by the right person/people.
In the same way nearly all software, including PHP has bugs. The
difference with free/libre/open source software, is that any security
critical bugs, are fixed within an extremely short timeframe, and so
long as you update your machine regularly with any security related
updates, you should be OK.
This applies to all software of course, but the difference between
PHP, and other other propriatory solutions is that security updates
are released very soon after they are found.
Ian:
The department is right. PHP is a security risk. So is every other
piece of software on your machine. What your department has to do is
manage that risk. The default way of installing PHP will allow users
on a shared server to execute commands under the web-servers UID. This
can be, to a certain extent prevented using safe-mode, or better
again, using something like suExec/suPHP (search google or apache
docs).
PHP is like any other server application. You need to decide what
compromise between usability and security you want to make. You
basicly want to make it as secure as possible, without sacrificing any
essencial usability.
As an example, disabling register_globals makes your script more
secure, but you have to use $_GET['varname'] instead of $varname. That
is IMO a usability sacrifice well worth making in the interest of
security.
You'll find plenty more security related articles on the net, as to
how you can minimise the insecurity caused by PHP.
On 8/25/05, Santosh Jambhlikar <santosh.jambhlikar
cash-tech.com> wrote:
> As this is the php mailing list it is obvious that i should not write
> against php. but people should know the truth. And it's a news (not by
> me) that's why i wanted to send link to u peoples.
> I am sorry if i did something wrong, i am new user in php mailing list.
>
>
> Jasper Bryant-Greene wrote:
>
> > Santosh Jambhlikar wrote:
> >
> >> also
> >>
> >> PHP HIT BY ANOTHER CRITICAL FLAW
> >>
> >> A new security flaw in the PHP Web service protocol used by a large
> >> number of Web applications could allow attackers to take control of
> >> vulnerable servers.
> >> http://www.computerworld.com/securitytopics/security/holes/story/0,10801,104124,00.html
> >
> >
> >
> > You are spreading FUD about PHP. Stop it. If you actually *read* the
> > article carefully you will find that not only is this not a PHP bug,
> > but a bug with two XMLRPC libraries written *for* PHP. Not PHP itself.
> > This is completely irrelevant to the original topic, as I didn't see
> > the OP asking for XMLRPC security advice.
> >
> > While you're at it, why not publish an article "PHP HIT BY ANOTHER
> > CRITICAL FLAW" with the text "A new security flaw in my website, which
> > is developed using PHP, surfaced today..."
> >
> > Jasper
> >
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>
attached mail follows:
At 02:37 AM 8/26/2005, Santosh Jambhlikar wrote:
>As this is the php mailing list it is obvious that i should not write
>against php. but people should know the truth. And it's a news (not by me)
>that's why i wanted to send link to u peoples.
>I am sorry if i did something wrong, i am new user in php mailing list.
>
>
>Jasper Bryant-Greene wrote:
>
>>Santosh Jambhlikar wrote:
>>
>>>also
>>>
>>>PHP HIT BY ANOTHER CRITICAL FLAW
>>>
>>>A new security flaw in the PHP Web service protocol used by a large
>>>number of Web applications could allow attackers to take control of
>>>vulnerable servers.
>>>http://www.computerworld.com/securitytopics/security/holes/story/0,10801,104124,00.html
>>>
>>
>>
>>
>>You are spreading FUD about PHP. Stop it. If you actually *read* the
>>article carefully you will find that not only is this not a PHP bug, but
>>a bug with two XMLRPC libraries written *for* PHP. Not PHP itself. This
>>is completely irrelevant to the original topic, as I didn't see the OP
>>asking for XMLRPC security advice.
>>
>>While you're at it, why not publish an article "PHP HIT BY ANOTHER
>>CRITICAL FLAW" with the text "A new security flaw in my website, which is
>>developed using PHP, surfaced today..."
>>
>>Jasper
Santosh,
It's a good article, lousy and inaccurate headline, with an unfortunate
mistake in describing a language as a protocol. Furthermore, if you look
towards the bottom of the page, beneath the security blog and the links
following, you will see that it was reprinted from TechWorld. So, alarmist
filler with no fact-checking.
Nevertheless, there's a useful link to the probable source of the article
at hardened-php; something many newspapers do not want to bother with.
So, for everyone unhappy about the headline and the "protocol" error",
mailto:php-general
lists.php.net?SUBJECT=PHP%20Hit%20by%20another%20critical%20security%20flaw%20(104214)
Or click on the feedback button to the right of the headline.
And as for someone else's comment that it's OK to write against PHP, as
long as it's factual. Right on!!
Miles
attached mail follows:
><snip>
>
>Of course, if you ever see a news story that describes PHP as a web
>service protocol, you probably want to stop reading immediately. :-)
>
>Chris
>
>--
>Chris Shiflett
>Brain Bulb, The PHP Consultancy
>http://brainbulb.com/
Actually, I wanted to read more, just to find out how badly things were
misconstrued. I wasn't disappointed.
Miles
attached mail follows:
Chris Shiflett wrote:
> Because $_SERVER['SERVER_NAME'] can be manipulated by the user in some
> cases, you must consider $temp tainted at this point.
>
I was under the the impression that the non-'HTTP_*' keys in the
$_SERVER array came from the server itself. Obvoiusly I'm wrong, but I'm
curoius how 'SERVER_NAME' could be manipulated by the client. Is there
anything in the $_SERVER array that *can* be considered safe?
attached mail follows:
I have an annoying problem, I'm trying to write a simple PHP page that
says if a record is found in an Oracle database display 'Data Found'
else display 'No Data Found' but it does not seem to be working.
<?php
require("../passit.php");
$stmt = OCIParse("select UPI, ORG from WEB_DS where REC_VALUE =
'uczmdsk1'");
OCIExecute($stmt);
echo $stmt;
$nrows = OCIFetchStatement($stmt);
if ($nrows > 0) {
echo "Data found";
} else {
echo "No data found";
}
?>
David
----------------------------------
David Skyers
Support Analyst
Management Systems, UCL
d.skyers
ucl.ac.uk
020 7679 1849 (internal 41849)
attached mail follows:
David
>but it does not seem to be working.
Might be helpful for folks if you describe the nature of the fault
i.e. what you get back when you run this - at this stage there are a
multitude of possibilities...
raz
attached mail follows:
Hi Raz
Good Point. It displays 'No data found' when it should display 'Data
found'
Thanks
David
-----Original Message-----
From: Raz [mailto:raz.net
gmail.com]
Sent: 26 August 2005 12:06
To: David Skyers
Cc: php-general
lists.php.net
Subject: Re: [PHP] Help Needed
David
>but it does not seem to be working.
Might be helpful for folks if you describe the nature of the fault i.e.
what you get back when you run this - at this stage there are a
multitude of possibilities...
raz
attached mail follows:
Leading back in the code, that would suggest that $nrows is not
greater than zero - could be a problem with $nrows then, and anything
associated with that, i.e. $stmt, whether there is content in the db
where REC_VALUE = 'uczmdsk1' etc. etc.
Work back down the chain and see if you can find anomalies...
raz
attached mail follows:
does the actual SQL statement bring back any info if you do it through
the oracle interface, perhaps the problem isnt php but the SQL statement.
HTH
Angelo
Raz wrote:
>Leading back in the code, that would suggest that $nrows is not
>greater than zero - could be a problem with $nrows then, and anything
>associated with that, i.e. $stmt, whether there is content in the db
>where REC_VALUE = 'uczmdsk1' etc. etc.
>
>Work back down the chain and see if you can find anomalies...
>
>raz
>
>
>
attached mail follows:
The following statement brings back nothing
select UPI, ORG from REDEP.UPI_WEB_DS where REC_VALUE = 'test'
The following statement brings back one row
select UPI, ORG from REDEP.UPI_WEB_DS where REC_VALUE = 'uczmdsk1'
-----Original Message-----
From: Angelo Zanetti [mailto:angelo
zlogic.co.za]
Sent: 26 August 2005 13:14
To: Raz
Cc: David Skyers; php-general
lists.php.net
Subject: Re: [PHP] Help Needed
does the actual SQL statement bring back any info if you do it through
the oracle interface, perhaps the problem isnt php but the SQL
statement. HTH
Angelo
Raz wrote:
>Leading back in the code, that would suggest that $nrows is not greater
>than zero - could be a problem with $nrows then, and anything
>associated with that, i.e. $stmt, whether there is content in the db
>where REC_VALUE = 'uczmdsk1' etc. etc.
>
>Work back down the chain and see if you can find anomalies...
>
>raz
>
>
>
attached mail follows:
David,
> If I change the code to ($nrows = 1) then it displays 'Data found',
> however if I have a REC_VALUE = 'does not exist' it still displays 'Data
> found'....
>
That would suggest that something is being returned - do you have
command line access or some other way to look at what is being
returned by the sql statement?
Peel back the layers...
raz
attached mail follows:
<?php
require("../passit.php");
$stmt = OCIParse("select UPI, ORG from WEB_DS where REC_VALUE =
'uczmdsk1'");
OCIExecute($stmt);
----------------
According to the manual, this returns a boolean. I have never used oracle
with php but you need to find a function which actually returns a result set
in the same way that this function does, for example
http://uk2.php.net/manual/en/function.mssql-query.php
attached mail follows:
Hello all,
It seems there are many usefull functions in PHP missing.
I think, I will take the Spyglass Netscape DDE Documentation
and will implement the functions my own.
realpath() is not an option, because it returns the pysicaly
path. What I need is:
real_url($BASE_URL, $RELATIV_URL)
the reponse is the FULL URL calculated on the $BASE_URL.
Also the function should return an ExitStatus 0 if the
$REAL_PATH is outside of the document_root.
Any comments ?
Greetings
Michelle
--
Linux-User #280138 with the Linux Counter, http://counter.li.org/
Michelle Konzack Apt. 917 ICQ #328449886
50, rue de Soultz MSM LinuxMichi
0033/3/88452356 67100 Strasbourg/France IRC #Debian (irc.icq.com)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.5 (GNU/Linux)
iD8DBQFDDvwKC0FPBMSS+BIRAn8OAJ9frTENe+JYASxVBldnVFyu66viCwCeNz3O
auZq9jBnZl+5a7jqpbOh00I=
=JZoZ
-----END PGP SIGNATURE-----
attached mail follows:
The Function in Netscape DDE was:
WWW_ParseAnchor(qcsAbsoluteURL, qcsRelativeURL)
Documentation:
WWW_ParseAnchor
* Netscape is: Server.
* Transaction Type: XTYP_REQUEST.
* Item (Arguments): qcsAbsoluteURL,qcsRelativeURL
o qcsAbsoluteURL is the absolute (fully qualified) URL with which to parse a relative URL; in this case qcsRelativeURL.
o qcsRelativeURL is a URL which is relative to an absolute URL; in this case qcsAbsoluteURL.
* Data (Returns): qcsCombinedURL
o qcsCombinedURL is an absolute (fully qualified) URL created by resolving the relative URL (qcsRelatvieURL) with respect to the absolute URL (qcsAbsoluteURL).
* Description: Use this topic to have Netscape resolve relative to absolute URLs, instead of writing an implementation in your application. This will also give consistent results when resolving relative URLs in all applications which use this topic. URL access/protocol types that are not understood by Netscape (not registered) will not be parsed correctly; you can register a protocol through WWW_RegisterProtocol.
Greetings
Michelle
--
Linux-User #280138 with the Linux Counter, http://counter.li.org/
Michelle Konzack Apt. 917 ICQ #328449886
50, rue de Soultz MSM LinuxMichi
0033/3/88452356 67100 Strasbourg/France IRC #Debian (irc.icq.com)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.5 (GNU/Linux)
iD8DBQFDDv57C0FPBMSS+BIRAkMnAJ9LsCrnlW8GtOxLjs/OYnKFUS9F8gCgqCiE
DZNYq1RBBjAPyfh30lhetP4=
=swT7
-----END PGP SIGNATURE-----
attached mail follows:
Robin Vickery wrote:
> This is another rather hackish attempt at using the tokeniser.
>
you beast ;-)
apart from the fact that I don't use mysql this is really cool.
I have no time to play right now (gotta catcha plana) but I have
it on my to do list of things I need to take apart and
understand properly.
thanks!
> It turns this:
>
> <?php
> $emu = "my_column {$banana}";
> $wallaby = 'my_table';
> $kookaburra = 'SELECT * FROM';
> $kookaburra .= $wallaby;
> $koala = 'ASC';
> $taipan = ' ORDER BY' . $emu;
> $dropBear = 'group by something';
>
> mysql_query("$kookaburra WHERE (up = 'down') $taipan $koala " .
> strtoupper($dropBear));
> ?>
>
> into this:
>
> SELECT * FROM my_table WHERE (up = 'down') ORDER BY my_column $banana
> ASC strtoupper( group by something)
>
> Which isn't perfect by a long shot, but I'm away home now so it'll have to do.
>
> I'd be interested to know what it makes of your queries.
>
> -robin
>
> <?php
>
> //looks at all $dir/*.php files.
> $dir = '/path/to/php/files';
>
> foreach (getPhpFileList($dir) as $file) {
> print "===== $file =====\n";
> $token = tokeniseFile($file);
>
> // first find all calls to mysql_query()
> $mysqlCalls = getMysqlQueryCalls($token);
> foreach($mysqlCalls as $range) {
> $sql = resolveExpression($token, $range[0], $range[0], $range[1]);
> echo trim(preg_replace('/\s+/', ' ', $sql)), "\n"; // tidy it a little
> }
> }
>
>
> function getMysqlQueryCalls($token) {
> $callList = array();
> for ($i=0; isset($token[$i]); $i++) {
> if (!is_array($token[$i])) continue; // not interested in atomic tokens
> if (strtolower($token[$i][1]) !== 'mysql_query') continue;
> $args = getMysqlQueryArguments($i, $token);
> if ($args !== false) $call[] = $args;
> }
> return $call;
> }
>
> function nameTokens($token, $start = 0, $end = null)
> {
> if (is_null($end)) $end = sizeof($token);
> $range = array_slice($token, $start, $end - $start);
> foreach ($range as $key => $tok) {
> if (is_array($tok)) $range[$key][0] = token_name($range[$key][0]);
> }
> return $range;
> }
>
> function resolveToken($token, $cursor, $i) {
> if(is_array($token[$i])) {
> switch ($token[$i][0]) {
> case T_DOLLAR_OPEN_CURLY_BRACES:
> case T_CURLY_OPEN:
> break;
> case T_STRING:
> case T_WHITESPACE:
> case T_ENCAPSED_AND_WHITESPACE:
> return $token[$i][1];
> case T_CONSTANT_ENCAPSED_STRING:
> return eval( "return {$token[$i][1]};");
> case T_VARIABLE:
> case T_STRING_VARNAME:
> $def = findLastDefinition($token, $cursor, $i);
> if ($def === false) {
> // can't find anything else to replace $var with
> // presume it's defined elsewhere or we're not clever
> // enough to find it.
> return preg_replace('/^\$*/', '$', $token[$i][1]);
> }
> if ($def[3] == '.=') return
> resolveToken($token, $def[0], $i)
> . resolveExpression($token, $def[0], $def[1], $def[2]);
>
> return resolveExpression($token, $def[0], $def[1], $def[2]);
> default:
> return '('.token_name($token[$i][0]) . ':' . $token[$i][1] . ')';
> }
> } else {
> switch ($token[$i]) {
> case '(':
> case ')':
> return $token[$i];
> default:
> return '';
> }
> }
> }
>
> function ResolveExpression($token, $cursor, $start, $end) {
> $output = '';
> // just try and resolve all the tokens in the expression, concat
> them and throw them back.
> for ( $i=$start; $i<$end; $i++) {
> $output .= resolveToken($token, $cursor, $i);
> }
> return $output;
> }
>
> function findLastDefinition($token, $i, $id) {
> // make sure all variables are in the form $name as ${name} ones are
> // just 'name' by the time they end up here.
> $name = preg_replace('/^\$*/', '$', $token[$id][1]);
>
> // rewind until we hit an assignment or run out of tokens
> while (isset($token[--$i])) {
> // if we catch an assignment and our $name is to the left then
> capture the right.
> if (($token[$i] == '=' || (is_array($token[$i]) && $token[$i][0]
> == T_CONCAT_EQUAL)) && getLHS($token, $i) == $name) {
> $RHS = getRHS($token, $i);
> $RHS[] = is_array($token[$i]) ? $token[$i][1] : $token[$i];
> return $RHS;
> }
> }
> // we've run out of tokens, so seems like we can't find where this
> variable was defined.
> return false;
> }
>
>
> function getLHS($token, $i)
> {
> // rewind until we hit an variable name or run out of tokens
> while (isset($token[--$i])) {
> if (is_array($token[$i]) && $token[$i][0] == T_VARIABLE) return
> $token[$i][1];
> }
> // run out of tokens, we can't get a left hand side.
> return false;
> }
>
> function getRHS($token, $i)
> {
> // save the cursor at the assignment operator, so if $name is referred to on
> // the RHS, and we have to look for it again, we don't look at this bit.
> $cursor = $i;
>
> // fast forward until we get to a ';' or run out of tokens.
> while (isset($token[++$i]) && $token[$i] != ';') {
> if (!isset($start)) $start = $i;
> }
> // if we've run out of tokens or the RHS is empty then give up.
> if (!isset($start) || !isset($token[$i])) return false;
> return array($cursor, $start, $i);
> }
>
> // just stick all the tokens together to see what's going on.
> function renderTokens($token, $start, $end)
> {
> $output = '';
> for ( $i=$start; $i<$end; $i++) {
> $output .= is_array($token[$i]) ? $token[$i][1] : $token[$i];
> }
> return $output;
> }
>
>
> function getMysqlQueryArguments($i, $token) {
> /* only allowed whitespace before brackets */
> while (isset($token[++$i])) {
> if ($token[$i] === '(') break;
> if (!is_array($token[$i])) return false;
> if ($token[$i][0] !== T_WHITESPACE) return false;
> }
>
> // if we're here, we've found the '('
> // now find the matching ')'
> $start = $i;
> $braceCount = 1;
> while (isset($token[++$i]) && $braceCount) {
> if ($token[$i] === '(') $braceCount++;
> if ($token[$i] === ')') $braceCount--;
>
> }
> // if we're left with any unmatched braces, something's wrong.
> if ($braceCount != 0) return false;
> // otherwise return the start and end positions of the parameters.
> return array($start+1,$i-1);
> }
>
> function getPhpFileList($dir)
> {
> if (!is_dir($dir)) $dir = '.';
> return glob($dir . '/*.php');
> }
>
> function tokeniseFile($file)
> {
> return token_get_all(file_get_contents($file));
> }
>
> function findMysqlQueries($tokens)
> {
> return array_filter($tokens, 'isMysqlQuery');
> }
>
> function isMysqlQuery($token) {
> if (!is_array($token)) return 0;
> return ($token[0] == T_FUNCTION) || (strtolower($token[1]) == 'mysql_query');
> }
> ?>
>
attached mail follows:
[top-snip]
nice! I'll give it a look this morning
[/snip]
This is another rather hackish attempt at using the tokeniser.
It turns this:
<?php
$emu = "my_column {$banana}";
$wallaby = 'my_table';
$kookaburra = 'SELECT * FROM';
$kookaburra .= $wallaby;
$koala = 'ASC';
$taipan = ' ORDER BY' . $emu;
$dropBear = 'group by something';
mysql_query("$kookaburra WHERE (up = 'down') $taipan $koala " .
strtoupper($dropBear));
?>
into this:
SELECT * FROM my_table WHERE (up = 'down') ORDER BY my_column $banana
ASC strtoupper( group by something)
Which isn't perfect by a long shot, but I'm away home now so it'll have
to do.
I'd be interested to know what it makes of your queries.
-robin
<?php
//looks at all $dir/*.php files.
$dir = '/path/to/php/files';
foreach (getPhpFileList($dir) as $file) {
print "===== $file =====\n";
$token = tokeniseFile($file);
// first find all calls to mysql_query()
$mysqlCalls = getMysqlQueryCalls($token);
foreach($mysqlCalls as $range) {
$sql = resolveExpression($token, $range[0], $range[0], $range[1]);
echo trim(preg_replace('/\s+/', ' ', $sql)), "\n"; // tidy it a
little
}
}
function getMysqlQueryCalls($token) {
$callList = array();
for ($i=0; isset($token[$i]); $i++) {
if (!is_array($token[$i])) continue; // not interested in atomic
tokens
if (strtolower($token[$i][1]) !== 'mysql_query') continue;
$args = getMysqlQueryArguments($i, $token);
if ($args !== false) $call[] = $args;
}
return $call;
}
function nameTokens($token, $start = 0, $end = null)
{
if (is_null($end)) $end = sizeof($token);
$range = array_slice($token, $start, $end - $start);
foreach ($range as $key => $tok) {
if (is_array($tok)) $range[$key][0] = token_name($range[$key][0]);
}
return $range;
}
function resolveToken($token, $cursor, $i) {
if(is_array($token[$i])) {
switch ($token[$i][0]) {
case T_DOLLAR_OPEN_CURLY_BRACES:
case T_CURLY_OPEN:
break;
case T_STRING:
case T_WHITESPACE:
case T_ENCAPSED_AND_WHITESPACE:
return $token[$i][1];
case T_CONSTANT_ENCAPSED_STRING:
return eval( "return {$token[$i][1]};");
case T_VARIABLE:
case T_STRING_VARNAME:
$def = findLastDefinition($token, $cursor, $i);
if ($def === false) {
// can't find anything else to replace $var with
// presume it's defined elsewhere or we're not clever
// enough to find it.
return preg_replace('/^\$*/', '$', $token[$i][1]);
}
if ($def[3] == '.=') return
resolveToken($token, $def[0], $i)
. resolveExpression($token, $def[0], $def[1], $def[2]);
return resolveExpression($token, $def[0], $def[1], $def[2]);
default:
return '('.token_name($token[$i][0]) . ':' . $token[$i][1] . ')';
}
} else {
switch ($token[$i]) {
case '(':
case ')':
return $token[$i];
default:
return '';
}
}
}
function ResolveExpression($token, $cursor, $start, $end) {
$output = '';
// just try and resolve all the tokens in the expression, concat
them and throw them back.
for ( $i=$start; $i<$end; $i++) {
$output .= resolveToken($token, $cursor, $i);
}
return $output;
}
function findLastDefinition($token, $i, $id) {
// make sure all variables are in the form $name as ${name} ones are
// just 'name' by the time they end up here.
$name = preg_replace('/^\$*/', '$', $token[$id][1]);
// rewind until we hit an assignment or run out of tokens
while (isset($token[--$i])) {
// if we catch an assignment and our $name is to the left then
capture the right.
if (($token[$i] == '=' || (is_array($token[$i]) && $token[$i][0]
== T_CONCAT_EQUAL)) && getLHS($token, $i) == $name) {
$RHS = getRHS($token, $i);
$RHS[] = is_array($token[$i]) ? $token[$i][1] : $token[$i];
return $RHS;
}
}
// we've run out of tokens, so seems like we can't find where this
variable was defined.
return false;
}
function getLHS($token, $i)
{
// rewind until we hit an variable name or run out of tokens
while (isset($token[--$i])) {
if (is_array($token[$i]) && $token[$i][0] == T_VARIABLE) return
$token[$i][1];
}
// run out of tokens, we can't get a left hand side.
return false;
}
function getRHS($token, $i)
{
// save the cursor at the assignment operator, so if $name is referred
to on
// the RHS, and we have to look for it again, we don't look at this
bit.
$cursor = $i;
// fast forward until we get to a ';' or run out of tokens.
while (isset($token[++$i]) && $token[$i] != ';') {
if (!isset($start)) $start = $i;
}
// if we've run out of tokens or the RHS is empty then give up.
if (!isset($start) || !isset($token[$i])) return false;
return array($cursor, $start, $i);
}
// just stick all the tokens together to see what's going on.
function renderTokens($token, $start, $end)
{
$output = '';
for ( $i=$start; $i<$end; $i++) {
$output .= is_array($token[$i]) ? $token[$i][1] : $token[$i];
}
return $output;
}
function getMysqlQueryArguments($i, $token) {
/* only allowed whitespace before brackets */
while (isset($token[++$i])) {
if ($token[$i] === '(') break;
if (!is_array($token[$i])) return false;
if ($token[$i][0] !== T_WHITESPACE) return false;
}
// if we're here, we've found the '('
// now find the matching ')'
$start = $i;
$braceCount = 1;
while (isset($token[++$i]) && $braceCount) {
if ($token[$i] === '(') $braceCount++;
if ($token[$i] === ')') $braceCount--;
}
// if we're left with any unmatched braces, something's wrong.
if ($braceCount != 0) return false;
// otherwise return the start and end positions of the parameters.
return array($start+1,$i-1);
}
function getPhpFileList($dir)
{
if (!is_dir($dir)) $dir = '.';
return glob($dir . '/*.php');
}
function tokeniseFile($file)
{
return token_get_all(file_get_contents($file));
}
function findMysqlQueries($tokens)
{
return array_filter($tokens, 'isMysqlQuery');
}
function isMysqlQuery($token) {
if (!is_array($token)) return 0;
return ($token[0] == T_FUNCTION) || (strtolower($token[1]) ==
'mysql_query');
}
?>
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
attached mail follows:
Jay Paulson wrote:
> Does anyone know of a good polling script that is, obviously, written
> in PHP?
>
> Thanks!
Does http://www.google.com.au/search?q=php+polling+script help? I haven't
used any so I can't comment on 'good'
Cheers
--
David Robley
Radioactive halibut will make fission chips.
attached mail follows:
Joseph Oaks wrote:
> Guys I'm doing some research trying to find a good PHP based CMS. As
> there a quite a few, I would really like to get your opinions so I can
> narrow the search down.
>
> We were using Webedit Pro, but have found it a pain not to be able to
> use Firefox with it.
>
> Thanks for your input.
>
> Trell
Webedit Pro is not exactly a CMS. If you want a CMS you might like to check
out http://www.opensourcecms.com/ where you can try out a number of CMS
apps in a sandbox environment.
If you are looking for a HTML editor that works with Firefox et al,
FCKEditor may be worth a look: http://fckeditor.com/
Cheers
--
David Robley
IBM: I Buy Macinstosh
attached mail follows:
Ummm, what exactly is your solution? What did you go with, or what are
you going with?
On 8/24/05, Gustav Wiberg <gustav
varupiraten.se> wrote:
> Hi there!
>
> Thanx for the help!
>
> And everybody else that helped me with the solution of course! :-)
>
> /G
>
varupiraten.se
>
> ----- Original Message -----
> From: "Rory Browne" <rory.browne
gmail.com>
> To: "Jim Moseby" <JMoseby
nrbindustries.com>
> Cc: <php-general
lists.php.net>
> Sent: Tuesday, August 23, 2005 10:21 PM
> Subject: Re: [PHP] possible to get a function from another domain
>
>
> I withdraw my information in my earlier post.
>
> I was in a cybercafe in a hurry - and didn't have time to consider
> what was said, nor what I was saying myself.
>
> What I said before has little or not merit.
>
> You can make an experimental interface, and parse the html without the
> other domain owners co-operation(although it may be considered rude to
> do it without his consent). Your interface breaks when he changes his
> system.
>
> You can get him to create an XML page, that you can parse, if you have
> his co-operation, or you could possibly get him to create an XML-RPC
> or SOAP interface to his site.
>
> On 8/23/05, Jim Moseby <JMoseby
nrbindustries.com> wrote:
> > > [snip]
> > > Can I use require with http?
> > >
> > > My domain: www.varupiraten.se
> > >
> > > Other domain: www.webshop2.se
> > >
> > > Does this kind of code work?
> > >
> > > Code for my domain:
> > > <?php
> > > require(http://www.webshop2.se/externfunctions.php);
> > > $x = getValueFromProduct('Inno AX5000'); //This function
> > > retrieves price
> > >
> > > from webshop2.se
> > > ?
> > > [/snip]
> > >
> > > Have you tried it?
> > >
> > > Really, unless you own the the other domain and have a way to
> > > access the
> > > data, you really cannot do this without some sort of screen
> > > scraping or
> > > URL munging. Let us say that you know the product listing for
> > > the other
> > > domain is something like
> > >
> > > http://www.webshop2.com/productInfo.php?product=Inno_AX5000
> > >
> > > You could retrieve that data and manipulate it.
> > >
> >
> > But even if you did, you're giving the other guy the power to break your
> > site. All he has to do is change the URL or the format of the page, and
> > BOOM, your site croaks.
> >
> > So a relevant question is: "Do you have control of the other site, or at
> > least the cooperation of the other site's owner?"
> >
> > JM
> >
> > --
> > PHP General Mailing List (http://www.php.net/)
> > To unsubscribe, visit: http://www.php.net/unsub.php
> >
> >
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>
>
> --
> No virus found in this incoming message.
> Checked by AVG Anti-Virus.
> Version: 7.0.338 / Virus Database: 267.10.14/79 - Release Date: 2005-08-22
>
>
>
attached mail follows:
[snip]
This is another rather hackish attempt at using the tokeniser.
Which isn't perfect by a long shot, but I'm away home now so it'll have
to do.
I'd be interested to know what it makes of your queries.
[/snip]
This little slice of code is really well done, and I think that when it
is combined with the code from the original so that the file names for
each query can be identified and the other items can be specified from
the command line as Jochem had done this will be one really popular
little application. I made one change Robin and have one suggestion
I changed line 4 from
//looks at all $dir/*.php files.
$dir = '/path/to/php/files';
//looks at all $dir/*.php files.
$dir = $_SERVER['PWD'];
Which means that you will not have to modifiy the line each time you
place it in a different directory. Other than that, using glob in this
function;
function getPhpFileList($dir)
{
if (!is_dir($dir)) $dir = '.';
return glob($dir . '/*.php');
}
Will not work in older versions of PHP. Some folks still have these
older versions running (for various reasons) and may need this changed.
What's possibly next for this little application? Perhaps a method to
determine which type of database is being used based on connection
information or what have you. Learning by hacking, isn't it cool?
attached mail follows:
What's wrong with this picture? Well, nothing. That is, until you run the
following code on it. Then it becomes a solid black box with the intended
white brand at the bottom left. :-/
What it is supposed to do is place a 4 pixel wide black border around the
image, then brand an image with a copyright symbol (chr(169)) and some text.
It actually brands it twice, first in black, then in white, offset two
pixels vertically and horizontally. I thought it was the border part that
was crewing up, so I remarked that line out, but it still munges the
picture. Where have I gone wrong?
JM
<?
function brand_image($big_pic){// Draw border and brand big_pic
$borderwidth=4;
$fontpath="/www/PAPYRUS.TTF"; //path to font file
$brandtext=chr(169)."2005, example.com"; //text of image brand
$ims=getimagesize($big_pic);
$img = ImageCreateTrueColor($ims[0],$ims[1]);
$black = imagecolorallocate ($img, 0, 0, 0);
$white = imagecolorallocate ($img, 255, 255, 255);
imagecopy($img,$org_img, 0, 0, 0, 0, $ims[0], $ims[1]);
//for($x=0;$x<$borderwidth;$x++){imagerectangle($img,$x,$x,$ims[0]-(1+$x),$i
ms[1]-(1+$x), $black);}
imagettftext($img,20, 0, $ims[0]-260, $ims[1]-20, $black, $fontpath,
$brandtext);
imagettftext($img,20, 0, $ims[0]-262, $ims[1]-22, $white, $fontpath,
$brandtext);
imagejpeg($img,$big_pic,90);
imagedestroy($img);
} //function brand_image
brand_image("/www/test.jpg");
?>
attached mail follows:
<aaronjw
martekbiz.com> wrote in message
news:3473.65.95.142.172.1124213928.squirrel
www.martekbiz.com...
> Hey all,
>
> Does anyone have any recomendations for a GOOD PHP Form Processor
software?
>
> Kind of in a bind and don't want to reinvent the wheel if I don't have to.
>
> Sorry for thr O/T.
>
> TIA!
>
> A
I like phpHtmlLib's form processor as well as the rest of the stuff included
in the library.
http://phphtmllib.sourceforge.net
Mike
--
Mike Walsh - mike_walsh at mindspring.com
attached mail follows:
Hi!
A little while back there was a post where someone needed to read all files
(images/thumbs) from a gallery
and paginate them automatically, I cannot find the thread in the archive but
if anybody can point me to the
thread or knows how the poster solved his problem....please reply as i need
something very very close to that
functionality.
Thanks in advance,
Ryan
attached mail follows:
> A little while back there was a post where someone needed to read all files
> (images/thumbs) from a gallery
> and paginate them automatically, I cannot find the thread in the archive but
> if anybody can point me to the
> thread or knows how the poster solved his problem....please reply as i need
> something very very close to that
> functionality.
Mabye posts 1-8 from here?
http://marc.theaimsgroup.com/?l=php-general&w=2&r=1&s=previous+%2B+next+buttons%2C+no+DB&q=b
-philip
attached mail follows:
Thanks mate,
will check them out
Cheers,
Ryan
On 8/26/2005 6:45:34 PM, Philip Hallstrom (php
philip.pjkh.com) wrote:
> > A little while back there was a post where someone needed to read all
> files
> > (images/thumbs) from a gallery
> > and paginate them automatically, I cannot find the thread in the archive
> but
> > if anybody can point me to the
> > thread or knows how the poster solved his problem....please reply as i
> need
> > something very very close to that
> > functionality.
>
> Mabye posts 1-8 from here?
>
> http://marc.theaimsgroup.com/?l=php-
> general&w=2&r=1&s=previous+%2B+next+buttons%2C+no+DB&q=b
>
> -philip
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
attached mail follows:
I am setting up Apache 2.0.54 with PHP 5.0.4 on a Windows 2000 work station running MySQL 4.1.12a-nt.
When I start Apache, I receive the error message,
"PHP Startup: Unable to load dynamic library 'C:\PHP\ext\php_mysql.dll'.
I have C:\PHP set in the environment variable path.
In the php.ini file I have the following set(I have tried it with both the final "\" included and excluded):
extension_dir = "C:\PHP\ext\"
I do not get an error when I try to load the php_oci8.dll. Just for php_mysql.dll.
What am I missing?
attached mail follows:
We have quite a complex product all written in PHP and our own mySQL
wrapper. We initially wanted to use smarty, but due to time constraints, we
couldn't re-write everything, so it never got implemented.
Two feature requests we get a lot are the ability to sort the tabular data
by column heading (click once for ascending and again for descending) and
the second is pagination.
I'd say I was expert level PHP coder.
Can anyone suggest some code to handle this kind of thing before I go
re-inventing the wheel? Something I can relatively easily retrofit into our
existing code. I'm trying to avoid re-writing everything to conform to some
new format or template or what have you. Maybe there's a PEAR class? I'd say
a good percentage (maybe 1/2) pull from the DB and generate the rows on the
fly that way. We've tried to migrate towards generating an array and then
iterating through that (separating presentation and logic), but for some of
our data, there's just so much it's not feasible, sometimes time is a factor
or else the pages are just legacy. So, ideally the solution should handle
both kinds of tables.
Our tables use our own style sheet. They have a roll-over tool tip for the
headings. They use alternating colors for the rows, with highlighting for
the row your mouse is on. Probably pretty standard fare.
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]