OSEC

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 23 Nov 2005 18:23:48 -0000 Issue 3811

php-general-digest-helplists.php.net
Date: Wed Nov 23 2005 - 12:23:48 CST


php-general Digest 23 Nov 2005 18:23:48 -0000 Issue 3811

Topics (messages 226328 through 226374):

Is there a way to determine wich browser a visitor uses in php?
        226328 by: twistednetadmin
        226330 by: Joe Wollard
        226333 by: twistednetadmin
        226336 by: David Grant
        226337 by: Frank Armitage
        226345 by: Yaswanth Narvaneni

Re: Is there an alternative for $_FILES['guildimage']['type'] == "image/jpeg"
        226329 by: twistednetadmin
        226369 by: Curt Zirzow

PHP and email
        226331 by: Angelo Zanetti
        226344 by: David Grant
        226353 by: Rory Browne
        226354 by: John Nichel
        226358 by: Angelo Zanetti
        226359 by: Jim Moseby
        226362 by: John Nichel
        226368 by: Petr Smith
        226370 by: John Nichel

mysqli unclonable object
        226332 by: Matt Monaco
        226372 by: Curt Zirzow

Autodeleting news when it has become yesterdays news
        226334 by: twistednetadmin
        226339 by: Mark Rees
        226349 by: Matt Stone
        226352 by: David Grant

Re: Newbie to PHP5
        226335 by: Yoyo

Re: cms type session - how to ?
        226338 by: Gregory Machin

Re: Decision table/business rule parser?
        226340 by: Geoff - Creative Living

Accessing Arrays in HTML
        226341 by: Shaun
        226342 by: Jochem Maas
        226343 by: David Grant
        226351 by: Bernhard Janetzki

Re: Assistance debugging php 5.x.x
        226346 by: eric van blokland
        226347 by: Jay Blanchard
        226348 by: Jay Blanchard
        226350 by: eric van blokland
        226355 by: eric van blokland
        226356 by: Jay Blanchard
        226357 by: eric van blokland
        226360 by: Jay Blanchard
        226361 by: eric van blokland
        226364 by: Jay Blanchard
        226373 by: Jochem Maas
        226374 by: eric van blokland

Re: syntax checking?
        226363 by: Bing Du
        226365 by: Jay Blanchard
        226366 by: Bing Du
        226367 by: Jay Blanchard
        226371 by: John Nichel

Administrivia:

To subscribe to the digest, e-mail:
        php-general-digest-subscribelists.php.net

To unsubscribe from the digest, e-mail:
        php-general-digest-unsubscribelists.php.net

To post to the list, e-mail:
        php-generallists.php.net

----------------------------------------------------------------------

attached mail follows:


Is it possible to use PHP to find out wich type of browser is in use?
Or must is this done by javascript or something else?
I would like to have a little statistic on my page that tells me what
browser is currently moet used.

attached mail follows:


On Nov 23, 2005, at 12:43 AM, twistednetadmin wrote:

> Is it possible to use PHP to find out wich type of browser is in use?
> Or must is this done by javascript or something else?
> I would like to have a little statistic on my page that tells me what
> browser is currently moet used.

Try:

<?php
print $_SERVER['HTTP_USER_AGENT'];
?>

-Joe W

attached mail follows:


Thanks guys. That helps alot!

But this:
<?php
print $_SERVER['HTTP_USER_AGENT'];
?>

Returned this using Mozilla: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US;
rv:1.7.12) Gecko/20050915 Firefox/1.0.7
And this using IE: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)

Does that just mean that it's not completely accurate?

attached mail follows:


$_SERVER['HTTP_USER_AGENT'] contains whatever the browser passes to the
server to identify itself, which may be faked by certain browsers at the
discretion of the user.

The two user agents you provide as an example are both extremely common.

Cheers,

David Grant

twistednetadmin wrote:
> Thanks guys. That helps alot!
>
> But this:
> <?php
> print $_SERVER['HTTP_USER_AGENT'];
> ?>
>
> Returned this using Mozilla: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US;
> rv:1.7.12) Gecko/20050915 Firefox/1.0.7
> And this using IE: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
>
> Does that just mean that it's not completely accurate?
>

attached mail follows:


twistednetadmin wrote:
> Thanks guys. That helps alot!
>
> But this:
> <?php
> print $_SERVER['HTTP_USER_AGENT'];
> ?>
>
> Returned this using Mozilla: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US;
> rv:1.7.12) Gecko/20050915 Firefox/1.0.7
> And this using IE: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
>
> Does that just mean that it's not completely accurate?
>

Try get_browser()
http://php.net/manual/en/function.get-browser.php

HTH
Frank

--
tradeOver | http://www.tradeover.net
....ready to become the King of the World?

attached mail follows:


----Dirty Code----

if((ereg("Nav", getenv("HTTP_USER_AGENT"))) || (ereg("Gold",
getenv("HTTP_USER_AGENT"))) || (ereg("X11",
getenv("HTTP_USER_AGENT"))) || (ereg("Mozilla", getenv(
"HTTP_USER_AGENT"))) || (ereg("Netscape", getenv("HTTP_USER_AGENT")))
AND (!ereg("MSIE", getenv("HTTP_USER_AGENT")))) $c_browser =
"Netscape";
elseif(ereg("MSIE", getenv("HTTP_USER_AGENT"))) $c_browser = "MSIE";
elseif(ereg("Lynx", getenv("HTTP_USER_AGENT"))) $c_browser = "Lynx";
elseif(ereg("Opera", getenv("HTTP_USER_AGENT"))) $c_browser = "Opera";
elseif(ereg("WebTV", getenv("HTTP_USER_AGENT"))) $c_browser = "WebTV";
elseif(ereg("Konqueror", getenv("HTTP_USER_AGENT"))) $c_browser = "Konqueror";
elseif((eregi("bot", getenv("HTTP_USER_AGENT"))) || (ereg("Google",
getenv("HTTP_USER_AGENT"))) || (ereg("Slurp",
getenv("HTTP_USER_AGENT"))) || (ereg("Scooter",
getenv("HTTP_USER_AGENT"))) || (eregi("Spider",
getenv("HTTP_USER_AGENT"))) || (eregi("Infoseek",
getenv("HTTP_USER_AGENT")))) $c_browser = "Bot";
else $c_browser = "Other";

