php-general Digest 12 Mar 2012 13:38:09 -0000 Issue 7724

2012-03-12 Thread php-general-digest-help

php-general Digest 12 Mar 2012 13:38:09 - Issue 7724

Topics (messages 316989 through 316992):

Re: Have little enough hair as it is ...
316989 by: Matijn Woudt
316990 by: Lester Caine
316991 by: Simon Schick
316992 by: Lester Caine

Administrivia:

To subscribe to the digest, e-mail:
php-general-digest-subscr...@lists.php.net

To unsubscribe from the digest, e-mail:
php-general-digest-unsubscr...@lists.php.net

To post to the list, e-mail:
php-gene...@lists.php.net


--
---BeginMessage---
On Mon, Mar 12, 2012 at 12:11 AM, Simon Schick
simonsimc...@googlemail.com wrote:
 2012/3/11 Lester Caine les...@lsces.co.uk:
 ( Been down London over night ;) ) ... and was not awake enough to change
 email address ...


 http://piwik.medw.org.uk/phpinfo.php has http://piwik.medw.org.uk/ working
 fine...

 http://piwik.rainbowdigitalmedia.org.uk/phpinfo.php is just giving seg
 faults on http://piwik.rainbowdigitalmedia.org.uk/ but
 http://rainbowdigitalmedia.org.uk/ is working perfectly.

 The piwik analytics is based on Zend, and I've not been able to get it
 working on either of the two new machines, while all of my other stuff is
 working fine. I started with Apache2.4.1 and PHP5.4.0 and moved back to
 what
 should be the same versions as the working machines but without success.


 Simon Schick wrote:

 Can you give us some more information?

 I've been working on this for some days and tried various combinations of
 Apache and PHP, but my starting point was Ap2.4.1 with PHP5.4.0 and I've now
 worked my way back through versions to what should be the same as setup as
 is working on piwik.medw.org.uk but I have yet to get piwik to run on either
 new machine!

 How is php called in your apache-configuration? (f)cgi, module or somehow
 else?
 You said that the configuration should be the same ... can you
 double-check that? Reload the services etc ...

 Always used module and I see no reason to change
 I've enabled and disable just about everything, and the installer tells me
 the set-up is fine.

 What about the logs? There must be more info in there ...

 THAT is what is pissing me off. ZEND does not seem to log anything usable
 and I have yet to establish the best way of debugging it. The rest of my
 stuff simply worked, gave the expected new nagging and allowed me to track
 and tidy them. EVERY configuration of ZEND based piwik just gives ...
 [notice] child pid 10345 exit signal Segmentation fault (11)
 With eaccelerator switched on and tracking, I can see files being cached,
 but have yet to work out what the next file would be, and to be honest, I'm
 not convinced it runs the same way every time, but that is probably just the
 order of parallel paths being run?

 --
 Lester Caine - G8HFL
 -
 Contact - http://lsces.co.uk/wiki/?page=contact
 L.S.Caine Electronic Services - http://lsces.co.uk
 EnquirySolve - http://enquirysolve.com/
 Model Engineers Digital Workshop - http://medw.co.uk//
 Firebird - http://www.firebirdsql.org/index.php

 --
 PHP General Mailing List (http://www.php.net/)
 To unsubscribe, visit: http://www.php.net/unsub.php


 Hi, Lester

 You're talking about some kind of installer ... What exactly is it?
 And what exactly do you mean with ZEND does not seem to log ...?
 Apache, PHP or something that's controlling both?
 And the more interesting question as you're only talking about ZEND
 ... in which log-file have you found the notice? I guess it's the
 log-file of Apache ...
 I guess you have already tried to set Apache and PHP to the lowest
 possible error-level ...

 I searched up the inet and came across totally different solutions ...

 Things that I found you can try:
 * Replace the index.php ... Some people reported that this error was
 caused by an endless-loop in their php-script

I have experienced a segfault once with mod_rewrite and some endless
loop in a .htaccess file. So you might want to check that too.

- Matijn
---End Message---
---BeginMessage---

Matijn Woudt wrote:

  Things that I found you can try:
  * Replace the index.php ... Some people reported that this error was
  caused by an endless-loop in their php-script

I have experienced a segfault once with mod_rewrite and some endless
loop in a .htaccess file. So you might want to check that too.


Thanks for the hints guys, but it was the wrong direction ...
piwik is an analytics package ... google analytics with steroids ;)
But the code base is a bit difficult to work with when one does not use 
frameworks like Zend.


