php-general Digest 18 Mar 2010 16:32:12 -0000 Issue 6646
Topics (messages 302949 through 302971):
Remote Desktop Management
302949 by: Al Mangkok
Re: best way to determine mime type of file these days?
302950 by: Per Jessen
302963 by: tedd
302965 by: Per Jessen
Re: PHP in HTML code
302951 by: Pete Ford
302958 by: Jan G.B.
302959 by: tedd
302960 by: tedd
302971 by: Jan G.B.
Re: Spreadsheet_Excel_Reader problem
302952 by: Ashley Sheridan
302953 by: Ashley Sheridan
302954 by: Jochen Schultz
302955 by: Paul M Foster
302957 by: Jochen Schultz
302962 by: tedd
302967 by: Tommy Pham
302968 by: Paul M Foster
302969 by: Mattias Thorslund
302970 by: Ashley Sheridan
Re: I need a fresh look at storing variables in MySQL
302956 by: tedd
protecting pages with a login system
302961 by: David Mehler
302964 by: Ashley Sheridan
302966 by: APseudoUtopia
Administrivia:
To subscribe to the digest, e-mail:
php-general-digest-subscr...@lists.php.net
To unsubscribe from the digest, e-mail:
php-general-digest-unsubscr...@lists.php.net
To post to the list, e-mail:
php-gene...@lists.php.net
----------------------------------------------------------------------
--- Begin Message ---
Hi all,
Am looking for Remote Desktop Management system that is written with PHP.
Appreciate all feedback. TIA
--
al
--- End Message ---
--- Begin Message ---
Robert P. J. Day wrote:
>
> i realize it sounds trivial but the online info is annoyingly
> recursive. there's mime_content_type(), but it's officially
> deprecated.
On the manual page there is a reference to the Fileinfo PECL extension:
http://php/manual/en/ref.fileinfo.php
--
Per Jessen, Zürich (9.1°C)
--- End Message ---
--- Begin Message ---
At 8:52 AM +0100 3/18/10, Per Jessen wrote:
Robert P. J. Day wrote:
i realize it sounds trivial but the online info is annoyingly
recursive. there's mime_content_type(), but it's officially
deprecated.
On the manual page there is a reference to the Fileinfo PECL extension:
http://php/manual/en/ref.fileinfo.php
Broken.
Cheers,
tedd
--
-------
http://sperling.com http://ancientstones.com http://earthstones.com
--- End Message ---
--- Begin Message ---
tedd wrote:
> At 8:52 AM +0100 3/18/10, Per Jessen wrote:
>>Robert P. J. Day wrote:
>>
>>>
>>> i realize it sounds trivial but the online info is annoyingly
>>> recursive. there's mime_content_type(), but it's officially
>>> deprecated.
>>
>>On the manual page there is a reference to the Fileinfo PECL
>>extension:
>>
>>http://php/manual/en/ref.fileinfo.php
>
> Broken.
Sorry, that was a link to my local copy.
http://php.net/manual/en/ref.fileinfo.php
--
Per Jessen, Zürich (14.8°C)
--- End Message ---
--- Begin Message ---
On 17/03/10 18:59, Tommy Pham wrote:
On Wed, Mar 17, 2010 at 11:01 AM, Rene Veerman<rene7...@gmail.com> wrote:
hmm.. seems easier to me to push a filetree of .php's with<?= through
the str_replace(), than it is to get all the<?= writers to comply
with your wishes, which may not apply to their situation ;-)
On Wed, Mar 17, 2010 at 5:14 PM, tedd<tedd.sperl...@gmail.com> wrote:
At 8:55 PM -0400 3/16/10, Adam Richardson wrote:
That said, I'm not taking exception with those who don't use the short
tag, only with those who say I shouldn't.
Exception or not, it's still your choice and using short tags can cause
problems.
My view, why create problems when there is a solution? Forcing the issue is
a bit like "I'm going to do it my way regardless!" I've traveled that path
too many times in my life. Sometimes it's easier to take the path most
traveled.
Cheers,
ted
--
-------
http://sperling.com http://ancientstones.com http://earthstones.com
--
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
http://www.php.net/manual/en/language.basic-syntax.phpmode.php
"There are four different pairs of opening and closing tags which can
be used in PHP. Two of those,<?php ?> and<script language="php">
</script>, are always available. The other two are short tags and ASP
style tags, and can be turned on and off from the php.ini
configuration file. As such, while some people find short tags and ASP
style tags convenient, they are less portable, and generally not
recommended. "
But the implication there is that they are *only* non-portable *because* they
can be switched off - there's no other strong reason. Before anyone jumps in
with XML / XHTML arguments again, those issues are fairly rare and very easily
worked around. My projects tend to use XHTML doctype because it makes IE7/8
behave more predictably without a <?xml ?> block, and I always use short tags
for <?= because the alternative is so ugly! In the rare cases where I generate
XML from a PHP script, there are workarounds for the <? problem.
I do tend to use <?php for blocks of code - so I guess I'm in the middle camp
here.
I also write code to be hosted on dedicated systems that I have full control
over, so php.ini settings are always in my control (so far...)
--- End Message ---
--- Begin Message ---
2010/3/18 Pete Ford <p...@justcroft.com>:
> On 17/03/10 18:59, Tommy Pham wrote:
>>
>> On Wed, Mar 17, 2010 at 11:01 AM, Rene Veerman<rene7...@gmail.com> wrote:
>>>
>>> hmm.. seems easier to me to push a filetree of .php's with<?= through
>>> the str_replace(), than it is to get all the<?= writers to comply
>>> with your wishes, which may not apply to their situation ;-)
>>>
>>> On Wed, Mar 17, 2010 at 5:14 PM, tedd<tedd.sperl...@gmail.com> wrote:
>>>>
>>>> At 8:55 PM -0400 3/16/10, Adam Richardson wrote:
>>>>>
>>>>> That said, I'm not taking exception with those who don't use the short
>>>>> tag, only with those who say I shouldn't.
>>>>
>>>> Exception or not, it's still your choice and using short tags can cause
>>>> problems.
>>>>
>>>> My view, why create problems when there is a solution? Forcing the issue
>>>> is
>>>> a bit like "I'm going to do it my way regardless!" I've traveled that
>>>> path
>>>> too many times in my life. Sometimes it's easier to take the path most
>>>> traveled.
>>>>
>>>> Cheers,
>>>>
>>>> ted
>>>> --
>>>> -------
>>>> http://sperling.com http://ancientstones.com http://earthstones.com
>>>>
>>>> --
>>>> 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
>>>
>>>
>>
>> http://www.php.net/manual/en/language.basic-syntax.phpmode.php
>>
>> "There are four different pairs of opening and closing tags which can
>> be used in PHP. Two of those,<?php ?> and<script language="php">
>> </script>, are always available. The other two are short tags and ASP
>> style tags, and can be turned on and off from the php.ini
>> configuration file. As such, while some people find short tags and ASP
>> style tags convenient, they are less portable, and generally not
>> recommended. "
>
> But the implication there is that they are *only* non-portable *because*
> they can be switched off - there's no other strong reason. Before anyone
> jumps in with XML / XHTML arguments again, those issues are fairly rare and
> very easily worked around. My projects tend to use XHTML doctype because it
> makes IE7/8 behave more predictably without a <?xml ?> block, and I always
> use short tags for <?= because the alternative is so ugly! In the rare cases
> where I generate XML from a PHP script, there are workarounds for the <?
> problem.
> I do tend to use <?php for blocks of code - so I guess I'm in the middle
> camp here.
> I also write code to be hosted on dedicated systems that I have full control
> over, so php.ini settings are always in my control (so far...)
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>
I agree.
And I believe the persons ranting about short open tags are just like
some religious people. It's almost like a war between
Linux/Windows/Mac, IE/FF or ASP/PHP.
Also, people love to recommend things that others recommended before.
It mustn't make a big sense.
--- End Message ---
--- Begin Message ---
At 9:34 AM +0000 3/18/10, Pete Ford wrote:
I do tend to use <?php for blocks of code - so I guess I'm in the
middle camp here.
Whoa, that's even worse -- make a choice and stick with it -- IMO.
I'm all for consistency and have often found myself redoing dozens of
scripts because I changed something -- not because the change worked
and the other didn't, but rather to maintain consistency throughout
the project.
Granted, different reasons promote different programming styles.
While what I do is to solve the problem at hand for the client, it
also has to pass through my vision of code elegance. I program for
myself first and solve the client's problems second. I also realize
that I have the privilege of doing so because my needs are few. I
probably wouldn't do well in a production oriented environment.
Cheers,
tedd
--
-------
http://sperling.com http://ancientstones.com http://earthstones.com
--- End Message ---
--- Begin Message ---
At 4:11 PM +0100 3/18/10, Jan G.B. wrote:
I agree.
And I believe the persons ranting about short open tags are just like
some religious people. It's almost like a war between
Linux/Windows/Mac, IE/FF or ASP/PHP.
Also, people love to recommend things that others recommended before.
It mustn't make a big sense.
Calling it "ranting" or "religious" unjustly demeans the discussion
and is inflammatory.
In all of this, I've simply said it's your choice. While I "believe"
and have stated my reasons, which are more than "faith", you are free
to do whatever you want. I don't consider any of this discussion (on
either side of the argument) as "religious' or "ranting" -- it's
simply a discussion.
Cheers,
tedd
--
-------
http://sperling.com http://ancientstones.com http://earthstones.com
--- End Message ---
--- Begin Message ---
2010/3/18 tedd <tedd.sperl...@gmail.com>:
> Calling it "ranting" or "religious" unjustly demeans the discussion and is
> inflammatory.
> In all of this, I've simply said it's your choice.
What I said was:
*persons ranting about short open tags* *are just like some religious people
*
I did not address you.
On the other hand you're telling people here that their approach is "worse"
and yours is great. IMHO this isn't a discussion but bashing without any
reasoning.
You simply say that XML is confused by a short open tag, but actually PHP is
not embedded in XML.
I quote you:
> that's your choice -- but your decision is also a demonstration to your
client/employer/peers as to your desire to produce the "best" possible code.
> I look at code containing "<?=" the same way as I see html containing
tables and embedded styling for presentation -- "This must be old code OR
the programmer still doesn't get it".
You make it very clear that you believe in your superior coding style.
--- End Message ---
--- Begin Message ---
On Thu, 2010-03-18 at 19:21 +0800, I am on the top of the world!
Borlange University wrote:
> sounds good, i havnt checked out it with cvs format.
>
> thanks
>
>
> On Tue, Mar 16, 2010 at 8:15 PM, Ashley Sheridan
> <a...@ashleysheridan.co.uk> wrote:
>
>
> On Tue, 2010-03-16 at 20:16 +0800, I am on the top of the
> world! Borlange University wrote:
>
> > i have a problem of reading values from excel file via
> > spreadsheet_excel_reader which is a php class used to manipulate
> excel
> > files.
> >
> > $data = new Spreadsheet_Excel_Reader();
> > $data->setOutputEncoding('CP936');
> > $data->read("d:\\tmp.xls");
> > $rows=$data->sheets[0]['numRows'];
> > $cell = $data->sheets[0]['cells'][1][1];
> >
> > if i type many rows,say 1000, in the tmp.xls, it can read, $rows
> shows 1000,
> > however, 1000 rows of data are copied from another excel file and
> these
> > cells may have different background or other changes that differ
> from normal
> > cells, it fails to read.the variable $rows shows nothing....what i
> can do
> > now is to split these data into small groups, small enough to be
> read, it
> > really takes plenty of time.
> >
> >
> > i dont know why, has somebody met this problem ever?
>
>
>
>
> If it's just the data you need, try using a csv file instead.
> The Excel format is closed, and as such, the PHP classes won't
> have full support for all of it's features. It seems like
> formatting is causing the data to be written to the
> spreadsheet differently maybe.
>
>
>
> Thanks,
> Ash
> http://www.ashleysheridan.co.uk
>
>
>
>
>
The .csv format is just a plain text format, so you won't get formatting
or formulas in your 'sheets' (csv is also a sheetless format) but it's
been used for years by many systems for data.
A lot of database systems will let you import csv files as well, which
is quite convenient, although you will have to make sure the csv uses
commas to delimit the data. Microsoft managed to basterdise this format
a bit as well, and lets you use tabs, spaces and all sorts of other
characters to delimit data fields. Someone obviously didn't mention to
them that the file type is 'comma separated values'!
Thanks,
Ash
http://www.ashleysheridan.co.uk
--- End Message ---
--- Begin Message ---
On Thu, 2010-03-18 at 12:56 +0100, Jochen Schultz wrote:
> > Microsoft managed to basterdise this format
> > a bit as well, and lets you use tabs, spaces and all sorts of other
> > characters to delimit data fields. Someone obviously didn't mention to
> > them that the file type is 'comma separated values'!
>
> Or maybe it is because someone told them, that there is data out there,
> that might contain commas?
>
> regards
> Jochen
The csv format allows for quote marks which can serve to escape commas:
"data, with commas"
And for escaping quote marks, you just use triple quote marks:
"some text """with quotes""" "
Thanks,
Ash
http://www.ashleysheridan.co.uk
--- End Message ---
--- Begin Message ---
> Microsoft managed to basterdise this format
> a bit as well, and lets you use tabs, spaces and all sorts of other
> characters to delimit data fields. Someone obviously didn't mention to
> them that the file type is 'comma separated values'!
Or maybe it is because someone told them, that there is data out there,
that might contain commas?
regards
Jochen
--- End Message ---
--- Begin Message ---
On Thu, Mar 18, 2010 at 11:35:33AM +0000, Ashley Sheridan wrote:
<snip>
>
> The .csv format is just a plain text format, so you won't get formatting
> or formulas in your 'sheets' (csv is also a sheetless format) but it's
> been used for years by many systems for data.
>
> A lot of database systems will let you import csv files as well, which
> is quite convenient, although you will have to make sure the csv uses
> commas to delimit the data. Microsoft managed to basterdise this format
> a bit as well, and lets you use tabs, spaces and all sorts of other
> characters to delimit data fields. Someone obviously didn't mention to
> them that the file type is 'comma separated values'!
I process a lot of CSV files, and what I typically see is that Excel
will enclose fields which might contain commas in quotes. This gets
messy. So I finally wrote a C utility which parses the file and yields
tab-delimited records without the quotes.
Paul
--
Paul M. Foster
--- End Message ---
--- Begin Message ---
AFAIK, there is no real standard out there for CSV file definition and
since Microsoft and many others (me too btw) use other chars for field
separation in so called CSV files, i think it is a good way to deal with
it and let it be how it is (actually i have to look into every CSV file
that is going to be exchanged and that has some advantages as well).
Btw. who told you to use tripple quotes?
http://www.rfc-editor.org/rfc/rfc4180.txt
7. If double-quotes are used to enclose fields, then a double-quote
appearing inside a field must be escaped by preceding it with
another double quote. For example:
"aaa","b""bb","ccc"
regards
Jochen
Ashley Sheridan schrieb:
On Thu, 2010-03-18 at 12:56 +0100, Jochen Schultz wrote:
> Microsoft managed to basterdise this format
> a bit as well, and lets you use tabs, spaces and all sorts of other
> characters to delimit data fields. Someone obviously didn't mention to
> them that the file type is 'comma separated values'!
Or maybe it is because someone told them, that there is data out there,
that might contain commas?
regards
Jochen
The csv format allows for quote marks which can serve to escape commas:
"data, with commas"
And for escaping quote marks, you just use triple quote marks:
"some text """with quotes""" "
Thanks,
Ash
http://www.ashleysheridan.co.uk
--- End Message ---
--- Begin Message ---
At 11:35 AM +0000 3/18/10, Ashley Sheridan wrote:
The .csv format is just a plain text format, so you won't get formatting
or formulas in your 'sheets' (csv is also a sheetless format) but it's
been used for years by many systems for data.
A lot of database systems will let you import csv files as well, which
is quite convenient, although you will have to make sure the csv uses
commas to delimit the data. Microsoft managed to basterdise this format
a bit as well, and lets you use tabs, spaces and all sorts of other
characters to delimit data fields. Someone obviously didn't mention to
them that the file type is 'comma separated values'!
Thanks,
Ash
Ash:
I remember many years ago I had a problem with M$ version of plain
text csv files -- the first cell of each spreadsheet was different
than all other cells. It took me a while to discover that difference
and build in an exception.
I've found that M$ always has a better idea, even if they are the
only ones who think so.
Cheers,
tedd
--
-------
http://sperling.com http://ancientstones.com http://earthstones.com
--- End Message ---
--- Begin Message ---
On Thu, Mar 18, 2010 at 8:40 AM, tedd <tedd.sperl...@gmail.com> wrote:
> At 11:35 AM +0000 3/18/10, Ashley Sheridan wrote:
>>
>> The .csv format is just a plain text format, so you won't get formatting
>> or formulas in your 'sheets' (csv is also a sheetless format) but it's
>> been used for years by many systems for data.
>>
>> A lot of database systems will let you import csv files as well, which
>> is quite convenient, although you will have to make sure the csv uses
>> commas to delimit the data. Microsoft managed to basterdise this format
>> a bit as well, and lets you use tabs, spaces and all sorts of other
>> characters to delimit data fields. Someone obviously didn't mention to
>> them that the file type is 'comma separated values'!
>>
>> Thanks,
>> Ash
>
> Ash:
>
> I remember many years ago I had a problem with M$ version of plain text csv
> files -- the first cell of each spreadsheet was different than all other
> cells. It took me a while to discover that difference and build in an
> exception.
>
> I've found that M$ always has a better idea, even if they are the only ones
> who think so.
>
> Cheers,
>
> tedd
>
> --
Personally, I find working with fixed widths is best. The text file
might be larger but I don't have worry about escaping any type of
characters ;)
Regards,
Tommy
--- End Message ---
--- Begin Message ---
On Thu, Mar 18, 2010 at 08:57:00AM -0700, Tommy Pham wrote:
<snip>
>
> Personally, I find working with fixed widths is best. The text file
> might be larger but I don't have worry about escaping any type of
> characters ;)
I find this impossible, since I never know the largest width of all the
fields in a file. And a simple explode() call allows pulling all the
fields into an array, based on a common delimiter.
Paul
--
Paul M. Foster
--- End Message ---
--- Begin Message ---
Paul M Foster wrote:
I process a lot of CSV files, and what I typically see is that Excel
will enclose fields which might contain commas in quotes. This gets
messy. So I finally wrote a C utility which parses the file and yields
tab-delimited records without the quotes.
Paul
And fgetcsv() didn't work for you?
http://www.php.net/fgetcsv
Cheers,
Mattias
--- End Message ---
--- Begin Message ---
On Thu, 2010-03-18 at 12:12 -0400, Paul M Foster wrote:
> On Thu, Mar 18, 2010 at 08:57:00AM -0700, Tommy Pham wrote:
>
> <snip>
>
> >
> > Personally, I find working with fixed widths is best. The text file
> > might be larger but I don't have worry about escaping any type of
> > characters ;)
>
> I find this impossible, since I never know the largest width of all the
> fields in a file. And a simple explode() call allows pulling all the
> fields into an array, based on a common delimiter.
>
> Paul
>
> --
> Paul M. Foster
>
Explode won't work in the case of a comma in a field value.
Also, newlines can exist within a field value, so a line in the file
doesn't equate to a row of data
The best way is just to start parsing at the beginning of the file and
break it into fields one by one from there.
The bit I don't like about characters other than a comma being used in a
"comma separated values" file is that you can't automatically tell what
character has been used as the delimiter. Hence being asked by
spreadsheet programs what the delimiter is if a comma doesn't give up
what it recognises as valid fields.
Thanks,
Ash
http://www.ashleysheridan.co.uk
--- End Message ---
--- Begin Message ---
At 5:18 PM -0700 3/17/10, Tommy Pham wrote:
-snip-
Below is how I'd do the db structure:
tbl_survey_questions:
questionId = int / uid << your call
languageId = int / uid / char << your call if you intend to I18n it ;)
question = varchar << length is your requirement
PK > questionId + languageId
tbl_participants:
userId = int / uid
userName = varchar
PK > userId
tbl_answers:
userId = int / uid
questionId = int / uid
languageId = int / uid
answer = varchar / mediumtext / or another type of text field
PK > userId + questionId + languageId
The reason why I'd structure it like this is:
Let's say you have question 1 with 5 (a-e) multiple choices, you
aggregrate your query (GROUP BY) to db for question 1 and see how many
responses are for a to e (each). If your survey is I18n and your DB
reflects it, you can even analyze how/why certain cultural background
would choose each of those answer. (don't flame me... I know the
environment comes in to growing up too :p and that's way beyond the
scope of this list )
Tommy:
The way I handled this was that all responder aspects, such as
cultural background, were all recorded before the responder started
the survey. This was part an authorization process and the responders
had to "earn" their way into the survey by providing personal data.
If they did not, then they weren't allowed to enter the survey.
Likewise, they had to turn javascript ON or they were not permitted
to continue.
Please understand that in this survey, the purpose was that the
client wasn't hoping for responders to fill out the survey (even
though they would like them to), but rather providing a method for
the membership to show their preferences in a union contract for
their collective interest. As such, responders had a vested interest
in participating. The survey would take between 20 to 60 minutes to
complete and thus required a significant time investment.
Considering that each answer (or series) could be compared to any
number of others, I thought it best to make each question/answer
created an individual record -- the table was very simple:
survey_id
question_id
key1
key2
answer
1) The union wants several surveys like this, so I provided a survey_id.
2) The question_id was simply an identifier for the question -- a
remote key to a question table.
3) Key1 and Key2 were simply values that were intended to tie the
question/answer pairs together into a single event (i.e., a vote).
4) Answer -- what we are after.
This format lends itself well to analyses using MySQL.
Cheers,
tedd
--
-------
http://sperling.com http://ancientstones.com http://earthstones.com
--- End Message ---
--- Begin Message ---
Hi,
I am wanting to protect some pages by requiring a user to log in to
access them. I'd prefer this be as simple as possible, and without
requiring a database.
So for example when a user goes to www.domain.com/example.php they'll
get a page prompting for their log in credentials, and only after
providing them will the page display. I'd prefer to avoid basic
authentication dialog boxes if possible.
Suggestions appreciated.
Thanks.
Dave.
--- End Message ---
--- Begin Message ---
On Thu, 2010-03-18 at 11:40 -0400, David Mehler wrote:
> Hi,
> I am wanting to protect some pages by requiring a user to log in to
> access them. I'd prefer this be as simple as possible, and without
> requiring a database.
> So for example when a user goes to www.domain.com/example.php they'll
> get a page prompting for their log in credentials, and only after
> providing them will the page display. I'd prefer to avoid basic
> authentication dialog boxes if possible.
> Suggestions appreciated.
> Thanks.
> Dave.
>
By basic authentication dialog boxes, do you mean the sort that come
with password protection added through the use of an .htaccess file?
If that's the case, then you're left with authenticating the same way
you'd do it with a database, but using some sort of flat file storage.
Ideally, this flat file would be kept out of your web root for
protection.
Thanks,
Ash
http://www.ashleysheridan.co.uk
--- End Message ---
--- Begin Message ---
On Thu, Mar 18, 2010 at 11:42 AM, Ashley Sheridan
<a...@ashleysheridan.co.uk> wrote:
>
> On Thu, 2010-03-18 at 11:40 -0400, David Mehler wrote:
>
> > Hi,
> > I am wanting to protect some pages by requiring a user to log in to
> > access them. I'd prefer this be as simple as possible, and without
> > requiring a database.
> > So for example when a user goes to www.domain.com/example.php they'll
> > get a page prompting for their log in credentials, and only after
> > providing them will the page display. I'd prefer to avoid basic
> > authentication dialog boxes if possible.
> > Suggestions appreciated.
> > Thanks.
> > Dave.
> >
>
>
> By basic authentication dialog boxes, do you mean the sort that come
> with password protection added through the use of an .htaccess file?
>
> If that's the case, then you're left with authenticating the same way
> you'd do it with a database, but using some sort of flat file storage.
> Ideally, this flat file would be kept out of your web root for
> protection.
>
Unless you want to have only one (or another very small number) login.
You can make a normal HTML form, then the code that processes the
$_POST data can just compare the username and password to the
"correct" username and password to login. You could make the valid
logins into an array and compare the $_POST data to the array of valid
logins.
Also, look into sessions.
http://us.php.net/manual/en/book.session.php
--- End Message ---