On 11/23/05, Frank Armitage <frank.armitagetradeover.net> wrote:
> twistednetadmin wrote:
> > Thanks guys. That helps alot!
> >
> > But this:
> > <?php
> > print $_SERVER['HTTP_USER_AGENT'];
> > ?>
> >
> > Returned this using Mozilla: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US;
> > rv:1.7.12) Gecko/20050915 Firefox/1.0.7
> > And this using IE: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
> >
> > Does that just mean that it's not completely accurate?
> >
>
> Try get_browser()
> http://php.net/manual/en/function.get-browser.php
>
> HTH
> Frank
>
> --
> tradeOver | http://www.tradeover.net
> ....ready to become the King of the World?
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>

--
"In theory there is no difference between theory and practice.
In practice there is." -- Fortune Cookie

attached mail follows:


This did the trick:

elseif ($_FILES['guildimage']['type'] == "image/pjpeg" or "image/jpeg")

attached mail follows:


On Wed, Nov 23, 2005 at 06:48:25AM +0100, twistednetadmin wrote:
> This did the trick:
>
> elseif ($_FILES['guildimage']['type'] = "image/pjpeg" or "image/jpeg")

Not for reasons you think. The (or "image/jpeg") is going to
evaulate as TRUE, so your expression will always be true. For
example:

  var_dump((bool) "image/jpeg");

You should really consider using the fileinfo extension, or mabey
even http://php.net/getimagesize. The ['type'] information
can't be trusted to be what it says it is.

Curt.
--
cat .signature: No such file or directory

attached mail follows:


Hi

I have a dedicated server in the states.

I need to send about 8000 emails (once off). There pretty small +- 5KB.

so I want to write a php script and run it from the command line in the
background. I was thinking of sending 50 emails then waiting 90 seconds
then sending again.

Or

the same script gets run by cron every 90 seconds and just sends 50 emails.

What do you recommend?

thanks

clive
--

Angelo Zanetti
Z Logic
www.zlogic.co.za
[c] +27 72 441 3355
[t] +27 21 469 1052

attached mail follows:


Hi Angelo,

Why not send them all in one go? If you want to reduce server load, you
should perhaps adjust the 'nice'ness of the script.

If you do the following:

nice --adjustment=19 ./script.php

Your script will run in the background and use only spare resources.

Cheers,

David Grant

Angelo Zanetti wrote:
> Hi
>
> I have a dedicated server in the states.
>
> I need to send about 8000 emails (once off). There pretty small +- 5KB.
>
>
> so I want to write a php script and run it from the command line in the
> background. I was thinking of sending 50 emails then waiting 90 seconds
> then sending again.
>
> Or
>
> the same script gets run by cron every 90 seconds and just sends 50 emails.
>
> What do you recommend?
>
> thanks
>
> clive

attached mail follows:


On 11/23/05, David Grant <davidgrant.org.uk> wrote:
> Hi Angelo,
>
> Why not send them all in one go? If you want to reduce server load, you
> should perhaps adjust the 'nice'ness of the script.

Because niceness would only affect the script itself and not any smtp
servers it comes across along the way.

renicing would make the script nice to the local computer, but sending
8000 in one go, will overload the remote smtp servers which do not
know the local nice value.

>
> If you do the following:
>
> nice --adjustment=19 ./script.php
>
> Your script will run in the background and use only spare resources.
but that will only affect the local machine.

You could adjust the bandwidth using trickle, but to answer the mans
question - it doesn't really matter. Personally I'd perfer the former,
but you have to make sure that your script doesn't time out by setting
some php.ini value(forget the name of it.)

attached mail follows:


Angelo Zanetti wrote:
> Hi
>
> I have a dedicated server in the states.
>
> I need to send about 8000 emails (once off). There pretty small +- 5KB.
>
>
> so I want to write a php script and run it from the command line in the
> background. I was thinking of sending 50 emails then waiting 90 seconds
> then sending again.
>
> Or
>
> the same script gets run by cron every 90 seconds and just sends 50 emails.
>
> What do you recommend?

I would send them one at a time. While the script itself could probably
handle sending 50+ at a time, you have to think about the mail server.
Say you have the 8000 emails in an array....

#!/usr/local/bin/php
<?php

// Stuff to get email addresses
// and create message

foreach ( $emails as $email ) {
        mail ( $email, $subject, $message, $headers );
        sleep ( 10 );
}

?>

YMMV

--
John C. Nichel IV
Programmer/System Admin (ÜberGeek)
Dot Com Holdings of Buffalo
716.856.9675
jnicheldotcomholdingsofbuffalo.com

attached mail follows:


John Nichel wrote:
> Angelo Zanetti wrote:
>
>> Hi
>>
>> I have a dedicated server in the states.
>>
>> I need to send about 8000 emails (once off). There pretty small +- 5KB.
>>
>>
>> so I want to write a php script and run it from the command line in
>> the background. I was thinking of sending 50 emails then waiting 90
>> seconds then sending again.
>>
>> Or
>>
>> the same script gets run by cron every 90 seconds and just sends 50
>> emails.
>>
>> What do you recommend?
>
>
> I would send them one at a time. While the script itself could probably
> handle sending 50+ at a time, you have to think about the mail server.
> Say you have the 8000 emails in an array....
>
> #!/usr/local/bin/php
> <?php
>
> // Stuff to get email addresses
> // and create message
>
> foreach ( $emails as $email ) {
> mail ( $email, $subject, $message, $headers );
> sleep ( 10 );
> }
>
> ?>
>
> YMMV

Thanks to those who have replied so far, yes our main concern is the
smtp server falling over or dying. So to come back to John Nichel's answer:

  John, have you done this personally and I assume the effects were
good?? IE everything ran smoothly?

thanks
Angelo

attached mail follows:


>
> John Nichel wrote:
> > Angelo Zanetti wrote:
> >
> >> Hi
> >>
> >> I have a dedicated server in the states.
> >>
> >> I need to send about 8000 emails (once off). There pretty
> small +- 5KB.
> >>
> >>
> >> so I want to write a php script and run it from the
> command line in
> >> the background. I was thinking of sending 50 emails then
> waiting 90
> >> seconds then sending again.
> >>
> >> Or
> >>
> >> the same script gets run by cron every 90 seconds and just
> sends 50
> >> emails.
> >>
> >> What do you recommend?
> >
> >
> > I would send them one at a time. While the script itself
> could probably
> > handle sending 50+ at a time, you have to think about the
> mail server.
> > Say you have the 8000 emails in an array....
> >
> > #!/usr/local/bin/php
> > <?php
> >
> > // Stuff to get email addresses
> > // and create message
> >
> > foreach ( $emails as $email ) {
> > mail ( $email, $subject, $message, $headers );
> > sleep ( 10 );
> > }
> >
> > ?>
> >
> > YMMV
>
>
> Thanks to those who have replied so far, yes our main concern is the
> smtp server falling over or dying. So to come back to John
> Nichel's answer:
>
> John, have you done this personally and I assume the effects were
> good?? IE everything ran smoothly?