The starting point was a segfault in PHP which needs to be fixed, but we 
normally manage to avoid hitting it by managing things better. The updates I'd 
added to the Firebird driver in Zend were missing some checks which kicked it 
out at which point ... NOTHING gets logged.


In 12 years I've managed to avoid having to install xdebug as we have all the 

Re: [PHP] Have little enough hair as it is ...

2012-03-12 Thread Simon Schick
2012/3/12 Lester Caine les...@lsces.co.uk:
 More irritating is
 'Notice: Array to string conversion' which are coming up all over the place.
 I can understand what the problem is ... but trying to remove the notices is
 more challenging ...

 $secondsGap[] = array($gap[0] * 60, $gap[1] * 60);
 if( isset($secondsGap[1]) ) {
        $gapName = $secondsGap[0].to.$secondsGap[1];
 } else {
        $gapName = $secondsGap[0];
 }
 $secondsGap[] is two numbers, which are used to create the name string, so
 what is the 'official' way of making this work without generating warnings?


Hi, Lester

I suggest that all done with this variable before is not of interest ...
Assuming this, I'd say the following:

 $secondsGap[] = array($gap[0] * 60, $gap[1] * 60);
Implicit initializing of an array that has the following structure:
array( array(int, int) );

 if( isset($secondsGap[1]) ) {
Trying to get the second element .. which will never happen if you
haven't added an element before the snipped you pasted here.

$gapName = $secondsGap[0].to.$secondsGap[1];
 } else {
$gapName = $secondsGap[0];
 }
[some-code]

I'm quite unsure what you want to do here. If you'd update the first
line as following it would always trigger the first condition:
$secondsGap = array($gap[0] * 60, $gap[1] * 60);

Bye
Simon

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] Have little enough hair as it is ...

2012-03-12 Thread Lester Caine

Simon Schick wrote:

I suggest that all done with this variable before is not of interest ...
Assuming this, I'd say the following:


  $secondsGap[] = array($gap[0] * 60, $gap[1] * 60);

Implicit initializing of an array that has the following structure:
array( array(int, int) );


OK $gap comes from the loop
foreach(self::$timeGap as $gap)
self::$timeGap is a list of pairs of numbers.


  if( isset($secondsGap[1]) ) {

Trying to get the second element .. which will never happen if you
haven't added an element before the snipped you pasted here.


  $gapName = $secondsGap[0].to.$secondsGap[1];
  } else {
  $gapName = $secondsGap[0];
  }

[some-code]

I'm quite unsure what you want to do here. If you'd update the first
line as following it would always trigger the first condition:
$secondsGap = array($gap[0] * 60, $gap[1] * 60);
What this code is doing perfectly in PHP5.3 is generating the text string to 
display for each time period listed in the array of pairs of numbers ( some with 
a 'blank' second number and what the code returns is a string of the format 
'(number1)to(number2)' or simply '(number1)' - something fairly standard in PHP? 
But the nanny message says it need to be re-writen, the question is 'How?' :(


--
Lester Caine - G8HFL
-
Contact - http://lsces.co.uk/wiki/?page=contact
L.S.Caine Electronic Services - http://lsces.co.uk
EnquirySolve - http://enquirysolve.com/
Model Engineers Digital Workshop - http://medw.co.uk//
Firebird - http://www.firebirdsql.org/index.php

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] questions about $_SERVER

2012-03-12 Thread Daniel Brown
On Sun, Mar 11, 2012 at 14:16, Tedd Sperling tedd.sperl...@gmail.com wrote:

 As to placing an additional requirement (i.e., being predefined) on the 
 definition as to what constitutes a SuperGlobal is outside my understanding. 
 As such, I must defer to the PHP Manual, namely:

 http://php.net/manual/en/language.variables.superglobals.php

 This document clearly states that $GLOBALS is a SuperGlobal -- what am I not 
 understanding here?

You are understanding it correctly, the only thing that's missing
is the population.  The variables are defined (set), but not all are
populated.  $GLOBALS is a superglobal, you're right; globals set from
userland scripts are not superglobals, but do wind up in the $GLOBALS
array.  Thus, all superglobals are globals, but not all globals are
superglobals.

-- 
/Daniel P. Brown
Network Infrastructure Manager
http://www.php.net/

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] Have little enough hair as it is ...

