|
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 Oct 2004 13:36:17 -0000 Issue 3075
php-general-digest-help
lists.php.net
Date: Tue Oct 26 2004 - 08:36:17 CDT
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
php-general Digest 26 Oct 2004 13:36:17 -0000 Issue 3075
Topics (messages 200311 through 200349):
Re: php extension problem
200311 by: Pierre Ancelot
Re: Good Class/API Design ?
200312 by: Curt Zirzow
File uploads and handling
200313 by: Philip Thompson
200314 by: Jason Wong
Re: file upload
200315 by: Chris
200339 by: Kris
200341 by: Kris
not _that_ fixed....
200316 by: Pierre Ancelot
200317 by: Robert Cummings
200319 by: Pierre Ancelot
200332 by: Robert Cummings
Specifying Variable Document Path in PHP
200318 by: Anthony Baker
200320 by: Jason Wong
Re: chm file for tutorial
200321 by: Denis Gerasimov
Re: Content-Type header required for POST?
200322 by: Olaf van der Spek
200323 by: Olaf van der Spek
System Command and snmp commands
200324 by: Mulley, Nikhil
200346 by: Mulley, Nikhil
best php script that counts current online users, question.
200325 by: Louie Miranda
200348 by: raditha dissanayake
200349 by: Daniel Schierbeck
Further help for PHP, SQL syntax, and register_globals
200326 by: Sugimoto
200330 by: John Holmes
200335 by: Ford, Mike
Apache+PHP on Windows
200327 by: gtm2.interia.pl
Sending Mail with PHP
200328 by: Wiesiek
mysql_escape_string breaks EOL?
200329 by: David Robley
Protecting Commercial PHP Scripts
200331 by: Nick Wilson
200333 by: Dirk Kredler
200334 by: Kevin Waterson
200336 by: Francisco M. Marzoa Alonso
200338 by: Nick Wilson
200340 by: Francisco M. Marzoa Alonso
Re: Passing regexp substrings to a function
200337 by: Robin Vickery
Re:
session_start generates a new session_id
200342 by: Lizet Peña de Sola
Strange explode()
200343 by: Ryan A
uploading large files
200344 by: marc serra
200347 by: raditha dissanayake
List of Dates Grouped by Week
200345 by: Shaun
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:
fixed. i downloaded the source from php.net and it works now... the previous
source i had came from apt system. maybe the source is patched ? if i'm not
the only one to have had this problem, let me know, i'll mail the debian
maintener
thanks,
On Monday 25 October 2004 19:19, Pierre Ancelot wrote:
> Hi !
>
> I am having some trouble creating a php extension.
> as show in the documentation i did a ./ext_skel --extname=mymodule
> which created the directory mymodule
> i edited the config.m4 file to tune it to something very basic :
>
> PHP_ARG_WITH(mymodule, for mymodule support,
> [ --with-mymodule Include mymodule support])
> if test "$PHP_MYMODULE" != "no"; then
> PHP_NEW_EXTENSION(mymodule, mymodule.c, $ext_shared)
> fi
>
>
> saved and went to the base of the source tree...
>
>
> pierre
debian:/usr/src/php4-4.3.9$ ./buildconf
> You should not run buildconf in a release package.
> use buildconf --force to override this check.
> pierre
debian:/usr/src/php4-4.3.9$ ./buildconf --force
> Forcing buildconf
> using default Zend directory
> buildconf: checking installation...
> buildconf: autoconf version 2.59 (ok)
> buildconf: Your version of autoconf likely contains buggy cache code.
> Running cvsclean for you.
> To avoid this, install autoconf-2.13 and automake-1.5.
> buildconf: libtool version 1.5.6 (ok)
> rebuilding configure
> autoconf/programs.m4:438: AC_DECL_YYTEXT is expanded from...
> configure.in:147: the top level
> pierre
debian:/usr/src/php4-4.3.9$
>
>
> then, i been looking up if the module was taken
>
> pierre
debian:/usr/src/php4-4.3.9$ ./configure --help | grep -i mymodule
> pierre
debian:/usr/src/php4-4.3.9$
>
>
> and.... no, it's not.... any idea ? something i did wrong ?
>
>
> thank you :)
attached mail follows:
* Thus wrote Greg Beaver:
> Adam Reiswig wrote:
> >Hey all, I just got my hands on the excellent books PHP Anthology 1 & 2
> >and am wanting to start playing around with classes. My question to the
> >list is, what, in your opinion, constitutes good class/api design? Is
> >it better to design several smaller classes that each focus on one task
> >and do that task well, or to build more general classes that handle a
> >number of related tasks?
> >
> >Also, when you are beginning a new project, what methods do you find
> >helpful to follow in taking your project from concept to finished?
>
> Do as much of the design away from the keyboard as you can. Use prose,
> questions like "what do the users of this program need?" are a good
> starting point, or "what is the problem that needs solving?" Draw
> pictures and flowcharts for complex things you want to do (you don't
> have to use UML, but its methodology is helpful). There are several
> excellent and free UML modelling programs out there.
Also, make sure the objects are not doing tasks they shouldn't be
doing. A car object shouldn't have any methods that perform flying
tasks, unless of course it implements the FlyingCar interface :)
Curt
--
Quoth the Raven, "Nevermore."
attached mail follows:
Hi all.
I have a form to upload a file from a user's computer to the server. I
want to then modify the file, and then let the user save it back.
However, I am having troubles opening the file. It says it doesn't
exist. Any suggestions?
-------
if (is_uploaded_file($_FILES['userfile']['name']))
$handle = fopen($_FILES['userfile']['name'], "r");
else
echo $filename . " was not uploaded properly";
-------
I know the actual filename shows up... but somehow it's not uploading.
Ideas?
~Philip
attached mail follows:
On Tuesday 26 October 2004 03:45, Philip Thompson wrote:
> I have a form to upload a file from a user's computer to the server. I
> want to then modify the file, and then let the user save it back.
> However, I am having troubles opening the file. It says it doesn't
> exist. Any suggestions?
>
> -------
> if (is_uploaded_file($_FILES['userfile']['name']))
> $handle = fopen($_FILES['userfile']['name'], "r");
> else
> echo $filename . " was not uploaded properly";
> -------
>
> I know the actual filename shows up...
In the above you are only referencing the *filename* and not the actual
uploaded file itself.
> but somehow it's not uploading.
> Ideas?
Read
manual > Handling file uploads
to see how it all works.
--
Jason Wong -> Gremlins Associates -> www.gremlins.biz
Open Source Software Systems Integrators
* Web Design & Hosting * Internet & Intranet Applications Development *
------------------------------------------
Search the list archives before you post
http://marc.theaimsgroup.com/?l=php-general
------------------------------------------
/*
Quantity is no substitute for quality, but its the only one we've got.
*/
attached mail follows:
Ahh, if you *have* to push the data (which you obviously do) and the
authentication site has no other authentication methods then you have to
POST the file with PHP. It can be done, there are many classes for it, I
can't recommend any specific class, but I'm sure someone else here could.
I would surprise me if something in PEAR ( http://pear.php.net/ )
couldn't do it. Just look for an HTTP class that can POST files.
Chris
Victor C. wrote:
>See... basically, I have two sites. One site provides user authentication
>and another one requests the authentication. The requesting site need to
>send to the authentication site its request in an XML. The authentication
>site is suppose to get the XML file using $HTTP_POST_FILES. I'm using PHP
>to dynamically generate the request XML file and I need to submit it to the
>authenticating site; but I don't want to use file upload and browse
>functionality, because the authentication process is suppose to be
>transparent to the end users.
>
>Again, thanx for the help and any insights would be greatly appreciated. :)
>
attached mail follows:
Hmmmm....
Setup a CRON job using SCP or cURL. You can use SOAP or create your own
similar system. I have never used SOAP but use the same principles.
Example: Company X needs some strange format of data (text file, CSV or
whatever) delivered to them SECURELY at 5am EST. The company cannot
afford to pay for any sane sysAdmin to do this at -7 GMT. Thanks to
advances in PHP, the sane admin can now do what was once done via PERL
and CRON; create a PHP shell script [executed by CRON] to do the following:
Pull data from a database, create this alleged data file, send the file
via SCP or cURL. If you use cURL, the remote system has a script which
receives your connection and parses alleged file. Security and parsing
is another topic altogether.
PHP is a server side scripting language. A browser is just another way
to view output from PHP.
PHP is so many fantastic things. It is generally less "malicious" than
your needs purport. Sounds like you need the efficacies of javascript
if the example above does not fit your scenario. Since most people
ignore the wisdom of turning javascript off in their browsers, you
should be able to take advantage of many of the "features" it
provides. However, you need to visit a javascript list for anything
down this path. If you are not forthcoming enough as to your
intentions, you are most likely not going to receive any assistance
simply because your idea sounds "malicious".
Programmers tend to keep the caveats of programming exploits unto
themselves. However, it is just as likely that your intent is not
malicious, and therefore you may wish to simply revise your question and
description of the problem/scenario you are attempting to overcome. All
in all, more information leads to... more information! :) I speak from
experience. I post confusing questions at times too, which result in
confused responses or links to manual pages I've already read more than
once. The real solution to this aside is to post more detailed questions.
Victor C. wrote:
>Thanks for answering Chris..
>What if I want to send a file from my web server to another site for them to
>parse? I already know what file I want to send and I do not want to have to
>select the file by doing "browsing".
>
>"Chris" <listschris
leftbrained.org> wrote in message
>news:417D6F36.4000509
leftbrained.org...
>
>
>>You can't, at least you SHOULDN'T. Just think about what you're asking
>>for, you want to download a file from a users computer, without them
>>knowing about it.
>>
>>Major security/privacy issues there that browsers try to prevent.
>>
>>Chris
>>
>>Victor C. wrote:
>>
>>
>>
>>>Hi,
>>>
>>>I'm trying to submit a file from "index.php" to "index2.php". I know how
>>>
>>>
>to
>
>
>>>do file upload in PHP. On "index.php"
>>>I have:
>>>
>>><FORM ACTION="index2.php" METHOD=POST
>>>ENCTYPE="multipart/form-data">
>>><INPUT TYPE="file" NAME="myfile" SIZE=30>
>>><INPUT TYPE="submit" NAME="Upload File">
>>></FORM>
>>>
>>>The next page would only need to use $HTTP_POST_FILES['myfile'] to access
>>>the submitted file.
>>>
>>>My question is: if I already know which file I want to submit, say
>>>"file1.xml". How can I just ask "index.php"
>>>to submit "file1.xml" to "index2.php"? Without asking the users to pick
>>>
>>>
>the
>
>
>>>file to upload?
>>>
>>>Thanks a lot in advance!
>>>
>>>
>>>
>>>
>>>
>
>
>
attached mail follows:
Victor
Yes, Chris is correct. Maybe you can POST your file via cURL to the
remote script expecting to receive your file from the authentication
site. Definitely check PEAR. There is also some info at php.net about
new SOAP capabilites built-in to PHP 5. Unfortunately I have only used
cURL to do similar to what I think you are trying to do, so I can only
suggest at this time to review what is new in PHP (which is where I saw
mention of this "built-in SOAP" of PHP5.)
Feel free to write back and we will continue in attempts to assist.
Chris wrote:
> Ahh, if you *have* to push the data (which you obviously do) and the
> authentication site has no other authentication methods then you have
> to POST the file with PHP. It can be done, there are many classes for
> it, I can't recommend any specific class, but I'm sure someone else
> here could.
>
> I would surprise me if something in PEAR ( http://pear.php.net/ )
> couldn't do it. Just look for an HTTP class that can POST files.
>
> Chris
>
> Victor C. wrote:
>
>> See... basically, I have two sites. One site provides user
>> authentication
>> and another one requests the authentication. The requesting site need to
>> send to the authentication site its request in an XML. The
>> authentication
>> site is suppose to get the XML file using $HTTP_POST_FILES. I'm
>> using PHP
>> to dynamically generate the request XML file and I need to submit it
>> to the
>> authenticating site; but I don't want to use file upload and browse
>> functionality, because the authentication process is suppose to be
>> transparent to the end users.
>>
>> Again, thanx for the help and any insights would be greatly
>> appreciated. :)
>>
>
attached mail follows:
in fact i got it in the ./configure --help :
pierre
debian:~/phpsource/php-4.3.9$ ./configure --help | grep -i spider
--enable-spider Enable spider support
pierre
debian:~/phpsource/php-4.3.9$
which is okay. but if i run make, i got a few lines about it like :
gcc -Iext/spider/ -I/home/pierre/phpsource/php-4.3.9/ext/spider/
-DPHP_ATOM_INC -I/home/pierre/phpsource/php-4.3.9/include
-I/home/pierre/phpsource/php-4.3.9/main -I/home/pierre/phpsource/php-4.3.9
-I/home/pierre/phpsource/php-4.3.9/Zend
-I/home/pierre/phpsource/php-4.3.9/ext/xml/expat
-I/home/pierre/phpsource/php-4.3.9/TSRM -g -O2
-c /home/pierre/phpsource/php-4.3.9/ext/spider/spider.c -o
ext/spider/spider.o && echo > ext/spider/spider.lo
and it goes without any error about my module.
so, as the tutorial specifies it, i run the script created with my extension :
pierre
debian:~/phpsource/php-4.3.9$ php -f ext/spider/spider.php
Warning: dl(): Unable to load dynamic library
'/usr/lib/php4/20020429/spider.so' - /usr/lib/php4/20020429/spider.so: cannot
open shared object file: No such file or directory
in /home/pierre/phpsource/php-4.3.9/ext/spider/spider.php on line 3
Functions available in the test extension:<br>
Warning: Invalid argument supplied for foreach()
in /home/pierre/phpsource/php-4.3.9/ext/spider/spider.php on line 8
<br>
Module spider is not compiled into PHP
pierre
debian:~/phpsource/php-4.3.9$
after checking, i see this:
pierre
debian:~/phpsource/php-4.3.9$ ls ext/spider/
CREDITS EXPERIMENTAL config.m4 php_spider.h spider.c spider.lo spider.o
spider.php tests
pierre
debian:~/phpsource/php-4.3.9$
The module is NOT created :'(
Did i forget something in config.m4 ???
something i didn't get in the tutorial ???
http://www.php.net/manual/fr/zend.build.php
no idea...
Anyone ? please, i'm kinda lost
attached mail follows:
On Tue, 2004-10-26 at 00:37, Pierre Ancelot wrote:
>
> in fact i got it in the ./configure --help :
>
> pierre
debian:~/phpsource/php-4.3.9$ ./configure --help | grep -i spider
> --enable-spider Enable spider support
> pierre
debian:~/phpsource/php-4.3.9$
>
> which is okay. but if i run make, i got a few lines about it like :
>
> gcc -Iext/spider/ -I/home/pierre/phpsource/php-4.3.9/ext/spider/
> -DPHP_ATOM_INC -I/home/pierre/phpsource/php-4.3.9/include
> -I/home/pierre/phpsource/php-4.3.9/main -I/home/pierre/phpsource/php-4.3.9
> -I/home/pierre/phpsource/php-4.3.9/Zend
> -I/home/pierre/phpsource/php-4.3.9/ext/xml/expat
> -I/home/pierre/phpsource/php-4.3.9/TSRM -g -O2
> -c /home/pierre/phpsource/php-4.3.9/ext/spider/spider.c -o
> ext/spider/spider.o && echo > ext/spider/spider.lo
>
> and it goes without any error about my module.
> so, as the tutorial specifies it, i run the script created with my extension :
>
> pierre
debian:~/phpsource/php-4.3.9$ php -f ext/spider/spider.php
>
> Warning: dl(): Unable to load dynamic library
> '/usr/lib/php4/20020429/spider.so' - /usr/lib/php4/20020429/spider.so: cannot
> open shared object file: No such file or directory
> in /home/pierre/phpsource/php-4.3.9/ext/spider/spider.php on line 3
> Functions available in the test extension:<br>
>
> Warning: Invalid argument supplied for foreach()
> in /home/pierre/phpsource/php-4.3.9/ext/spider/spider.php on line 8
> <br>
> Module spider is not compiled into PHP
> pierre
debian:~/phpsource/php-4.3.9$
>
> after checking, i see this:
>
> pierre
debian:~/phpsource/php-4.3.9$ ls ext/spider/
> CREDITS EXPERIMENTAL config.m4 php_spider.h spider.c spider.lo spider.o
> spider.php tests
> pierre
debian:~/phpsource/php-4.3.9$
>
> The module is NOT created :'(
> Did i forget something in config.m4 ???
> something i didn't get in the tutorial ???
> http://www.php.net/manual/fr/zend.build.php
> no idea...
The 'make' command does not compile shared object extensions. You need
to do something different for that. However if PHP compiled properly
with the extension enabled then you shouldn't need to load your
extension via dl() since it should already be a part of the PHP binary.
That said, if you still wish to compile a shared object module of your
extension then you can run this from the PHP source directory (with
suitable changes for your extension):
cc -fpic -DCOMPILE_DL_INTERJINN=1 \
-Iext/interjinn/ -Iinclude -Imain -I. -IZend -ITSRM \
-c -o ext/interjinn/interjinn.o ext/interjinn/interjinn.c
cc -shared -L/usr/local/lib -rdynamic -o \
ext/interjinn/interjinn.so \
ext/interjinn/interjinn.o
I don't recall if it's necessary, but I compile PHP as a CGI binary
first and then run the above commands. If you want to allow support for
your extension as both a dl()'d module or as a built-in extension, then
you can check for the existence of one of your modules functions with
function_exists() and if it doesn't exist then use dl() to try and load
the shared module.
HTH,
Rob.
--
.------------------------------------------------------------.
| InterJinn Application Framework - http://www.interjinn.com |
:------------------------------------------------------------:
| An application and templating framework for PHP. Boasting |
| a powerful, scalable system for accessing system services |
| such as forms, properties, sessions, and caches. InterJinn |
| also provides an extremely flexible architecture for |
| creating re-usable components quickly and easily. |
`------------------------------------------------------------'
attached mail follows:
humm, thank you, finaly someone that did something of that kind :)
well, i want it as a dynamic extension that i could redistribute and which
wouldn't necessits recompilation, just adding it in php.in
does what you told still would works in this case ?
On Tuesday 26 October 2004 06:47, Robert Cummings wrote:
> On Tue, 2004-10-26 at 00:37, Pierre Ancelot wrote:
> > in fact i got it in the ./configure --help :
> >
> > pierre
debian:~/phpsource/php-4.3.9$ ./configure --help | grep -i spider
> > --enable-spider Enable spider support
> > pierre
debian:~/phpsource/php-4.3.9$
> >
> > which is okay. but if i run make, i got a few lines about it like :
> >
> > gcc -Iext/spider/ -I/home/pierre/phpsource/php-4.3.9/ext/spider/
> > -DPHP_ATOM_INC -I/home/pierre/phpsource/php-4.3.9/include
> > -I/home/pierre/phpsource/php-4.3.9/main
> > -I/home/pierre/phpsource/php-4.3.9
> > -I/home/pierre/phpsource/php-4.3.9/Zend
> > -I/home/pierre/phpsource/php-4.3.9/ext/xml/expat
> > -I/home/pierre/phpsource/php-4.3.9/TSRM -g -O2
> > -c /home/pierre/phpsource/php-4.3.9/ext/spider/spider.c -o
> > ext/spider/spider.o && echo > ext/spider/spider.lo
> >
> > and it goes without any error about my module.
> > so, as the tutorial specifies it, i run the script created with my
> > extension :
> >
> > pierre
debian:~/phpsource/php-4.3.9$ php -f ext/spider/spider.php
> >
> > Warning: dl(): Unable to load dynamic library
> > '/usr/lib/php4/20020429/spider.so' - /usr/lib/php4/20020429/spider.so:
> > cannot open shared object file: No such file or directory
> > in /home/pierre/phpsource/php-4.3.9/ext/spider/spider.php on line 3
> > Functions available in the test extension:<br>
> >
> > Warning: Invalid argument supplied for foreach()
> > in /home/pierre/phpsource/php-4.3.9/ext/spider/spider.php on line 8
> > <br>
> > Module spider is not compiled into PHP
> > pierre
debian:~/phpsource/php-4.3.9$
> >
> > after checking, i see this:
> >
> > pierre
debian:~/phpsource/php-4.3.9$ ls ext/spider/
> > CREDITS EXPERIMENTAL config.m4 php_spider.h spider.c spider.lo
> > spider.o spider.php tests
> > pierre
debian:~/phpsource/php-4.3.9$
> >
> > The module is NOT created :'(
> > Did i forget something in config.m4 ???
> > something i didn't get in the tutorial ???
> > http://www.php.net/manual/fr/zend.build.php
> > no idea...
>
> The 'make' command does not compile shared object extensions. You need
> to do something different for that. However if PHP compiled properly
> with the extension enabled then you shouldn't need to load your
> extension via dl() since it should already be a part of the PHP binary.
>
> That said, if you still wish to compile a shared object module of your
> extension then you can run this from the PHP source directory (with
> suitable changes for your extension):
>
> cc -fpic -DCOMPILE_DL_INTERJINN=1 \
> -Iext/interjinn/ -Iinclude -Imain -I. -IZend -ITSRM \
> -c -o ext/interjinn/interjinn.o ext/interjinn/interjinn.c
>
> cc -shared -L/usr/local/lib -rdynamic -o \
> ext/interjinn/interjinn.so \
> ext/interjinn/interjinn.o
>
> I don't recall if it's necessary, but I compile PHP as a CGI binary
> first and then run the above commands. If you want to allow support for
> your extension as both a dl()'d module or as a built-in extension, then
> you can check for the existence of one of your modules functions with
> function_exists() and if it doesn't exist then use dl() to try and load
> the shared module.
>
> HTH,
> Rob.
> --
> .------------------------------------------------------------.
>
> | InterJinn Application Framework - http://www.interjinn.com |
> |
> :------------------------------------------------------------:
> :
> | An application and templating framework for PHP. Boasting |
> | a powerful, scalable system for accessing system services |
> | such as forms, properties, sessions, and caches. InterJinn |
> | also provides an extremely flexible architecture for |
> | creating re-usable components quickly and easily. |
>
> `------------------------------------------------------------'
attached mail follows:
On Tue, 2004-10-26 at 00:58, Pierre Ancelot wrote:
> humm, thank you, finaly someone that did something of that kind :)
>
> well, i want it as a dynamic extension that i could redistribute and which
> wouldn't necessits recompilation, just adding it in php.in
>
> does what you told still would works in this case ?
Yes. Sorry to respond so much later but I went to bed after my response
last night :)
Cheers,
Rob.
--
.------------------------------------------------------------.
| InterJinn Application Framework - http://www.interjinn.com |
:------------------------------------------------------------:
| An application and templating framework for PHP. Boasting |
| a powerful, scalable system for accessing system services |
| such as forms, properties, sessions, and caches. InterJinn |
| also provides an extremely flexible architecture for |
| creating re-usable components quickly and easily. |
`------------------------------------------------------------'
attached mail follows:
Hey Folks,
My first post to this list and forgive me if this is ground that's been trod
before, but this has been bugging me for a bit.
I'm developing a site that's going to be running on a staging environment
and a production environment. Have a number of PHP includes in the
production site that specifically call the file pathname (thus):
<?php include '/home/production_site/public_html/pagename.php' ?>
The problem here is that the path will vary slightly depending on whether
it's the staging server or production server. I'd ideally like to set a
single global variable that can handle this so I don't have to hard-code
paths across the site (as I'm doing now).
Is there any easy way to accomplish this?
Thanks in advance,
Anthony
attached mail follows:
On Tuesday 26 October 2004 04:46, Anthony Baker wrote:
> The problem here is that the path will vary slightly depending on whether
> it's the staging server or production server. I'd ideally like to set a
> single global variable that can handle this so I don't have to hard-code
> paths across the site (as I'm doing now).
>
> Is there any easy way to accomplish this?
Have a look at:
print_r($_SERVER);
and find something that is unique (to each server) that you can use.
$_SERVER['HTTP_HOST'] is usually a good candidate.
--
Jason Wong -> Gremlins Associates -> www.gremlins.biz
Open Source Software Systems Integrators
* Web Design & Hosting * Internet & Intranet Applications Development *
------------------------------------------
Search the list archives before you post
http://marc.theaimsgroup.com/?l=php-general
------------------------------------------
/*
I know it all. I just can't remember it all at once.
*/
attached mail follows:
BTW does anybody know why CHM version hasn't been updated for a very long
time? I prefer to read help manuals in CHM format (that is more convenient
for me) so I am wondering...
Best regards, Denis Gerasimov
Outsourcing Services Manager,
VEKOS, Ltd.
www.vekos.ru
> -----Original Message-----
> From: Marek Kilimajer [mailto:lists
kilimajer.net]
> Sent: Monday, October 25, 2004 3:28 PM
> To: murugesan
hotpop.com
> Cc: php-general
lists.php.net
> Subject: Re: [PHP] chm file for tutorial
>
> murugesan
hotpop.com wrote:
> > Hello all,
> >
> >
> >
> > I am new to PHP programming.. It will be nice to have a chm
> file
> > on php tutorial. Can anyone point me to that location ?
>
> http://www.php.net/download-docs.php
>
> > Also I would like to
> > know how how to code the following line ?
> >
> >
> >
> > <a href='http://www.geocities.com/murugesangct/index.html'>Mail
> > <http://www.geocities.com/murugesangct/index.html> </a>
>
> You just did.
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
attached mail follows:
Chris Shiflett wrote:
> --- Olaf van der Spek <OlafvdSpek
GMail.Com> wrote:
>
>>>Content-Type is required for any request that has content.
>>>It's an HTTP requirement and has very little to do with PHP.
>>>
>>>Can you explain what you're talking about?
>>
>>I was talking about the request, not about the response.
>
>
> As was I. That's why I used the word request. :-)
I'm sorry, I misunderstood 'thas has content'.
>
> You'll have a very tough time getting an answer if you can't explain your
> question. That's the only helpful hint I can provide.
The reason I'm asking is that I've got a small application that does a
POST request without that header and it used to work fine and not it
doesn't.
So I was wondering in which version PHP changed this behaviour.
>
> Chris
>
> =====
> Chris Shiflett - http://shiflett.org/
>
> PHP Security - O'Reilly HTTP Developer's Handbook - Sams
> Coming December 2004 http://httphandbook.org/
attached mail follows:
Chris Shiflett wrote:
> --- Olaf van der Spek <OlafvdSpek
GMail.Com> wrote:
>
>>Since which version does PHP require the Content-Type header in
>>POST requests?
>
>
> Content-Type is required for any request that has content. It's an HTTP
The RFC says should, not is required to.
Any HTTP/1.1 message containing an entity-body SHOULD include a
Content-Type header field defining the media type of that body. If
and only if the media type is not given by a Content-Type field, the
recipient MAY attempt to guess the media type via inspection of its
content and/or the name extension(s) of the URI used to identify the
resource. If the media type remains unknown, the recipient SHOULD
treat it as type "application/octet-stream".
> requirement and has very little to do with PHP.
>
> Can you explain what you're talking about?
>
> Chris
>
> =====
> Chris Shiflett - http://shiflett.org/
>
> PHP Security - O'Reilly HTTP Developer's Handbook - Sams
> Coming December 2004 http://httphandbook.org/
attached mail follows:
Hi All,
I want to use system command to perform snmp queries on a remote machine and the problem is that I want to store the output /result in an Array , so that I can later use it for parsing purposes.I know I could use exec and passthru statements actually,But I am unable to store the result in the array or I am unsure whether the result is not getting stored in the array
Here is the code
<?php
exec(' snmpget -v 2c -c public 10.103.16.14 sysUpTime.0',$ret);
list($a)=split('[,]',$ret);
echo $a[0];
?>
Point me , if any thing wrong in the code
Please help me.
Thanks,
Nikhil.
attached mail follows:
Tring Tring .....
Just to ring please help me.
I am giving to out print_r($ret) then it returns 1 at
exec(' snmpget -v 2c -c public 10.103.16.14 sysUpTime.0',$ret);
--Nikhil
-----Original Message-----
From: Mulley, Nikhil [mailto:mnikhil
corp.untd.com]
Sent: Tuesday, October 26, 2004 12:41 PM
To: php-general
lists.php.net
Subject: [PHP] System Command and snmp commands
Hi All,
I want to use system command to perform snmp queries on a remote machine and the problem is that I want to store the output /result in an Array , so that I can later use it for parsing purposes.I know I could use exec and passthru statements actually,But I am unable to store the result in the array or I am unsure whether the result is not getting stored in the array
Here is the code
<?php
exec(' snmpget -v 2c -c public 10.103.16.14 sysUpTime.0',$ret);
list($a)=split('[,]',$ret);
echo $a[0];
?>
Point me , if any thing wrong in the code
Please help me.
Thanks,
Nikhil.
attached mail follows:
Hi,
i got tired testing free php scripts that does count current online
users and i could not find the best one yet.
maybe someone can help me.
im looking for a current counter for online users, php script that
does count even if its inside a proxy with one ip.
i can't find one.
--
Louie Miranda
http://www.axishift.com
attached mail follows:
Louie Miranda wrote:
>Hi,
>
>i got tired testing free php scripts that does count current online
>users and i could not find the best one yet.
>
>
>
what is the yard stick
>
>
--
Raditha Dissanayake.
------------------------------------------------------------------------
http://www.radinks.com/sftp/ | http://www.raditha.com/megaupload
Lean and mean Secure FTP applet with | Mega Upload - PHP file uploader
Graphical User Inteface. Just 128 KB | with progress bar.
attached mail follows:
Louie Miranda wrote:
> Hi,
>
> i got tired testing free php scripts that does count current online
> users and i could not find the best one yet.
>
> maybe someone can help me.
>
> im looking for a current counter for online users, php script that
> does count even if its inside a proxy with one ip.
>
> i can't find one.
>
Dunno 'bout the proxy part, but can't you just have a MySQL table like this:
id INT; ip VARCHAR(15); time DATETIME; PRIMARY KEY id
Then check if the client IP exists in the table upon page load. If it
does, update the timestamp. Otherwise insert a new row. After the query
you delete all rows that are more than 5 or so minutes old.
--
Daniel Schierbeck
Help spread Firefox (www.getfirefox.com):
http://www.spreadfirefox.com/?q=user/register&r=6584
attached mail follows:
Ciao.
Ramil, Janet, Dan, and Matther thank you for your advice.
But problem still unsolved. Sorry for asking many questions.
My PHP-MySQL library database isnt working properly
(PHP and HTML scripts are the bottom of this message).
The problem seems to be "GO" (mySQL name)/"go" (PHP name),
because when I typed 100 in GO field in the HTML query page,
the following appeared in the result page:
Bad query: You have an error in your SQL syntax near 'and Tit like and Aut
like and Auty like ' at line 4
In contrast, when I typed 2000 in "dt" field ("ym" in MySQL), this appeared:
Bad query: You have an error in your SQL syntax near 'and ym like 2000 and
Tit like and Aut like and Auty like ' at line 3
The thing is Bad query doesnt say "GO like 100"!
As long as I see MySQL seems working correctly. I can do like "select * from
gen_table where id < 10"
Is this something related to the change of PHP 3 to 4?
I was given a database made by PHP3.0&MySQL3.23, and I upgraded it to PHP
4.3.
When I just used register_globals=ON, didnt use $_GET stuff, the database
worked perfectly,
but when I tried register_globals=OFF and use $_GET stuff, problem happens.
Any idea somebody, please??
-----------------------------------------
The script Im having a problem is here:
<html>
<body>
<TITLE>gen_search.php</TITLE>
<table border="1" align="center" BGCOLOR="#F2FEE0">
<tr>
<td align="right">ID</td>
<td align="center">Vol</td>
<td align="center">Date</td>
<td align="center">Title</td>
<td align="center">Author</td>
<td align="center">PageStart</td>
<td align="center">PageEnd</td>
<td align="center">Image</td>
</tr>
<?
mysql_connect(localhost,root,love);
mysql_select_db(gendai);
if (empty($_GET["go"]) &
empty($_GET["dt"]) &
empty($_GET["ti"]) &
empty($_GET["au"]) &
empty($_GET["ay"]))
{
echo 'Type something';
}
elseif ($_GET["go"] == "%" |
$_GET["dt"] == "%" |
$_GET["ti"] == "%" |
$_GET["au"] == "%" |
$_GET["ay"] == "%")
{
echo 'Not valid';
}
else {
foreach ($_GET as $value) {
if (empty($value)) $value = "%";
}
$result = mysql_query("select * from gen_table
where GO like ".$_GET["go"]."
and ym like ".$_GET["dt"]."
and Tit like ".$_GET["ti"]."
and Aut like ".$_GET["au"]."
and Auty like ".$_GET["ay"]."")
or die("Bad query: ".mysql_error());
$rows = mysql_num_rows($result);
echo $rows,"Records available<p>";
while($row = mysql_fetch_array($result)){
?>
<tr>
<td align ="right"><A HREF = "gen_detail.php ?id=<? echo $row["ID"];
?>"><? echo $row["ID"]; ?></A></td>
<td align ="right"><A HREF = "gen_search2.php ?go=<? echo $row["GO"];
?>"><? echo $row["GO"]; ?></A></td>
<td><? echo $row["ym"]; ?></td>
<td width="400"><? echo $row["Tit"]; ?></td>
<td width="200"><? echo $row["Aut"]; ?></td>
<td><? echo $row["sta"]; ?></td>
<td><? echo $row["end"]; ?></td>
<td>
<?php if($row["GO"] <= 500) { ?>
<A HREF="/momatlib/gendai/pdf/<? echo $row["GO"]; ?>.pdf">pdf</A>
<?php } ?>
</td>
</tr>
<?
}
}
?>
</table>
</body>
</html>
-----------------------------------------------------------
And HTML here:
<html>
<body>
<TITLE>gen_menu.html</TITLE>
<BODY TEXT="#000000" LINK="#0000FF" VLINK="#008040" ALINK="#FF00FF">
<form action="gen_search2.php" method="get">
<table border="1" align="center" BGCOLOR="#F2FEE0">
<tr><td> Search</td><td align="center">Type</td><td
align="center">tips</td></tr>
<tr><td align="center">Volume</td><td><input type="text" name="go" size=
"10" maxlength= "10"></td><td></td></tr><p>
<tr><td align="center">Date</td><td><input type="text" name="dt" size= "10"
maxlength= "10"></td><td></td></tr><p>
<tr><td align="center">Title</td><td><input type="text" name="ti" size="60"
maxlength="60"></td><td></td></tr><p>
<tr><td align="center">Author</td><td><input type="text" name="au" size="60"
maxlength="60"></td><td></td></tr><p>
<tr><td align="center">Yomi</td><td><input type="text" name="ay" size="60"
maxlength="60"></td><td></td></tr><p>
<tr><td></td><td align="center"><a href="gen50.php">LINK</a></td><p>
</table><p>
<p align="center">
<input type="submit" value="Search">
<input type="reset" value="Clear" ></P>
</form>
</body>
</html>
attached mail follows:
Sugimoto wrote:
> Bad query: You have an error in your SQL syntax near 'and Tit like and Aut
> like and Auty like ' at line 4
[snip]
> foreach ($_GET as $value) {
> if (empty($value)) $value = "%";
You have an issue here. You're looping through $_GET and attempting to
set a default value (which is good), but you're not making any changes
to $_GET at all, just resetting the same $value variable to '%'.
foreach($_GET as $key=>$value)
{
if(empty($value))
{ $_GET[$key] = '%'; }
}
--
---John Holmes...
Amazon Wishlist: www.amazon.com/o/registry/3BEXC84AB3A5E/
php|architect: The Magazine for PHP Professionals – www.phparch.com
attached mail follows:
To view the terms under which this email is distributed, please go to http://disclaimer.leedsmet.ac.uk/email.htm
On 26 October 2004 12:01, John Holmes wrote:
> Sugimoto wrote:
> > Bad query: You have an error in your SQL syntax near 'and Tit like
> > and Aut like and Auty like ' at line 4
> [snip]
> > foreach ($_GET as $value) {
> > if (empty($value)) $value = "%";
>
> You have an issue here. You're looping through $_GET and attempting to
> set a default value (which is good), but you're not making
> any changes
> to $_GET at all, just resetting the same $value variable to '%'.
>
> foreach($_GET as $key=>$value)
> {
> if(empty($value))
> { $_GET[$key] = '%'; }
> }
Or, if I've been paying attention properly (which I might easily not have!
;), in PHP 5 you can do:
foreach ($_GET as &$value) {
if (empty($value)) $value = "%";
}
Cheers!
Mike
---------------------------------------------------------------------
Mike Ford, Electronic Information Services Adviser,
Learning Support Services, Learning & Information Services,
JG125, James Graham Building, Leeds Metropolitan University,
Headingley Campus, LEEDS, LS6 3QS, United Kingdom
Email: m.ford
leedsmet.ac.uk
Tel: +44 113 283 2600 extn 4730 Fax: +44 113 283 3211
attached mail follows:
I have installed Apache 2.0.52 and PHP 5.0.2 on windows XP. I have configured directories and everything works until I unmark any of extensions. After this, during Apache server starting, I am reciving the
warning :
PHP Startup: Unable to load dynamic library
"D:/MyWWWsrv/php/ext/php_mysql.dll" - the module could not be found
the result is that I cannot use MySQL in php scripts.
Please, write me back, what should be done to make it working correctly.
Thanks a lot.
Gregor
----------------------------------------------------------------------
Startuj z INTERIA.PL!!! >>> http://link.interia.pl/f1837
attached mail follows:
Hi
I try to send mail (like http://www.php.net/mail) and it works fine.
I define my own headers.
But my question is about "wrong mail delivery".
I use exim4.34.
When I send mail via PHP script, then I see in my logs:
2004-10-26 11:04:36 1CMNFs-00046O-T9 <= www-data
Host_domain U=www-data
P=local S=913
And mail was deliver to specify (To:) header
Mail arrive with correct From: header line.
But problem is present when domain does not exist:
(1) 2004-10-26 10:21:35 1CMMaF-0003Qm-IH <= www-data
Host_domain U=www-data
P=local S=934
(2) 2004-10-26 10:21:35 1CMMaF-0003Qm-IH ** mail
nonexist.tld: Unrouteable
address
(3) 2004-10-26 10:21:35 1CMMaF-0003Qp-Jc <= <> R=1CMMaF-0003Qm-IH U=exim4
P=local S=1692
(4) 2004-10-26 10:21:35 1CMMaF-0003Qp-Jc => /dev/null <www-data
Host_domain>
R=system_aliases T=**bypassed**
So.. If domain was not exist (like (2)), then exim4 generate error message
and send to....www-data
... (like (4)).
Is some way to change it? I never set in any config these address.
I try to set in mail header Return-Patch:, but it seems to no work :(
I use debian version php: 4.3.9
--
I greet
Wieslaw
attached mail follows:
It seems that mysql_escape_string and mysql_real_escape_string do
undesirable things to EOL markers - data from textareas escaped with either
of those functions is entered, and retrieved with, the characters /r/n
instead of a true line break.
This snippet of code demonstrates the problem:
<?php
$wibble = "\"This\" and\n'that'";
echo "Before: $wibble<BR>\n";
$wibble1 = addslashes($wibble);
echo "Addslashes: $wibble1<BR>\n";
$wibble2 = mysql_escape_string($wibble);
echo "Escape: $wibble2<BR>\n";
?>
And the output (from Show source) with line breaks exactly as in the source
Before: "This" and
'that'<BR>
Addslashes: \"This\" and
\'that\'<BR>
Escape: \"This\" and\n\'that\'<BR>
Is this a bug, or am I totally missing something?
Cheers
--
David Robley
Useless Invention: Avalanche prevention goggles.
attached mail follows:
Hello all,
I was wondering if anyone might have suggestions or useful links on
protecting commercial php scripts.
I am about to design a system that would be pretty valuable in a very
niche market and would not wish the script to be passed on to others
once downloaded.
Suggestions, discussion and links would be much appreciated ;-)
--
Nick W
http://www.threadwatch.org
less noise, more signal
attached mail follows:
I found this one very usefull:
http://shiflett.org/php-security.pdf
You should anyway start at:
http://php.net/security/
good luck,
Dirk
Am Dienstag, 26. Oktober 2004 13:44 schrieb Nick Wilson:
> Hello all,
>
> I was wondering if anyone might have suggestions or useful links on
> protecting commercial php scripts.
>
> I am about to design a system that would be pretty valuable in a very
> niche market and would not wish the script to be passed on to others
> once downloaded.
>
> Suggestions, discussion and links would be much appreciated ;-)
attached mail follows:
This one time, at band camp, Nick Wilson <nick
stylesheet.org> wrote:
> Hello all,
>
> I was wondering if anyone might have suggestions or useful links on
> protecting commercial php scripts.
>
> I am about to design a system that would be pretty valuable in a very
> niche market and would not wish the script to be passed on to others
> once downloaded.
If you mean source code needs to be protected, see Zend Encoder
Kevin
---------
"Democracy is two wolves and a lamb voting on what to have for lunch.
Liberty is a well-armed lamb contesting the vote."
attached mail follows:
Nick Wilson wrote:
>Hello all,
>
>I was wondering if anyone might have suggestions or useful links on
>protecting commercial php scripts.
>
>I am about to design a system that would be pretty valuable in a very
>niche market and would not wish the script to be passed on to others
>once downloaded.
>
>Suggestions, discussion and links would be much appreciated ;-)
>
>
There's no way to protect the code from copying. The only way to do that
is not to give no one the code, provide the service based on the code
instead of the code itself. Dont waste your time looking for a solution
for a lost battle. It's just an advice, of course.
attached mail follows:
* and then Francisco M. Marzoa Alonso declared....
> >I was wondering if anyone might have suggestions or useful links on
> >protecting commercial php scripts.
> >
> >I am about to design a system that would be pretty valuable in a very
> >niche market and would not wish the script to be passed on to others
> >once downloaded.
>
> There's no way to protect the code from copying. The only way to do that
> is not to give no one the code, provide the service based on the code
> instead of the code itself. Dont waste your time looking for a solution
> for a lost battle. It's just an advice, of course.
I've had about 5 off list (why so many today?) telling me about zend
encoder so that would seem not to be true.
Thankyou all, i will check out the links, and especially the zend
encoder page ;-)
--
Nick W
attached mail follows:
Nick Wilson wrote:
>* and then Francisco M. Marzoa Alonso declared....
>
>
>>>I was wondering if anyone might have suggestions or useful links on
>>>protecting commercial php scripts.
>>>
>>>I am about to design a system that would be pretty valuable in a very
>>>niche market and would not wish the script to be passed on to others
>>>once downloaded.
>>>
>>>
>>There's no way to protect the code from copying. The only way to do that
>>is not to give no one the code, provide the service based on the code
>>instead of the code itself. Dont waste your time looking for a solution
>>for a lost battle. It's just an advice, of course.
>>
>>
>
>I've had about 5 off list (why so many today?) telling me about zend
>encoder so that would seem not to be true.
>
>
AFAIK Zend Encoder is used to protect from reverse engineering, not from
copying. The only thing it does is to produce a binary program as a
compiler avoiding than the final users can easily view or modify the
source code, but the users can still copy those binary files.
In the real world (tm) there's no effective protection for this kind of
things. All "inviolable protections" for programs has been broken sooner
than later since the first computer program code has been closed to
today, even those based on hardware artifacts (as port-key devices).
>Thankyou all, i will check out the links, and especially the zend
>encoder page ;-)
>
>
>
attached mail follows:
On Mon, 25 Oct 2004 15:33:59 +0300, Ville Mattila
<ville.mattila
pilotmedia.fi> wrote:
> Hi there,
>
> I have a few e-mail templates in a file that should be parsed. A
> template can include also some "module codes" that should be replaced by
> a return value of a certain function. For example, if the template
> include a text "{ProductInfo:1032}", the value 1032 would be passed as
> an argument to a function mdlProductInfo() and the whole string would be
> replaced by the return value of the function.
>
> One possible way is to loop the string like this:
> [...]
> Any other ideas on this?
Yeah, use preg_replace_callback() , it does exactly what you're suggesting.
http://fi.php.net/manual/en/function.preg-replace-callback.php
-robin
attached mail follows:
Hello Greg,
Thanks for reply, I did try
ini_set ( "session.auto_start", "1"); and it set the session.auto_start to
On on my configuration, however the rest of the users on that server had
auto_start off.
This didn't solve the problem, should I try to access .htaccess? I presume
it will affect all the sites on that server, right?
The problem continues, I run the logout script each time the user leaves the
admin site:
<?
$_SESSION['validlogin']="";
$_SESSION['username']="";
$_SESSION['password']="";
unset($_SESSION['validlogin']);
unset($_SESSION['username']);
unset($_SESSION['password']);
session_unset();
print("username=".$_SESSION['username']);
print("password=".$_SESSION['password']);
if(session_id()){
session_destroy();}
?>
And when the user tries to enter the admin panel again and log in, the
following script runs:
<?
...
session_start();
$_SESSION['validlogin']=true;
$_SESSION['username']=$username;
$_SESSION['password']=$password;
?>
However when the user logs out and the first script runs, if that user tries
to log in again with a different account, the session is started, but the
username and password variables take the first user's values, they're not
overriden.
Any idea?
Thanks a lot in advance.
Lizet
-----Original Message-----
From: Greg Donald [mailto:destiney
gmail.com]
Sent: Monday, October 25, 2004 6:18 PM
To: php-general
lists.php.net
Subject: Re: [PHP]
session_start generates a new session_id
On Mon, 25 Oct 2004 15:59:18 -0400, Lizet Peña de Sola <lizet
krosslink.com>
wrote:
> How can I set session_auto_start On, I have a similar problem and I
> think it's because my web hosting has that feature off.
.htaccess
php_flag session.auto_start on
--
Greg Donald
Zend Certified Engineer
http://gdconsultants.com/
http://destiney.com/
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
attached mail follows:
Hi,
Any idea why it is taking the first array as blank and giving me an array
count of 3 instead of 2?
<?
$final="http://something.com/cgi-bin/atx/out.cgi?s=63&c=1&l=gals&u=http://bl
ah.something.com/bs3/index1.htm";
$final2=explode("http://",$final);
$res=count($final2);
echo "<br><br><br>".$res;
print_r($final2);
?>
This is the output that is confusing me:
Array
(
[0] =>
[1] => something.com/cgi-bin/atx/out.cgi?s=63&c=1&l=gals&u=
[2] => blah.something.com/bs3/index1.htm
)
Thanks,
Ryan
attached mail follows:
Hi,
I'm designing a web site and i need to let users upload large files like
10M or more.
I got some solution that are using common file transfert in PHP or using
FTP transfert in PHP.
The problem is that if someone upload a big file he will not have any
indication about the upload status. Is there an easy way to give them a
status indication like file size/percentage uploaded or showing them a
graphical bar.
Can u indicate me if there is any classes or scripts that can help me...
Thanks,
Marc
attached mail follows:
Double Shameless Plus follows:
marc serra wrote:
> Hi,
>
> I'm designing a web site and i need to let users upload large files
> like 10M or more.
You need to tweak your php installation to be able to handle such large
files http://www.radinks.com/upload/config.php will help you do that.
>
> I got some solution that are using common file transfert in PHP or
> using FTP transfert in PHP.
> The problem is that if someone upload a big file he will not have any
> indication about the upload status. Is there an easy way to give them
> a status indication like file size/percentage uploaded or showing them
> a graphical bar.
>
> Can u indicate me if there is any classes or scripts that can help me...
http://www.raditha.com/megaupload/
>
> Thanks,
>
> Marc
>
--
Raditha Dissanayake.
------------------------------------------------------------------------
http://www.radinks.com/sftp/ | http://www.raditha.com/megaupload
Lean and mean Secure FTP applet with | Mega Upload - PHP file uploader
Graphical User Inteface. Just 128 KB | with progress bar.
attached mail follows:
Hi,
I am creating an online timesheet application. Most parts are done, however
I have a problem displaying a list of unapproved timesheets.
Here is my timesheet table:
mysql> DESCRIBE Timesheets;
+-------------------+-------------+------+-----+------------+----------------+
| Field | Type | Null | Key | Default | Extra
|
+-------------------+-------------+------+-----+------------+----------------+
| Timesheet_ID | int(11) | | PRI | NULL | auto_increment
|
| Type | varchar(40) | YES | | NULL |
|
| Project_ID | int(11) | YES | | NULL |
|
| User_ID | int(11) | | | 0 |
|
| Hours | float | | | 0 |
|
| Date | date | | | 0000-00-00 |
|
| Status | varchar(40) | YES | | Open |
|
+-------------------+-------------+------+-----+------------+----------------+
When a timesheet is submitted for approval the manager logs in and approves
/ rejects the timesheets. How can I display a list of unapproved timesheets
grouped by week and user? i.e.
Week 1 - Bill - 45 Hours
Week 1 - Fred - 40 Hours
Week 2 - Bill - 45 Hours
Week 2 - Fred - 40 Hours
Week 2 - Sam - 12 Hours
Thanks for your help.
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]