I have done it just as John has described above, though I didn't have 8000
to send. All went well, no hiccups. A couple of things I would mention is
that I seem to remember reading somewhere that the sleep() function on
Windows eats a lot of processor. Not an issue for me since I'm on Linux,
but worth a mention. And the function John suggested above will take over
22 hours to send 8000 emails. Since you say its a one shot deal, its
probably OK.

JM

attached mail follows:


Angelo Zanetti wrote:
>
>
> John Nichel wrote:
>
>> Angelo Zanetti wrote:
>>
>>> Hi
>>>
>>> I have a dedicated server in the states.
>>>
>>> I need to send about 8000 emails (once off). There pretty small +- 5KB.
>>>
>>>
>>> so I want to write a php script and run it from the command line in
>>> the background. I was thinking of sending 50 emails then waiting 90
>>> seconds then sending again.
>>>
>>> Or
>>>
>>> the same script gets run by cron every 90 seconds and just sends 50
>>> emails.
>>>
>>> What do you recommend?
>>
>>
>>
>> I would send them one at a time. While the script itself could
>> probably handle sending 50+ at a time, you have to think about the
>> mail server. Say you have the 8000 emails in an array....
>>
>> #!/usr/local/bin/php
>> <?php
>>
>> // Stuff to get email addresses
>> // and create message
>>
>> foreach ( $emails as $email ) {
>> mail ( $email, $subject, $message, $headers );
>> sleep ( 10 );
>> }
>>
>> ?>
>>
>> YMMV
>
>
>
> Thanks to those who have replied so far, yes our main concern is the
> smtp server falling over or dying. So to come back to John Nichel's answer:
>
> John, have you done this personally and I assume the effects were
> good?? IE everything ran smoothly?

I use some code just like that at least once a month to send out a
newsletter for a site I run, and it works fine. I'm only sending out
appx 1400 emails though, so I can afford to let it sleep for a longer
period of time. You can probably go lower on the sleep time, but it all
depends on your setup.

A better solution, if you have access to it and your mail server
supports it, is to just inject the whole thing...that way you're not
making a SMTP connection each time.

--
John C. Nichel IV
Programmer/System Admin (ÜberGeek)
Dot Com Holdings of Buffalo
716.856.9675
jnicheldotcomholdingsofbuffalo.com

attached mail follows:


>>Thanks to those who have replied so far, yes our main concern is the
>>smtp server falling over or dying. So to come back to John
>>Nichel's answer:
>>
>> John, have you done this personally and I assume the effects were
>>good?? IE everything ran smoothly?
>
>
> I have done it just as John has described above, though I didn't have 8000
> to send. All went well, no hiccups. A couple of things I would mention is
> that I seem to remember reading somewhere that the sleep() function on
> Windows eats a lot of processor. Not an issue for me since I'm on Linux,
> but worth a mention. And the function John suggested above will take over
> 22 hours to send 8000 emails. Since you say its a one shot deal, its
> probably OK.
>

I don't think the long running script with sleep function is the best
approach to this problem. I would recommend writing the whole queue
somewhere (to database) and run script every 5 minutes, load some not
sent yet e-mails (100), send them and write info (it_was_sent tag) back
to database.

It's always better to not have long running script, you never know what
can go wrong and if it fails somewhere or process is killed or machine
rebooted or something happens, you don't know which emails were sent and
which not. And there's no stupidest thing as sending the same company
newsletter twice to the same client.

Petr

attached mail follows:


Petr Smith wrote:
>>> Thanks to those who have replied so far, yes our main concern is the
>>> smtp server falling over or dying. So to come back to John Nichel's
>>> answer:
>>>
>>> John, have you done this personally and I assume the effects were
>>> good?? IE everything ran smoothly?
>>
>>
>>
>> I have done it just as John has described above, though I didn't have
>> 8000
>> to send. All went well, no hiccups. A couple of things I would
>> mention is
>> that I seem to remember reading somewhere that the sleep() function on
>> Windows eats a lot of processor. Not an issue for me since I'm on Linux,
>> but worth a mention. And the function John suggested above will take
>> over
>> 22 hours to send 8000 emails. Since you say its a one shot deal, its
>> probably OK.
>>
>
> I don't think the long running script with sleep function is the best
> approach to this problem. I would recommend writing the whole queue
> somewhere (to database) and run script every 5 minutes, load some not
> sent yet e-mails (100), send them and write info (it_was_sent tag) back
> to database.

What's to stop you from writing this 'sent tag' using the sleep method?
  What I wouldn't like about the every 5 minutes cron method is that the
script will run _every_ five minutes regardless if it's sending mail or
not. Not to mention the fact that even with a small number like a 100,
you could still cause problems with the mail server trying to make that
many SMTP connections in less than a second or two.

> It's always better to not have long running script, you never know what
> can go wrong and if it fails somewhere or process is killed or machine
> rebooted or something happens, you don't know which emails were sent and
> which not. And there's no stupidest thing as sending the same company
> newsletter twice to the same client.

You computer is full of scripts/programs/daemons that have long
runs...some 24/7. That isn't a problem as long as you think ahead.
With proper logging, I can easily pick up where I left off should the
script fail for one reason or another.

--
John C. Nichel IV
Programmer/System Admin (ÜberGeek)
Dot Com Holdings of Buffalo
716.856.9675
jnicheldotcomholdingsofbuffalo.com

attached mail follows:


On a Fedora 4 machine running MySQL 4.1 I am having trouble declaring an
instance of a mysqli extension.

class Data extends mysqli {
    function __construct($host, $user, $password, $db = null)
    {
        parent::__construct($host, $user, $password, $db)
        or printf("There was an error (id: %d) connecting to the database:
           <b>%s</b><br />", mysqli_connect_errno(),
mysqli_connect_error());
    }

    ....

}