2012-03-12 Thread Jim Lucas

On 03/12/2012 06:38 AM, Lester Caine wrote:

Simon Schick wrote:

I suggest that all done with this variable before is not of interest ...
Assuming this, I'd say the following:




Right here you are creating two strings within an array within an array.

My guess is you will want to replace the $secondsGap[] with $secondsGap


 $secondsGap[] = array($gap[0] * 60, $gap[1] * 60);

Implicit initializing of an array that has the following structure:
array( array(int, int) );


OK $gap comes from the loop
foreach(self::$timeGap as $gap)
self::$timeGap is a list of pairs of numbers.


 if( isset($secondsGap[1]) ) {

Trying to get the second element .. which will never happen if you
haven't added an element before the snipped you pasted here.


 $gapName = $secondsGap[0].to.$secondsGap[1];
 } else {
 $gapName = $secondsGap[0];
 }

[some-code]

I'm quite unsure what you want to do here. If you'd update the first
line as following it would always trigger the first condition:
$secondsGap = array($gap[0] * 60, $gap[1] * 60);

What this code is doing perfectly in PHP5.3 is generating the text
string to display for each time period listed in the array of pairs of
numbers ( some with a 'blank' second number and what the code returns is
a string of the format '(number1)to(number2)' or simply '(number1)' -
something fairly standard in PHP? But the nanny message says it need to
be re-writen, the question is 'How?' :(




--
Jim Lucas

http://www.cmsws.com/
http://www.cmsws.com/examples/
http://www.bendsource.com/

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] Function mktime() documentation question

2012-03-12 Thread Tedd Sperling
On Mar 11, 2012, at 3:10 PM, Matijn Woudt wrote:
 On Sun, Mar 11, 2012 at 7:33 PM, Tedd Sperling tedd.sperl...@gmail.com 
 wrote:
 Actually, this works for me:
 
 $days_in_month = date('t', mktime(0, 0, 0, $next_month, 0, $year));
 
 But again, I don't see why I have to use next month to find the number of 
 days in this month.
 
 That's because you're requesting day 0 of some month, which refers to
 the last day in the previous month.
 Try: $days_in_month = date('t', mktime(0, 0, 0, $next_month, 1, $year));
 
 - Matijn

I got that.

Beating the same dead horse again, I think day 0 of this month should contain 
the days in this month, but I am in the minority on this.

Cheers,

tedd

_
tedd.sperl...@gmail.com
http://sperling.com

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] Function mktime() documentation question

2012-03-12 Thread Ashley Sheridan
On Mon, 2012-03-12 at 15:53 -0400, Tedd Sperling wrote:

 On Mar 11, 2012, at 3:10 PM, Matijn Woudt wrote:
  On Sun, Mar 11, 2012 at 7:33 PM, Tedd Sperling tedd.sperl...@gmail.com 
  wrote:
  Actually, this works for me:
  
  $days_in_month = date('t', mktime(0, 0, 0, $next_month, 0, $year));
  
  But again, I don't see why I have to use next month to find the number 
  of days in this month.
  
  That's because you're requesting day 0 of some month, which refers to
  the last day in the previous month.
  Try: $days_in_month = date('t', mktime(0, 0, 0, $next_month, 1, $year));
  
  - Matijn
 
 I got that.
 
 Beating the same dead horse again, I think day 0 of this month should contain 
 the days in this month, but I am in the minority on this.
 
 Cheers,
 
 tedd
 
 _
 tedd.sperl...@gmail.com
 http://sperling.com
 