$link = new Data("localhost", "user", "password", "db");

This invokes the error "Trying to clone unclonable object of type Data."
However if I create the link with a reference ...
    $link =& new Data(....);
...everything works fine.

This error is interesting because it only occurs on the machine mentioned
above, in a Windows/MySQL 5.0 environment, everything works fine without the
reference.

Thanks in advance!
Matt

attached mail follows:


On Wed, Nov 23, 2005 at 01:13:22AM -0500, Matt Monaco wrote:
> On a Fedora 4 machine running MySQL 4.1 I am having trouble declaring an
> instance of a mysqli extension.
>
> class Data extends mysqli {
> ....
>
> $link = new Data("localhost", "user", "password", "db");
>
> This invokes the error "Trying to clone unclonable object of type Data."
> However if I create the link with a reference ...
> $link =& new Data(....);
> ...everything works fine.

This is because you have the ini option:

  zend.ze1_compatibility_mode = On

Curt.
--
cat .signature: No such file or directory

attached mail follows:


I have a news-script on a webpage. Or an eventscript you might call it.
This lists up events thats gonna happen on a given day. ie concerts and
sportsevents.
To get this deleted without having to log on to the adminpage when the event
is over would have been a great relief.

1. Is it just as simple as writing a query that executes and removes news
with yesterdays date?

2. And how should I set it to execute if so?

Just at the beginning of the page with the news is my thought. So that it
checks for the eventdate and erases the overdued ones before it collects the
news.

3. Is there any pitfalls I should be aware of?

I use Mysql for my db of course.

Could someone give me a start on this?

attached mail follows:


I have a news-script on a webpage. Or an eventscript you might call it.
This lists up events thats gonna happen on a given day. ie concerts and
sportsevents.
To get this deleted without having to log on to the adminpage when the event
is over would have been a great relief.

1. Is it just as simple as writing a query that executes and removes news
with yesterdays date?
-------------------------------------------------------------------------
Even simpler, why don't you keep the data instead of deleting it and write a
query for the homepage which only displays events whcih occur in the future?

2. And how should I set it to execute if so?

If you do want to execute a regular PHP script to delete data for some
reason, look into cron (*nix) or task scheduler (windows)

attached mail follows:


----- Original Message -----
From: "twistednetadmin" <twistednetadmingmail.com>
To: <php-generallists.php.net>
Sent: Wednesday, November 23, 2005 7:02 AM
Subject: [PHP] Autodeleting news when it has become yesterdays news

>I have a news-script on a webpage. Or an eventscript you might call it.
>This lists up events thats gonna happen on a given day. ie concerts and
>sportsevents.
>To get this deleted without having to log on to the adminpage when the
event
>s over would have been a great relief.

>1. Is it just as simple as writing a query that executes and removes news
>with yesterdays date?

Yup,

DELETE FROM your_table WHERE date_column = curdate() -1;

Cheers
Matt

attached mail follows:


twistednetadmin wrote:
> Just at the beginning of the page with the news is my thought. So that it
> checks for the eventdate and erases the overdued ones before it collects the
> news.

If you wanted to do that, I'd recommend adding some sort of probability
factor into it, so not all scripts have to run the function.

e.g. 1% chance of cleaning up the database.

<?php
if (rand(1,100) > 99) {
        deleteItems();
}
?>

Cheers,

David Grant

attached mail follows:


Danny wrote:
> Hi there,
> I´m familiar with PHP syntax, but I´ve been reading some sample scripts, in
> PHP5 and i´ve seen some "strange" things, like diferent ways to read a
> collection of rows, magic functions, wrapers, and operators like "::" and
> "->". I know that all is the manual, but before that anyone nows, a website
> or a simple tutorial or explained samples, in order that the transition from
> PHP4 and PHP5 were easiest as possible.
> Thanks
>
> --
> dpc
>

http://www.faqts.com/knowledge_base/view.phtml/aid/22154/fid/1150

attached mail follows:


Sorry for the lack of clarity on the single page... eg :
http://127.0.0.1/index.php?
where the index.php holds the logic of what is displayed and by passing vars
back to it's self determins what is next displayed .. hope that helps..

On 11/22/05, Richard Lynch <ceol-i-e.com> wrote:
>
> On Tue, November 22, 2005 3:24 am, Gregory Machin wrote:
> > I'm looking for a how to , on creating sessions similar to those used
> > my
> > cms's
> > that ref only a single page..
>
> http://php.net/session_start
>
> ???
>
> I don't understand what you mean by "that ref only a single page" and
> suspect not many others understand that either.
>
> --
> Like Music?
> http://l-i-e.com/artists.htm
>
>
>

--
Gregory Machin
greglinuxpro.co.za
gregory.machingmail.com
www.linuxpro.co.za
www.exponent.co.za
Web Hosting Solutions
Scalable Linux Solutions
www.iberry.info (support and admin)

+27 72 524 8096

attached mail follows:


Hi folks

> > >As an alternative, I worked briefly on a native PHP Petri-net workflow
> > >engine with a guy called Tony Marston before we parted ways. He has
> > >written it up here:
> > >
> > >http://www.tonymarston.net/php-mysql/workflow.html

> I wrote to Tony a couple of months ago and he said that his workflow code might
> be available someday, but wasn't available currently. His ideas are published
> on his website, but only code snippets.
>

The code is Tony's, so I can't help, I'm afraid. I think you'll find
it's itertwined with his development framework, so I'm not sure how
useful it would be as a standalone in any case.

--------------------
Geoff Caplan
Creative Living

attached mail follows:


Hi,

I am trying to create a form on my page. The idea is that for each project
people can select whether they are allocated for scheduling, non_scheduling
or both. Here is an example of my form:

<tr>
   <td><input name="project[44][Scheduling]" type="checkbox"
value="44"></td>
   <td><input name="project[44][Non_Scheduling]" type="checkbox"
value="44"><td>
   <td>Project 1</td>
  </tr>
    <tr>
   <td><input name="project[25][Scheduling]" type="checkbox" value="25"><td>
   <td><input name="project[25][Non_Scheduling]" type="checkbox"
value="25"></td>
   <td>Project 2</td>
</tr>

I am trying to access the arrays in the HTML as follows:

if (is_array($_POST['project'])){
   $fields='';
   $values='';
   foreach ($_POST['project'] as $project_id => $value) {
    $fields[] = $project_id;
    $values[] = $value;
   }
   $i = 0;
   $num_elements = count($fields);
   while($i < $num_elements){
    if(($values[$i]) != 0){
     echo '<br />$i = '.$i.'<br />';
     print_r($fields);
     $query = ("INSERT INTO Allocations (
           User_ID,
           Project_ID,
           Scheduling,
           Non_Scheduling
          ) VALUES (
           '".$user_id."',
           '".$fields[$i]."',
           '".$fields[$i][0]."',
           '".$fields[$i][1]."',
          )");
     echo $query.'<br />';
    }
    $i++;
   }
  }

However I can't access the 'Scheduling / 'Non_Scheduling' part. Can anyone
see where I am going wrong here?

Thanks for your advice

attached mail follows:


Shaun wrote:
> Hi,
>
> I am trying to create a form on my page. The idea is that for each project
> people can select whether they are allocated for scheduling, non_scheduling
> or both. Here is an example of my form:

take the time to work out what it is that is being POSTed:

echo '<pre>';
var_dump( $_POST );
echo '</pre>';

>

...

> <tr>
> <td><input name="project[25][Scheduling]" type="checkbox" value="25"><td>
> <td><input name="project[25][Non_Scheduling]" type="checkbox"

...

> '".$fields[$i]."',
> '".$fields[$i][0]."',
> '".$fields[$i][1]."',

the 2 lines above should probably something like:

        '".$fields[$i]['Scheduling']."',
        '".$fields[$i]['Non_Scheduling']."',

> )");

...

attached mail follows:


Shaun,

This:

$values[] = $value;

Does this:

$values[] = array('Scheduling' => '44');

Therefore, it must be accessed like this:

$values[$i]['Scheduling'] // gives '44'

But not this:

$values[$i][0] // index doesn't exist.

Cheers,

David Grant

Shaun wrote:
> Hi,
>
> I am trying to create a form on my page. The idea is that for each project
> people can select whether they are allocated for scheduling, non_scheduling
> or both. Here is an example of my form:
>
> <tr>
> <td><input name="project[44][Scheduling]" type="checkbox"
> value="44"></td>
> <td><input name="project[44][Non_Scheduling]" type="checkbox"
> value="44"><td>
> <td>Project 1</td>
> </tr>
> <tr>
> <td><input name="project[25][Scheduling]" type="checkbox" value="25"><td>
> <td><input name="project[25][Non_Scheduling]" type="checkbox"
> value="25"></td>
> <td>Project 2</td>
> </tr>
>
> I am trying to access the arrays in the HTML as follows:
>
> if (is_array($_POST['project'])){
> $fields='';
> $values='';
> foreach ($_POST['project'] as $project_id => $value) {
> $fields[] = $project_id;
> $values[] = $value;
> }
> $i = 0;
> $num_elements = count($fields);
> while($i < $num_elements){
> if(($values[$i]) != 0){
> echo '<br />$i = '.$i.'<br />';
> print_r($fields);
> $query = ("INSERT INTO Allocations (
> User_ID,
> Project_ID,
> Scheduling,
> Non_Scheduling
> ) VALUES (
> '".$user_id."',
> '".$fields[$i]."',
> '".$fields[$i][0]."',
> '".$fields[$i][1]."',
> )");
> echo $query.'<br />';
> }
> $i++;
> }
> }
>
> However I can't access the 'Scheduling / 'Non_Scheduling' part. Can anyone
> see where I am going wrong here?
>
> Thanks for your advice
>

attached mail follows:


On Wednesday 23 November 2005 13:07, Shaun wrote:
> Hi,
>
> I am trying to create a form on my page. The idea is that for each project
> people can select whether they are allocated for scheduling, non_scheduling
> or both. Here is an example of my form:
>
[...]
>
> However I can't access the 'Scheduling / 'Non_Scheduling' part. Can anyone
> see where I am going wrong here?
>
> Thanks for your advice
"Scheduling" or "Non_Scheduling" is an array key.

Greets Boerni

attached mail follows:


"Curt Zirzow" <czirzowgmail.com> wrote in message *
news:<20051123052910.GE11507bagend.shire*<news:<20051123052910.GE11507bagend.shire>
>...

> On Tue, Nov 22, 2005 at 07:41:10PM +0100, Eric wrote:

> > I would like to have some assistance in debugging php. It's about a

> > bug in php not a script of mine.

>

> First off there is a big difference between 5.0.x and 5.1.x as well as

> 5.0.1 and 5.0.5, what version are we talking about?

I tried it with different versions of php5 even a recent CVS of 5.1.x, the
code runs fine on all versions of 5 except for the specific anomaly

>

> >

> > I can't post a bug report as I do not "exactly" know why my code is

> > suffering from a php bug. It's related to a "very" complex

> > objects-model

> ...

>

> If it isn't your code is there ever a known state at which it did

> work?

>

Yes, by just escaping a single line, the "surfaced error" doesn't occur
anymore, however, as of the simplicity of the specific line of code, I
believe the compiler is already choking without that line while errors will
begin to surface with the line included.

> ...

> > where objects, cross-referenced, wake up from a session. (note,

> > these are cross-references, not circular, all circular (parent <->

> > child) references are unset before the objects are serialized)

>

> This almost sounds like some douglas adams, story.. I'd wake up dizzy

> with all those circular but not circular references.

Circular references:

Object A has Object B, while Object B has a "parent" attribute which is
referenced back to its parent: Object A

Cross-referenced:

Object A has a child Object X, Object B also has a child, it's a reference
to the very same Object X

The dizzy making thing here? Object B is also a child of Object A, which
appears to be the causing this problem: php still hates references....

>

> Curt.

> --

> cat .signature: No such file or directory

Thank you for your reply! Think you can help me?

Kind regards,

Eric van Blokland

attached mail follows:


[snip]
I understand your point, but I can't offer you the project as it's company
property. Again, I will try to make a reproduce/example script.
Meanwhile, try to believe my assumption that the PHP compiler is broken
because:
[/snip]

Have you thought about sending your description of the problem to the DEV
list? Again, they are going to ask for code snippets, error messages, items
from the log. Code snippets or explicit examples of the code, while in the
pursuit of solutions, would probably not violate any company
ownership/rights issue.

[snip]
Still, to rule out any mistakes of mine, I tried the code at a
ZendPlatform enabled server and the bug seems to disappear. Not really,
though, because a value seem to leak to someplace else and even worse: while
ZendPlatform seems te work perfectly (I can debug everything, even this
specific piece of code) httpd segfaults when debugging this code with the
"evil" parameter
[/snip]