I think a lot of the confusion is that we're so used to array indexes
beginning at 0 that we tend to assume other things should start there
too. I found this confusing when I first came across the date stuff in
PHP. Now I'm used to it, it makes sense.

-- 
Thanks,
Ash
http://www.ashleysheridan.co.uk




Re: [PHP] questions about $_SERVER

2012-03-12 Thread Tedd Sperling
On Mar 11, 2012, at 3:04 PM, Tim Streater wrote:
 
 In the following, $x is a global but not a super-global (AFAIK).
 
 
 ?php
 
 function echox ()
 {
 
 global $x;
 
 echo $x;
 
 }
 
 $x = Hello world\n;
 
 echox ();
 
 ?
 
 --
 Cheers  --  Tim


Tim:

I read somewhere that using:

global $x;

is not recommended. Whereas, it is recommended to use:

$x = $GLOBALS['x'];
echo $x;

In any event, what I found interesting is:

print_r($GLOBALS)

if will list all the variables (plus more) in your script. Thus, all variables 
in your main script are also included in the $GLOBALS array.

Cheers,

tedd

_
tedd.sperl...@gmail.com
http://sperling.com





--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] questions about $_SERVER

2012-03-12 Thread Jim Giner
The purpose of the global statement within a function is to let PHP know 
that the usage of a var name INSIDE that function is not meant to create a 
NEW variable, but instead, to reference the other (global) variable being 
used (and perhaps already defined) in your main script.

Basically it works like this:

You can:
- create vars in the main script usable in that script's main body outside 
of any functions

- create vars to be used entirely and only within any functions in your 
script;

-reference vars from the main script within a specific function by 
referencing them with a global $xxx,$yyy,$zzz statement at the top of your 
function;

And Finally You Can:

- create $_SESSION['xxx'] var that can be seen anywhere in your 
application(s) during the life of the current session.  Close the browser or 
fail to do a session_start() in a script and you can't see them, but who 
would do that?

I'm sure someone will have something else to add, but I think this is all 
the knowledge one needs to accomplish most php programming. 



-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] questions about $_SERVER

2012-03-12 Thread Tim Streater
On 12 Mar 2012 at 20:07, Tedd Sperling tedd.sperl...@gmail.com wrote: 

 Tim:

 I read somewhere that using:

 global $x;

 is not recommended. Whereas, it is recommended to use:

 $x = $GLOBALS['x'];
 echo $x;

Tedd,

That may well be, although as I write I can't recollect having seen that 
anywhere; so I don't use that form. However I have been caught by something 
like the following:

?php

function yes ($a)
 {
 global $x;
 if  ($a)  $x = yes\n;
 }

first (true);

echo $x;

?


but I haven't looked into $GLOBALS enough to know whether using them instead 
would have saved my bacon.

--
Cheers  --  Tim

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Re: [PHP] Have little enough hair as it is ...

2012-03-12 Thread Lester Caine

Jim Lucas wrote:


Right here you are creating two strings within an array within an array.

My guess is you will want to replace the $secondsGap[] with $secondsGap


 $secondsGap[] = array($gap[0] * 60, $gap[1] * 60);


$secondsGap[] is right ... it's building an array of results ...
problem turned out to be another 'automatic merge' of the master code base with 
my local copy which had actually screwed up. At times this DVCS stuff is less 
than ideal when working on parallel ports :(


--
Lester Caine - G8HFL
-
Contact - http://lsces.co.uk/wiki/?page=contact
L.S.Caine Electronic Services - http://lsces.co.uk
EnquirySolve - http://enquirysolve.com/
Model Engineers Digital Workshop - http://medw.co.uk//
Firebird - http://www.firebirdsql.org/index.php

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php