Again, without seeing the specific piece of code, as a starting point, it
would be hard for us to speculate.

[snip]
- Back to the error message: even the error message is corrupted, the
compiler doesn't seem to know what it's doing (what would explain de httpd
segfault with ZendPlatform: PHP does something it's not meant to do)
[/snip]

In what way is the error message corrupted?

At this point we can only speak in hypotheticals. Assuming your code is
correct the compiler is broken somehow. Without knowing what the code is we
cannot begin to know how the compiler is broken.

attached mail follows:


[snip]
Object A has Object B, while Object B has a "parent" attribute which is
referenced back to its parent: Object A

Cross-referenced:

Object A has a child Object X, Object B also has a child, it's a reference
to the very same Object X

The dizzy making thing here? Object B is also a child of Object A, which
appears to be the causing this problem: php still hates references....
[/snip]

I'd love to see the UML for this.

attached mail follows:


---------- Forwarded message ----------
From: eric van blokland <ericvanbloklandgmail.com>
Date: Nov 23, 2005 2:44 PM
Subject: Re: [PHP] Assistance debugging php 5.x.x
To: Jay Blanchard <jay.blanchardthermon.com>

On 11/23/05, Jay Blanchard <jay.blanchardthermon.com> wrote:
>
> [snip]
> I understand your point, but I can't offer you the project as it's company
> property. Again, I will try to make a reproduce/example script.
> Meanwhile, try to believe my assumption that the PHP compiler is broken
> because:
> [/snip]
>
> Have you thought about sending your description of the problem to the DEV
> list? Again, they are going to ask for code snippets, error messages,
> items
> from the log. Code snippets or explicit examples of the code, while in the
> pursuit of solutions, would probably not violate any company
> ownership/rights issue.
>
> [snip]
> Still, to rule out any mistakes of mine, I tried the code at a
> ZendPlatform enabled server and the bug seems to disappear. Not really,
> though, because a value seem to leak to someplace else and even worse:
> while
> ZendPlatform seems te work perfectly (I can debug everything, even this
> specific piece of code) httpd segfaults when debugging this code with the
> "evil" parameter
> [/snip]
>
> Again, without seeing the specific piece of code, as a starting point, it
> would be hard for us to speculate.
>
> [snip]
> - Back to the error message: even the error message is corrupted, the
> compiler doesn't seem to know what it's doing (what would explain de httpd
> segfault with ZendPlatform: PHP does something it's not meant to do)
> [/snip]
>
> In what way is the error message corrupted?
>
> At this point we can only speak in hypotheticals. Assuming your code is
> correct the compiler is broken somehow. Without knowing what the code is
> we
> cannot begin to know how the compiler is broken.
>
> Screwed up error message:

   Cannot use a scalar value as an array In function [fs_sso->edit()] In
file [/include/libraries/footsteps.php] on line [834] fs_sso->edit()

  [/structure_edit.php] on line [62]

This error is correct for all but, that the error occurs in fuction
"fs_register_property()" which is called by object "fs_sso" from function
"edit()"

I will now start stripping the code of the affected objects for an example
script, I hope (but doubt) the error will still occur in de example script

attached mail follows:


I've got some example code on what I'm doing, however, as I expected, the
error is gone!

All involved objects were taken from the project, but not related code has
been stripped-off. (Which means that some of that "at code level not related
code" is in fact "related at compiler level". I still suspect references.
Anyway, the code is still a bit rough, I'm going to do some further testing.
The code is useless for debugging, but might give you an idea on what I'm
doing, if you like i could make it available for download.

On 11/23/05, Jay Blanchard <jay.blanchardthermon.com> wrote:
>
> [snip]
> I understand your point, but I can't offer you the project as it's company
> property. Again, I will try to make a reproduce/example script.
> Meanwhile, try to believe my assumption that the PHP compiler is broken
> because:
> [/snip]
>
> Have you thought about sending your description of the problem to the DEV
> list? Again, they are going to ask for code snippets, error messages,
> items
> from the log. Code snippets or explicit examples of the code, while in the
> pursuit of solutions, would probably not violate any company
> ownership/rights issue.
>
> [snip]
> Still, to rule out any mistakes of mine, I tried the code at a
> ZendPlatform enabled server and the bug seems to disappear. Not really,
> though, because a value seem to leak to someplace else and even worse:
> while
> ZendPlatform seems te work perfectly (I can debug everything, even this
> specific piece of code) httpd segfaults when debugging this code with the
> "evil" parameter
> [/snip]
>
> Again, without seeing the specific piece of code, as a starting point, it
> would be hard for us to speculate.
>
> [snip]
> - Back to the error message: even the error message is corrupted, the
> compiler doesn't seem to know what it's doing (what would explain de httpd
> segfault with ZendPlatform: PHP does something it's not meant to do)
> [/snip]
>
> In what way is the error message corrupted?
>
> At this point we can only speak in hypotheticals. Assuming your code is
> correct the compiler is broken somehow. Without knowing what the code is
> we
> cannot begin to know how the compiler is broken.
>
>

attached mail follows:


[snip]
I've got some example code on what I'm doing, however, as I expected, the
error is gone!

All involved objects were taken from the project, but not related code has
been stripped-off. (Which means that some of that "at code level not related
code" is in fact "related at compiler level". I still suspect references.
Anyway, the code is still a bit rough, I'm going to do some further testing.
The code is useless for debugging, but might give you an idea on what I'm
doing, if you like i could make it available for download.
[/snip]

How long is the code example? Could it not be pasted here or pastebin?

attached mail follows:


Example is still quite large, all database functionality and other arbitrary
code has been stripped. Over 50.000 lines of code have been reduced to a few
hundred. Example can be downloaded here:

http://213.10.83.232/example.tar

Explanation of example:

- When you load index.php, the involved objects will be loaded into your
session.
- If you use the "reset" link, the objects will be reinitialized.
- Continue just reloads index.php, objects will just wakeup from the session
- You can change the title of the fs_ssl object, via the text input
- Underneath the submit button, the current title of fs_ssl is displayed
- The error that occurs in the real project:
On changing (submitting) the title of ssl, the sso->properties array gets
overwritten, this does not happen with this example

Further, just explore the code to see what I'm doing exactly, if you need
more comment on what i'm doing, I will add comments to the example source
code.

On 11/23/05, Jay Blanchard <jay.blanchardthermon.com> wrote:
>
> [snip]
> I've got some example code on what I'm doing, however, as I expected, the
> error is gone!
>
> All involved objects were taken from the project, but not related code has
> been stripped-off. (Which means that some of that "at code level not
> related
> code" is in fact "related at compiler level". I still suspect references.
> Anyway, the code is still a bit rough, I'm going to do some further
> testing.
> The code is useless for debugging, but might give you an idea on what I'm
> doing, if you like i could make it available for download.
> [/snip]
>
> How long is the code example? Could it not be pasted here or pastebin?
>
>

attached mail follows:


[snip]
Example is still quite large, all database functionality and other arbitrary
code has been stripped. Over 50.000 lines of code have been reduced to a few
hundred. Example can be downloaded here:

http://213.10.83.232/example.tar

Explanation of example:

- When you load index.php, the involved objects will be loaded into your
session.
- If you use the "reset" link, the objects will be reinitialized.
- Continue just reloads index.php, objects will just wakeup from the session
- You can change the title of the fs_ssl object, via the text input
- Underneath the submit button, the current title of fs_ssl is displayed
- The error that occurs in the real project:
On changing (submitting) the title of ssl, the sso->properties array gets
overwritten, this does not happen with this example

Further, just explore the code to see what I'm doing exactly, if you need
more comment on what i'm doing, I will add comments to the example source
code.
[/snip]

As soon as I have several hours of time to spare *cough* I will explore the
code *cough*.

1. If the error does not occur with this example the situation you
originally described becomes non-reproducable. If we cannot reproduce the
error we have no chance of offering a solution. As you add things back into
this example code, when does it break?
2. The folks on this list are here to help, but I don't think that anyone
has time to sort through 100's of lines of code looking for what may be a
potential error, without wanting to charge a consulting fee.
3. You have no comments in your example code? Brilliant!

I know that I am being sarcastic here.

I (and others) really would like to help, but I need you to help me (us) do
that. I understand that the code is sensitive (company copyright/work
product issues) and lengthy. I strongly suspect that the application may be
overly complex (based on a quick read through the code) and that you could
accomplish that which you are trying to do without being so obsfuscate. I
also think that you should send the information you have given us thus far
to the PHP-DEV list (http://www.php.net/mailinglists) and see what response
that they have to offer given your assertion that the compiler is broken. It
is more likely that someone lurking that list will be aware of problems like
this where the compiler is concerned.

Happy Thanksgiving!

attached mail follows:


1. That's what I've warned about from the beginning, that outside the
complete project environment the error probably wouldn't occur.
2. I understand this completely, naturally. I would like to thank everybody
spending time in reading my posts, particulary you, Jay. But that's why I
would like to give you, or anyone else for that matter, an attended tour
through the project.
3. I'm beeing pushed to present results, writting comments in my code would
take almost twice the time writing the code itself. And in most cases, it's
faster just to read my code instead of reading the comment. And finally, you
wouldn't be able to read my comments, as my comments would be in dutch.

Happy Thanksgiving back at you!

On 11/23/05, Jay Blanchard <jay.blanchardthermon.com> wrote:
>
> [snip]
> Example is still quite large, all database functionality and other
> arbitrary
> code has been stripped. Over 50.000 lines of code have been reduced to a
> few
> hundred. Example can be downloaded here:
>
> http://213.10.83.232/example.tar
>
> Explanation of example:
>
> - When you load index.php, the involved objects will be loaded into your
> session.
> - If you use the "reset" link, the objects will be reinitialized.
> - Continue just reloads index.php, objects will just wakeup from the
> session
> - You can change the title of the fs_ssl object, via the text input
> - Underneath the submit button, the current title of fs_ssl is displayed
> - The error that occurs in the real project:
> On changing (submitting) the title of ssl, the sso->properties array gets
> overwritten, this does not happen with this example
>
> Further, just explore the code to see what I'm doing exactly, if you need
> more comment on what i'm doing, I will add comments to the example source
> code.
> [/snip]
>
> As soon as I have several hours of time to spare *cough* I will explore
> the
> code *cough*.
>
> 1. If the error does not occur with this example the situation you
> originally described becomes non-reproducable. If we cannot reproduce the
> error we have no chance of offering a solution. As you add things back
> into
> this example code, when does it break?
> 2. The folks on this list are here to help, but I don't think that anyone
> has time to sort through 100's of lines of code looking for what may be a
> potential error, without wanting to charge a consulting fee.
> 3. You have no comments in your example code? Brilliant!
>
> I know that I am being sarcastic here.
>
> I (and others) really would like to help, but I need you to help me (us)
> do
> that. I understand that the code is sensitive (company copyright/work
> product issues) and lengthy. I strongly suspect that the application may
> be
> overly complex (based on a quick read through the code) and that you could
> accomplish that which you are trying to do without being so obsfuscate. I
> also think that you should send the information you have given us thus far
> to the PHP-DEV list (http://www.php.net/mailinglists) and see what
> response
> that they have to offer given your assertion that the compiler is broken.
> It
> is more likely that someone lurking that list will be aware of problems
> like
> this where the compiler is concerned.
>
> Happy Thanksgiving!
>
>
>

attached mail follows:


[snip]
1. That's what I've warned about from the beginning, that outside the
complete project environment the error probably wouldn't occur.
2. I understand this completely, naturally. I would like to thank everybody
spending time in reading my posts, particulary you, Jay. But that's why I
would like to give you, or anyone else for that matter, an attended tour
through the project.
3. I'm beeing pushed to present results, writting comments in my code would
take almost twice the time writing the code itself. And in most cases, it's
faster just to read my code instead of reading the comment. And finally, you
wouldn't be able to read my comments, as my comments would be in dutch.

Happy Thanksgiving back at you!
[/snip]

1. Again, when adding code back nto your example when does it break? That
would give us a better clue.
2. I really do wish that there was more time available for me to help you.
If I find some spare time in quantities great enough it would have to be
sometime next week....maybe.
3. Always comment your code. It is not an option. I hear this excuse all of
the time. It is only the fool who does not comment his code, especially code
so complex. Commenting may have helped you more precisely locate the
problem. And how do you know that I do not read Dutch, have a person on my
staff that speaks and writes fluent Dutch, or have access to google
Translate? :) We have an office in Pijnacker!

attached mail follows:


Eric,

everything you have written suggests to me that the problem is in your code
(that may be being caused by changes to the engine, which have either removed
an ability due to the fact that it was dangerous [e.g. reference issues], or
abilities that have been changed because they were deemed wrong)

regardless of whether that is the case or not you are best off by assuming that
the problem is in your code:

1. if its your code you have the power to fix it, which is a better situation
to be in than have to rely on third parties to fix an underlying texchnology.

2. it avoids 'blaming' core developers until such time as you can _prove_ the
engine has a bug.

eric van blokland wrote:
> 1. That's what I've warned about from the beginning, that outside the
> complete project environment the error probably wouldn't occur.
> 2. I understand this completely, naturally. I would like to thank everybody
> spending time in reading my posts, particulary you, Jay. But that's why I
> would like to give you, or anyone else for that matter, an attended tour
> through the project.
> 3. I'm beeing pushed to present results, writting comments in my code would
> take almost twice the time writing the code itself. And in most cases, it's
> faster just to read my code instead of reading the comment. And finally, you

the last 3 lines are bullshit on all counts (apart from the implied deadline
pressure), do yourself a favor and starting commenting! :-)

> wouldn't be able to read my comments, as my comments would be in dutch.

I'd be happy to translate for you Jay ;-)

having said that there is no reason to write comments in dutch if your
english is as good as it is, but comments in any language are always better than
none. (assuming the comments actually have some baring on the actual code -
i.e. comments like '// Bill Gates has lots of money' don't really help!)

attached mail follows:


LOL Jochem

Well I sure can't argue with that! (serious)

But with or without comments, the code is broken or breaks something. I've
tracked down the weird bevahiour a little further. Now I would sure like, if
one of you has about 30 minutes time to look at my problem with me, using
VNC and Skype
If you got the spare time I would really appreciate it and as I've been
unable to create some actual reproduce code, the only thing that's left is
looking at the real thing. I'm still sure it's related to the way I use
references, wheter it is or isn't a bug in the compiler, it sure would be
nice to know this particular DON'T about references.

Please let me know

On 11/23/05, Jochem Maas <jochemiamjochem.com> wrote:
>
> Eric,
>
> everything you have written suggests to me that the problem is in your
> code
> (that may be being caused by changes to the engine, which have either
> removed
> an ability due to the fact that it was dangerous [e.g. reference issues],
> or
> abilities that have been changed because they were deemed wrong)
>
> regardless of whether that is the case or not you are best off by assuming
> that
> the problem is in your code:
>
> 1. if its your code you have the power to fix it, which is a better
> situation
> to be in than have to rely on third parties to fix an underlying
> texchnology.
>
> 2. it avoids 'blaming' core developers until such time as you can _prove_
> the
> engine has a bug.
>
> eric van blokland wrote:
> > 1. That's what I've warned about from the beginning, that outside the
> > complete project environment the error probably wouldn't occur.
> > 2. I understand this completely, naturally. I would like to thank
> everybody
> > spending time in reading my posts, particulary you, Jay. But that's why
> I
> > would like to give you, or anyone else for that matter, an attended tour
> > through the project.
> > 3. I'm beeing pushed to present results, writting comments in my code
> would
> > take almost twice the time writing the code itself. And in most cases,
> it's
> > faster just to read my code instead of reading the comment. And finally,
> you
>
> the last 3 lines are bullshit on all counts (apart from the implied
> deadline
> pressure), do yourself a favor and starting commenting! :-)
>
> > wouldn't be able to read my comments, as my comments would be in dutch.
>
> I'd be happy to translate for you Jay ;-)
>
> having said that there is no reason to write comments in dutch if your
> english is as good as it is, but comments in any language are always
> better than
> none. (assuming the comments actually have some baring on the actual code
> -
> i.e. comments like '// Bill Gates has lots of money' don't really help!)
>

attached mail follows:


Bing Du wrote:

> Jay Blanchard wrote:
>
>> [snip]
>> How should PHP syntax be checked before execution? Anything similar
>> to what option -c does in Perl?
>>
>> % perl -c test.pl
>> [/snip]
>>
>> from the command line
>>
>> /usr/local/bin/php -i myScript.php
>> [/snip]
>>
>> Ooops, sorry, should be an ell "l"
>>
>> /usr/local/bin/php -l myScript.php
>
>
> Too late :). I've already tried -i. Boy, that returns tons of
> information . My machine was choked.
>
> Bing

Even with error_reporting set to E_ALL in php.ini, I still get 'Errors
parsing file.php' using the php command with the -l option. Anyway to
see more than that?

Thanks,

Bing

attached mail follows:


[snip]
Even with error_reporting set to E_ALL in php.ini, I still get 'Errors
parsing file.php' using the php command with the -l option. Anyway to
see more than that?
[/snip]

Here are some command line options http://us2.php.net/features.commandline

You could run it in a browser to get line numbers and more precise error
messages

attached mail follows:


Jay Blanchard wrote:

> [snip]
> Even with error_reporting set to E_ALL in php.ini, I still get 'Errors
> parsing file.php' using the php command with the -l option. Anyway to
> see more than that?
> [/snip]
>
> Here are some command line options http://us2.php.net/features.commandline
>
> You could run it in a browser to get line numbers and more precise error
> messages

Just found out this web based PHP syntax checking tool
http://www.meandeviation.com/tutorials/learnphp/php-syntax-check/, it
helped me find the problem. Pretty nice.

Bing

attached mail follows:


[snip]
Just found out this web based PHP syntax checking tool
http://www.meandeviation.com/tutorials/learnphp/php-syntax-check/, it
helped me find the problem. Pretty nice.
[/snip]

Nice find. Tried it and it works pretty well.

attached mail follows:


Jay Blanchard wrote:
> [snip]
> Just found out this web based PHP syntax checking tool
> http://www.meandeviation.com/tutorials/learnphp/php-syntax-check/, it
> helped me find the problem. Pretty nice.
> [/snip]
>
> Nice find. Tried it and it works pretty well.
>

I get this when I try to check a php script on my machine...

"Sorry! bad URL :-("

Guess it only works if you're on a Windows client. ;)

--
John C. Nichel IV
Programmer/System Admin (ÜberGeek)
Dot Com Holdings of Buffalo
716.856.9675
jnicheldotcomholdingsofbuffalo.com