Re: [PHP] Persistent connections

2013-10-26 Thread Stuart Dallas
On 25 Oct 2013, at 12:51, Nibin V M nibi...@gmail.com wrote:

 Thank you for the quick response Stuart...one more doubt..at 
 http://php.net/manual/en/features.persistent-connections.php they states
 
 =
 This means that when the same client makes a second request to the server, it 
 may be served by a different child process than the first time. When opening 
 a persistent connection, every following page requesting SQL services can 
 reuse the same established connection to the SQL server
 =
 
 Is the persistent connection pool is re-used between apache child processes ? 

No, connections are not shared between PHP processes. Nothing is shared between 
PHP processes.

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/


 On Fri, Oct 25, 2013 at 3:54 PM, Stuart Dallas stu...@3ft9.com wrote:
 On 25 Oct 2013, at 11:10, Nibin V M nibi...@gmail.com wrote:
 
  I have been reading docs and many are telling that persistent connections
  are kept open indefinitely. But I found in PHP docs that it will not close
  after script execution like requesting  a page; so should it close after
  the request is over?
 
  So when exactly a persistent connection should close?
 
  Please advice.
 
 A persistent connection is closed when the PHP process ends, or it gets 
 disconnected by the server-side or due to a network error. Attempting to 
 explicitly close a persistent connection will do nothing without complaining.
 
 -Stuart
 
 --
 Stuart Dallas
 3ft9 Ltd
 http://3ft9.com/
 
 
 
 -- 
 Regards
 
 Nibin.
 
 http://TechsWare.in


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



Re: [PHP] framework or not

2013-10-26 Thread Stuart Dallas
On 25 Oct 2013, at 15:40, Robert Cummings rob...@interjinn.com wrote:

 On 13-10-25 10:17 AM, Stuart Dallas wrote:
 On 25 Oct 2013, at 15:01, Robert Cummings rob...@interjinn.com wrote:
 
 On 13-10-24 09:41 PM, Larry Garfield wrote:
 On 10/23/2013 08:51 AM, Jay Blanchard wrote:
 [snip] a bitter rant[/snip]
 
 Dang Larry - bad night?
 
 That wasn't a bitter rant.  You haven't seen me bitter. :-)  That was
 tough love to the OP.  I don't see a reason to pussyfoot around the
 original question, which is one that comes up about once a month.  The
 answer is always the same: How much is your time worth?
 
 Basic math...
 
Life: finite
Time: infinite
 
finite / infinite = 0
 
 *sniffle*
 
 Who's valuation of your time actually matters? Yours, and yours alone.
 
 Therefore:
 
 Life: n years
 Time I can benefit from my life: n years
 
 n years / n years = 1
 
 *hoorah*
 
 Your time is the most precious commodity you have.
 
 Whether you use a framework or not you will (hopefully) reuse code between 
 projects. If you choose to make part of that reused code one of the many 
 frameworks that exist, you need only do one thing to ensure it continues to 
 be worth using: how much of your time do you spend battling against the 
 restrictions of the framework? If that's sufficiently low then using that 
 framework is probably a good thing. If a significant portion of your time is 
 spent battling the framework it's time to make a change.
 
 Also remember that the only person who can truthfully judge whether you're 
 wasting time is you, unless you earn money by selling your time to someone 
 else in which case they have some right to decide what constitutes a waste 
 of the time for which they're paying. I found the experience of writing my 
 own framework to be hugely beneficial to my future productivity, but I might 
 have struggled to justify spending the extra time it took to my employer at 
 the time.
 
 You stripped away the context of my response. By removing the evil grin you 
 made it look like I was serious. You should be a reporter ;)

Who says I'm not! :)

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/

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



Re: [PHP] framework or not

2013-10-25 Thread Stuart Dallas
On 25 Oct 2013, at 15:01, Robert Cummings rob...@interjinn.com wrote:

 On 13-10-24 09:41 PM, Larry Garfield wrote:
 On 10/23/2013 08:51 AM, Jay Blanchard wrote:
 [snip] a bitter rant[/snip]
 
 Dang Larry - bad night?
 
 That wasn't a bitter rant.  You haven't seen me bitter. :-)  That was
 tough love to the OP.  I don't see a reason to pussyfoot around the
 original question, which is one that comes up about once a month.  The
 answer is always the same: How much is your time worth?
 
 Basic math...
 
Life: finite
Time: infinite
 
finite / infinite = 0
 
 *sniffle*

Who's valuation of your time actually matters? Yours, and yours alone.

Therefore:

Life: n years
Time I can benefit from my life: n years

n years / n years = 1

*hoorah*

Your time is the most precious commodity you have.

Whether you use a framework or not you will (hopefully) reuse code between 
projects. If you choose to make part of that reused code one of the many 
frameworks that exist, you need only do one thing to ensure it continues to be 
worth using: how much of your time do you spend battling against the 
restrictions of the framework? If that's sufficiently low then using that 
framework is probably a good thing. If a significant portion of your time is 
spent battling the framework it's time to make a change.

Also remember that the only person who can truthfully judge whether you're 
wasting time is you, unless you earn money by selling your time to someone 
else in which case they have some right to decide what constitutes a waste of 
the time for which they're paying. I found the experience of writing my own 
framework to be hugely beneficial to my future productivity, but I might have 
struggled to justify spending the extra time it took to my employer at the time.

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/

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



Re: [PHP] Persistent connections

2013-10-25 Thread Stuart Dallas
On 25 Oct 2013, at 11:10, Nibin V M nibi...@gmail.com wrote:

 I have been reading docs and many are telling that persistent connections
 are kept open indefinitely. But I found in PHP docs that it will not close
 after script execution like requesting  a page; so should it close after
 the request is over?
 
 So when exactly a persistent connection should close?
 
 Please advice.

A persistent connection is closed when the PHP process ends, or it gets 
disconnected by the server-side or due to a network error. Attempting to 
explicitly close a persistent connection will do nothing without complaining.

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/

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



Re: [PHP] Trying to understand what is happening in this code

2013-10-11 Thread Stuart Dallas
On 11 Oct 2013, at 16:20, Nathan Grey grey...@gmail.com wrote:

 Stuart, Jose - Thanks for your quick response. Are you saying that the 
 processor echos all the html tags it sees. Is it doing something like this to 
 the script:
 
 echo body
 echo h1The first twenty Fibonacci numbers:/h1
 echo ul
  ?php
$first = 0;
$second = 1;
for ($i = 0; $i  20; $i++) {
 ?
 echo  li?php echo $first + $second ?/li
   ?php
 $temp = $first + $second;
 $first = $second;
 $second = $temp;
 
   } ?
 echo  /ul
 echo  /body
 
 Or is it just the line in question that is being echoed?

I'm not sure exactly what it gets compiled to, but I also don't see why it 
matters. All that matters is that content outside of PHP tags will simply get 
echo'd.

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/

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



Re: [PHP] PHP Fatal error: Call to undefined function ()

2013-10-07 Thread Stuart Dallas
On 7 Oct 2013, at 14:24, Michael Alaimo malaimo...@gmail.com wrote:

 We have a server that gets a large number of requests each month.
 
 After a period of time I began to see this error in our error logs this
 weekend.
 
 PHP Fatal error:  Call to undefined function ()
 
 It does not reference a function, so I found it odd.  It did give a line to
 a function with array_merge on it.
 
 Has anyone seen this in the apache error logs?  We are using PHP 5.3.3.

Show us the line, and a few lines around it.

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/

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



Re: [PHP] PHP Fatal error: Call to undefined function ()

2013-10-07 Thread Stuart Dallas
On 7 Oct 2013, at 14:34, Michael Alaimo malaimo...@gmail.com wrote:

 On Mon, Oct 7, 2013 at 9:29 AM, Stuart Dallas stu...@3ft9.com wrote:
 On 7 Oct 2013, at 14:24, Michael Alaimo malaimo...@gmail.com wrote:
 
  We have a server that gets a large number of requests each month.
 
  After a period of time I began to see this error in our error logs this
  weekend.
 
  PHP Fatal error:  Call to undefined function ()
 
  It does not reference a function, so I found it odd.  It did give a line to
  a function with array_merge on it.
 
  Has anyone seen this in the apache error logs?  We are using PHP 5.3.3.
 
 Show us the line, and a few lines around it.
 public static function getInfo($params = array())
 {
 $results = array();
 
 $url = 'http://google.com';
 
 
  $props = array
 (
'key'= Yii::app()-params['param1'],
 's'= Yii::app()-params['param2']
 );
 
 if (!empty($params))
 {
 $props = array_merge($props, $params);
 
 $url = $url . http_build_query($props, '', '/');
 
 
 It may be possible that params has unsafe data in it.  The previous dev did 
 not validate the data passed in via get.
 
 The code populating params looks like:
 
 $params = array
 (
 'd' = $_GET['d'],
 );
 
 $job = Job::getInfo($params);

My best guess is that either $props or $params contain a function reference or 
similar construct. Examine their contents with var_dump.

As a check you could expand out the effect of array_merge and see if you still 
get the same with a PHP implementation.

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/

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



Re: [PHP] Algorithm Help

2013-10-02 Thread Stuart Dallas
On 1 Oct 2013, at 19:51, Floyd Resler fres...@adex-intl.com wrote:

 Here's my task: A group of kids is going to be staying with different host 
 families throughout the next 8 months.  The number of kids staying with a 
 host family can range from 2 to 10.  When deciding which kids should stay 
 together at a host family, the idea is for the system to put together kids 
 who have stayed with each other the least on past weekends.  So, if a host 
 family can keep 5 kids, then the group of 5 kids who have stayed together the 
 least will be chosen.
 
 I can't think of an easy, quick way to accomplish this.  I've tried various 
 approaches that have resulted in a lot of coding and being very slow.  My 
 idea was to give each group of kids a score and the lowest score is the group 
 that is selected.  However, this approach wound of iterating through several 
 arrays several times which was really slow.  Does anyone have any ideas on 
 this puzzle?

Sounds like a job for a directed graph data structure. I wish I had time to 
knock up a solution but I don't right now. This article should help you get 
started: 
http://www.codediesel.com/algorithms/building-a-graph-data-structure-in-php/

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] Apache

2013-09-23 Thread Stuart Dallas
On 23 Sep 2013, at 11:37, Domain nikha.org m...@nikha.org wrote:

 Tamara Temple am Montag, 23. September 2013 - 06:49:
 
 GoDaddy's default plesk-generated configuration for FastCGI-served PHP
 files only looked to see if the file contained .php somewhere on it's
 path - i.e. it would happily execute 'malicilous.php.txt' as php code,
 even something ridiculous like 'malware.phpnoreallyiwantthistorun'.
 
 
 Yes, looks stupid.  
 But my service prodider wrote me this, I quote:
 ---QUOTE---
 This is because Apache offers features like language negotiation based
 on extensions, too -- the final extension doesn't always just specify
 the handler; it can specify other things. Apache can automatically pick
 a German-language script from these, for example:
 
 file.php.de
 file.php.en
 
 Whether this is a good idea or not is debatable. It's possible to set
 things up in a different way (using FilesMatch instead of AddHandler)
 to
 avoid this particular problem, but that breaks other things, so there's
 no perfect solution.
 
 More generally, the real problem is that scripts are looking at the
 final extension of uploaded files to decide whether they're safe or
 not,
 which is dangerous. They're simply assuming that a .gif file can't
 run
 a PHP interpreter, for example... which is usually true, but certainly
 not always: some people run all their files through PHP.
 ---END QUOTE---

This is somewhat daft. Yes, Apache offers this feature, but you don't need to 
configure it to work will all extensions. I'd be curious to know what their 
issue is with using FilesMatch, since that provides a way to disable this 
behaviour. And, honestly, who would have a PHP file per language? I think it's 
perfectly reasonable to not allow that, because duplicating PHP code across 
many files is an incredible stupid way to support multiple languages.

Some people run all their files through PHP - true, but that doesn't mean 
they should, or that you, as a responsible web host, should be endorsing it.

 The problem is the weak PHP upload mechanism! 
 As workaround my service provider tries to block suspicious filenames,
 but the PHP developpers themself should work on this severe security
 problem.

PHP developers should absolutely validate all content coming in from users in 
every possible way, but I would be highly dubious about trusting a host who 
gives the reason above for what I consider a lax and insecure Apache 
configuration. It's like saying they sliced your arm off with their chainsaw 
because it's made for cutting things, attempting to dodge all responsibility 
for having swung it in your direction!

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] Apache's PHP handlers

2013-09-19 Thread Stuart Dallas
On 19 Sep 2013, at 13:58, Design in Motion Webdesign i...@designinmotion.be 
wrote:

 it has nothing to do with .php in the file name. What the hacker did, was 
 uploading a .gif file with some malicious php code included to your 
 webserver. Then he called the .gif file from his own website by using a php 
 script containing some code like 
 require_once('http://www.yoursite.com/images/yourimage.gif'). At that moment 
 the php code inside the .gif file has been executed.

In possibly the most pointless way ever! In that scenario the script would be 
executed on the hacker's server (assuming Apache is set up correctly), so 
there's no point in her managing to put it on your server at all!

Arno: If you can request that file using a web browser, and it gets executed as 
PHP on your server then there is an error in the Apache configuration.

Easy test: create a file in a text editor containing some PHP (?php phpinfo(); 
? would be enough) and upload it to the www root of your site and name it 
test.pgif. Then hit http://www.yourdomain.com/test.pgif in your browser. If you 
see the PHP code or an error then you're fine. If you see PHP's info page then 
you need to change web host as quickly as possible. I don't care if they fix it 
- the fact their server was configured to do this by default is enough for me 
to never trust them again.

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] Apache's PHP handlers

2013-09-19 Thread Stuart Dallas
On 19 Sep 2013, at 14:39, Aziz Saleh azizsa...@gmail.com wrote:

 The best way to handle file uploads is to:
 
 1) Store the filename somewhere in the DB, rename the file to a random string 
 without extension and store the mapping in the DB as well.
 2) When sending the file, set the header content to the filename and output 
 the content of the file via PHP (ex: by readfile).
 
 Aziz
 
 This way even if the file is PHP code, it will be of no issue to you.

What you describe it highly inefficient, clunky, and unnecessary. You've 
managed to get PHP and a database involved in serving a static file, for no 
reason other than to avoid fixing the web server configuration.

A misconfigured web server should be fixed, not worked around.

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] high traffic websites

2013-09-18 Thread Stuart Dallas
On 18 Sep 2013, at 12:50, Negin Nickparsa nickpa...@gmail.com wrote:

 to be more in details,suppose the website has 80,000 users and each page
 takes 200 ms to be rendered and you have thousand hits in a second so we
 want to reduce the time of rendering. is there any way to reduce the
 rendering time?
 
 other thing is suppose they want to upload files simultaneously and the
 videos are in the website not on another server like YouTube and so streams
 are really consuming the bandwidth.
 
 Also,It is troublesome to get backups,when getting backups you have problem
 of lock backing up with bulk of data.

Your question is impossible to answer efficiently without profiling. You need 
to know what PHP is doing in those 200ms before you can target your 
optimisations for maximum effect.

I use xdebug to produce trace files. From there I can see exactly what is 
taking the most amount of time, and then I can look in to how to make that 
thing faster. When I'm certain there is no faster way to do what it's doing I 
move on to the next biggest thing.

Of course there are generic things you should do such as adding an opcode cache 
and looking at your server setup, but targeted optimisation is far better than 
trying generic stuff.

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/

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



Re: [PHP] PHP CLI setting cooked terminal mode

2013-09-11 Thread Stuart Dallas
On 11 Sep 2013, at 17:37, Alain Williams a...@phcomp.co.uk wrote:

 Hi,
 
 I am running a PHP script at the command line and piping the output through 
 less:
 
./myScript | less
 
 Since less is an interactive program it puts the terminal into 'raw' mode so
 that it can read characters one at a time. However, when I do the above I find
 that the commands that I type to less are echoed back to me and not acted on
 until I type RETURN. This is not as it should be.
 
 The sript is not doing anything really clever, just looking at a few files and
 printing out directory contents, time stamps, ...
 
 If I run the script under strace I see:
 
ioctl(0, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo 
 ...}) = 0
ioctl(0, SNDCTL_TMR_STOP or TCSETSW, {B38400 opost isig icanon echo ...}) 
 = 0
 
 
 I can get it to not do this by connect stdout to /dev/null:
 
./myScript  /dev/null | less
 
 another way of getting it to work is (and this shows that it really is PHP 
 that
 is messing the tty modes):
 
./myScript  /dev/null | (sleep 10;less)
 
 However: PHP should not set the terminal to cooked mode in the first place
 
 Is there any way in which I can get PHP to not do this ?
 
 TIA
 
 I am running PHP 5.3.3 on CentOS 6.

Make sure output buffering is off by putting this at the top of your script:

while(ob_end_clean());

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/

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



Re: [PHP] refernces, arrays, and why does it take up so much memory? [SOLVED]

2013-09-04 Thread Stuart Dallas
On 4 Sep 2013, at 00:03, Daevid Vincent dae...@daevid.com wrote:

 -Original Message-
 From: Stuart Dallas [mailto:stu...@3ft9.com]
 Sent: Tuesday, September 03, 2013 2:37 PM
 To: Daevid Vincent
 Cc: php-general@lists.php.net; 'Jim Giner'
 Subject: Re: [PHP] refernces, arrays, and why does it take up so much
 memory? [SOLVED]
 
 On 3 Sep 2013, at 21:47, Daevid Vincent dae...@daevid.com wrote:
 We get over 30,000 hits per second, and even with lots of caching, 216MB
 vs 70-96MB is significant and the speed hit is only about 1.5 seconds more
 per page.
 
 Here are three distinctly different example pages that exercise
 different parts of the code path:
 
 PAGE RENDERED IN 7.0466279983521 SECONDS
 MEMORY USED @START: 262,144 - @END: 26,738,688 = 26,476,544 BYTES
 MEMORY PEAK USAGE: 69,730,304 BYTES
 
 PAGE RENDERED IN 6.9327299594879 SECONDS
 MEMORY USED @START: 262,144 - @END: 53,739,520 = 53,477,376 BYTES
 MEMORY PEAK USAGE: 79,167,488 BYTES
 
 PAGE RENDERED IN 7.55816092 SECONDS
 MEMORY USED @START: 262,144 - @END: 50,855,936 = 50,593,792 BYTES
 MEMORY PEAK USAGE: 96,206,848 BYTES
 
 Knowing nothing about your application I'm obviously not in a strong
 position to comment, but seven seconds to generate a page would be
 unacceptable to me and any of my clients.
 
 It's a one time hit and the rest is served from a cache for the next 24
 hours which serves very very fast after that initial rendering. It's just we
 have so many thousands of pages that this becomes an issue -- especially
 when webcrawlers hit us and thread-out so MANY pages are trying to render at
 the same time, especially the ones towards the end where they haven't been
 cached since rarely do real people get that far... Like you know, pages 900,
 901, 902, etc... with new content each day, page 1 today is now page 2
 tomorrow, so it's a constant thorn.

At 30k requests per second, is it a one-time hit, or is it 225k hit because in 
the 7 seconds it takes the cache to be built you have that many clients also 
building the cache? Or is this already an offline script, in which case how 
long it takes is largely irrelevant.

What is your caching strategy? What is cached? At what granularity? When is the 
cache updated (i.e. on demand or on change)? Why does a page need to retrieve 
so much data? Can that data not be summarised/processed ahead of demand?

 I'll put money on it being
 possible to cut that time by changing your caching strategy. The memory
 usage is also ridiculous - does a single page really display that amount
 of
 data? Granted, there are some applications that cannot be optimised beyond
 a
 certain point, but those numbers make me sad!
 
 HA! It was over 400MB per page a few weeks ago. I keep whittling it down,
 but I think I'm hitting the lower limit at this point.

That is nuts! What's the website?

 It's a tough balance between database hits, cache hits, network traffic
 (memcached), disk i/o, page speed, load balancing, etc. All we can do is try
 things and tweak and see what works and what brings the servers to their
 binary knees.


Without knowing anything about the site there's little I can say, but if you 
want to take this off-list I'm happy to talk about it. I have a fair amount of 
experience with high-traffic web applications so it's possible I might be able 
to help.

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/

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



Re: [PHP] refernces, arrays, and why does it take up so much memory?

2013-09-03 Thread Stuart Dallas
On 3 Sep 2013, at 02:30, Daevid Vincent dae...@daevid.com wrote:

 I'm confused on how a reference works I think.
 
 I have a DB result set in an array I'm looping over. All I simply want to do
 is make the array key the id of the result set row.
 
 This is the basic gist of it:
 
   private function _normalize_result_set()
   {
  foreach($this-tmp_results as $k = $v)
  {
 $id = $v['id'];
 $new_tmp_results[$id] = $v; //2013-08-29 [dv] using a
 reference here cuts the memory usage in half!

You are assigning a reference to $v. In the next iteration of the loop, $v will 
be pointing at the next item in the array, as will the reference you're storing 
here. With this code I'd expect $new_tmp_results to be an array where the keys 
(i.e. the IDs) are correct, but the data in each item matches the data in the 
last item from the original array, which appears to be what you describe.

 unset($this-tmp_results[$k]);

Doing this for every loop is likely very inefficient. I don't know how the 
inner workings of PHP process something like this, but I wouldn't be surprised 
if it's allocating a new chunk of memory for a version of the array without 
this element. You may find it better to not unset anything until the loop has 
finished, at which point you can just unset($this-tmp_results).

 
 /*
 if ($i++ % 1000 == 0)
 {
   gc_enable(); // Enable Garbage Collector
   var_dump(gc_enabled()); // true
   var_dump(gc_collect_cycles()); // # of elements
 cleaned up
   gc_disable(); // Disable Garbage Collector
 }
 */
  }
  $this-tmp_results = $new_tmp_results;
  //var_dump($this-tmp_results); exit;
  unset($new_tmp_results);
   }


Try this:

private function _normalize_result_set()
{
  // Initialise the temporary variable.
  $new_tmp_results = array();

  // Loop around just the keys in the array.
  foreach (array_keys($this-tmp_results) as $k)
  {
// Store the item in the temporary array with the ID as the key.
// Note no pointless variable for the ID, and no use of !
$new_tmp_results[$this-tmp_results[$k]['id']] = $this-tmp_results[$k];
  }

  // Assign the temporary variable to the original variable.
  $this-tmp_results = $new_tmp_results;
}

I'd appreciate it if you could plug this in and see what your memory usage 
reports say. In most cases, trying to control the garbage collection through 
the use of references is the worst way to go about optimising your code. In my 
code above I'm relying on PHPs copy-on-write feature where data is only 
duplicated when assigned if it changes. No unsets, just using scope to mark a 
variable as able to be cleaned up.

Where is this result set coming from? You'd save yourself a lot of memory/time 
by putting the data in to this format when you read it from the source. For 
example, if reading it from MySQL, $this-tmp_results[$row['id']] = $row when 
looping around the result set.

Also, is there any reason why you need to process this full set of data in one 
go? Can you not break it up in to smaller pieces that won't put as much strain 
on resources?

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/

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



Re: [PHP] refernces, arrays, and why does it take up so much memory? [SOLVED]

2013-09-03 Thread Stuart Dallas
 display that amount of data? Granted, there are some 
applications that cannot be optimised beyond a certain point, but those numbers 
make me sad!

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/

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



Re: [PHP] Basic Auth

2013-08-28 Thread Stuart Dallas
On 27 Aug 2013, at 18:45, Jim Giner jim.gi...@albanyhandball.com wrote:

 From your latest missive I gleaned that I needed to have a script on my server

One last time: YOU DON'T NEED TO CHANGE ANYTHING ON THE SERVER-SIDE!

Ok, I see that you've decided to use another method, which is great; HTTP auth 
is a pretty antiquated way to handle authentication these days. Whatever you're 
using, I wish you all the best with it.

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/

Re: [PHP] Basic Auth

2013-08-27 Thread Stuart Dallas
On 27 Aug 2013, at 14:37, Jim Giner jim.gi...@albanyhandball.com wrote:

 Im using basic auth for a few of my pages that I want to limit access to - 
 nothing of a sensitive nature, but simply want to limit access to.  Want to 
 implement a signoff process, but can't figure it out.
 
 From the comments in the manual I take it one can't do this by simply 
 unsetting the PHP_AUTH_USER and _PW vars.  Can someone explain to me why this 
 doesn't suffice?  The signon process expects them to be there, so when they 
 are not (after the 'unset'), how come my signon process still detects them 
 and their values?


The global variables you're referring to are just that, global variables; 
changing them will have no effect on the browser. Basic Auth was not designed 
to allow users to log out, but you can make it happen with some Javascript.

Have your log out link call a Javascript function which sends an XMLHttpRequest 
with an invalid username and password. The server will return a 401 which you 
ignore and then take the user to whatever URL you want them to see after they 
log off. Not pretty, but it works.

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/

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



Re: [PHP] Basic Auth

2013-08-27 Thread Stuart Dallas
On 27 Aug 2013, at 15:06, Jim Giner jim.gi...@albanyhandball.com wrote:

 
 On 8/27/2013 9:46 AM, Stuart Dallas wrote:
 On 27 Aug 2013, at 14:37, Jim Giner jim.gi...@albanyhandball.com wrote:
 
 Im using basic auth for a few of my pages that I want to limit access to - 
 nothing of a sensitive nature, but simply want to limit access to.  Want to 
 implement a signoff process, but can't figure it out.
 
 From the comments in the manual I take it one can't do this by simply 
 unsetting the PHP_AUTH_USER and _PW vars.  Can someone explain to me why 
 this doesn't suffice?  The signon process expects them to be there, so when 
 they are not (after the 'unset'), how come my signon process still detects 
 them and their values?
 
 The global variables you're referring to are just that, global variables; 
 changing them will have no effect on the browser. Basic Auth was not 
 designed to allow users to log out, but you can make it happen with some 
 Javascript.
 
 Have your log out link call a Javascript function which sends an 
 XMLHttpRequest with an invalid username and password. The server will return 
 a 401 which you ignore and then take the user to whatever URL you want them 
 to see after they log off. Not pretty, but it works.
 
 -Stuart
 
 Thanks for the timely response!
 
 Before I try your suggestion - one question.  Since when is a global variable 
 not changeable?  Doesn't the fact that it reflects a modified value when I do 
 change it tell me it worked?  I change the value to 'xxx' and show it having 
 that value, but when the script is called again the old value appears.  Very 
 confusing!

I didn't say you couldn't change it, I said doing so will have no effect on the 
browser.

It's not really confusing so long as you understand how PHP works. Each request 
is brand new - nothing is retained from previous requests. The two variable 
you're changing are set by PHP when the request comes in from the browser. The 
fact you changed them in a previous request is irrelevant because 1) that 
change was not communicated to the browser in any way, and 2) PHP doesn't 
retain any data between requests [1].

If you've been coding assuming that changes you make to global variables are 
retained between requests you must have been having some pretty frustrating 
times!

-Stuart

[1] The one exception to this is $_SESSION, but it's important to know how that 
works. The $_SESSION array is populated when you call session_start(). It's 
loaded from some form of storage (files by default) and unserialised in to 
$_SESSION. When the session is closed, either implicitly by the request ending 
or by a call to one of the methods that explicitly do it, the contents are 
serialised to the storage system. Once closed, any changes to $_SESSION will 
not be stored; it becomes just another superglobal (not that it was ever 
anything else).

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/

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



Re: [PHP] Basic Auth

2013-08-27 Thread Stuart Dallas
On 27 Aug 2013, at 15:18, Jim Giner jim.gi...@albanyhandball.com wrote:

 On 8/27/2013 10:14 AM, Stuart Dallas wrote:
 It's not really confusing so long as you understand how PHP works. Each 
 request is brand new - nothing is retained from previous requests. The two 
 variable you're changing are set by PHP when the request comes in from the 
 browser. The fact you changed them in a previous request is irrelevant 
 because 1) that change was not communicated to the browser in any way, and 
 2) PHP doesn't retain any data between requests [1].
 
 If you've been coding assuming that changes you make to global variables are 
 retained between requests you must have been having some pretty frustrating 
 times!
 
 -Stuart
 
 
 Not really - this is the first time I've had something not work as expected.

That was said with my tongue very much firmly in my cheek, and so is this:

  I've been playing with dynamite since I was 4 - hey, it must be a safe, 
proper thing to do!

Just because nothing has blown up in your face yet doesn't mean it won't, and 
I'm concerned that you might not actually see how important it is to make sure 
you're using the tool correctly.

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/

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



Re: [PHP] Basic Auth

2013-08-27 Thread Stuart Dallas
On 27 Aug 2013, at 15:51, Jim Giner jim.gi...@albanyhandball.com wrote:

 On 8/27/2013 10:39 AM, Stuart Dallas wrote:
 On 27 Aug 2013, at 15:18, Jim Giner jim.gi...@albanyhandball.com wrote:
 
 On 8/27/2013 10:14 AM, Stuart Dallas wrote:
 It's not really confusing so long as you understand how PHP works. Each 
 request is brand new - nothing is retained from previous requests. The two 
 variable you're changing are set by PHP when the request comes in from the 
 browser. The fact you changed them in a previous request is irrelevant 
 because 1) that change was not communicated to the browser in any way, and 
 2) PHP doesn't retain any data between requests [1].
 
 If you've been coding assuming that changes you make to global variables 
 are retained between requests you must have been having some pretty 
 frustrating times!
 
 -Stuart
 
 Not really - this is the first time I've had something not work as expected.
 That was said with my tongue very much firmly in my cheek, and so is this:
 
   I've been playing with dynamite since I was 4 - hey, it must be a safe, 
 proper thing to do!
 
 Just because nothing has blown up in your face yet doesn't mean it won't, 
 and I'm concerned that you might not actually see how important it is to 
 make sure you're using the tool correctly.
 
 -Stuart
 
 This may very well be the first time with this problem because I haven't 
 tried anything like this before.
 
 That said - can you give me some pointers on how to do the JS solution?  I'm 
 calling a script that is similar to the one I used to signon.  It sends out 
 something like:
 
header(WWW-Authenticate: Basic realm=$realm);
header('HTTP/1.0 401 Unauthorized');
echo h3You have entered invalid credentialsbr;
echo Click a href='$return_url' here /a to return to the menu.;
exit();
 
 when it doesn't detect the PHP_AUTH_USER or it is an invalid value.
 
 So - to effect a signoff, what does one do?   You said to use an invalid 
 value, but what do I do with that?  How do I ignore the 401?   Now I'm 
 getting the signin dialog and I'm stuck.

You don't need to do anything on the server-side. You simply need a JS function 
that sends a request to a URL that requires basic auth, with an Authenticate 
header that contains an invalid username and password. Then, when your server 
responds with a 401 Authentication required (which it should already do for an 
invalid request) you can set location.href to whatever URL you want the logged 
out user to see.

If you don't know how to make a request from Javascript -- commonly known as an 
AJAX request -- then google for it. I'd recommend the jquery library if you 
want a very easy way to do it.

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/

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



Fwd: [PHP] Basic Auth

2013-08-27 Thread Stuart Dallas
Oops, sent this message from the wrong email address, so the list rejected it.

Begin forwarded message:

 From: Stuart Dallas stu...@3ft9.com
 Subject: Re: [PHP] Basic Auth
 Date: 27 August 2013 16:36:27 BST
 To: jim.gi...@albanyhandball.com
 Cc: php-general@lists.php.net
 
 On 27 Aug 2013, at 15:59, Jim Giner jim.gi...@albanyhandball.com wrote:
 
 On 8/27/2013 10:55 AM, Stuart Dallas wrote:
 On 27 Aug 2013, at 15:51, Jim Giner jim.gi...@albanyhandball.com wrote:
 
 On 8/27/2013 10:39 AM, Stuart Dallas wrote:
 On 27 Aug 2013, at 15:18, Jim Giner jim.gi...@albanyhandball.com wrote:
 
 On 8/27/2013 10:14 AM, Stuart Dallas wrote:
 It's not really confusing so long as you understand how PHP works. Each 
 request is brand new - nothing is retained from previous requests. The 
 two variable you're changing are set by PHP when the request comes in 
 from the browser. The fact you changed them in a previous request is 
 irrelevant because 1) that change was not communicated to the browser 
 in any way, and 2) PHP doesn't retain any data between requests [1].
 
 If you've been coding assuming that changes you make to global 
 variables are retained between requests you must have been having some 
 pretty frustrating times!
 
 -Stuart
 
 Not really - this is the first time I've had something not work as 
 expected.
 That was said with my tongue very much firmly in my cheek, and so is this:
 
  I've been playing with dynamite since I was 4 - hey, it must be a safe, 
 proper thing to do!
 
 Just because nothing has blown up in your face yet doesn't mean it won't, 
 and I'm concerned that you might not actually see how important it is to 
 make sure you're using the tool correctly.
 
 -Stuart
 
 This may very well be the first time with this problem because I haven't 
 tried anything like this before.
 
 That said - can you give me some pointers on how to do the JS solution?  
 I'm calling a script that is similar to the one I used to signon.  It 
 sends out something like:
 
   header(WWW-Authenticate: Basic realm=$realm);
   header('HTTP/1.0 401 Unauthorized');
   echo h3You have entered invalid credentialsbr;
   echo Click a href='$return_url' here /a to return to the menu.;
   exit();
 
 when it doesn't detect the PHP_AUTH_USER or it is an invalid value.
 
 So - to effect a signoff, what does one do?   You said to use an invalid 
 value, but what do I do with that?  How do I ignore the 401?   Now I'm 
 getting the signin dialog and I'm stuck.
 You don't need to do anything on the server-side. You simply need a JS 
 function that sends a request to a URL that requires basic auth, with an 
 Authenticate header that contains an invalid username and password. Then, 
 when your server responds with a 401 Authentication required (which it 
 should already do for an invalid request) you can set location.href to 
 whatever URL you want the logged out user to see.
 
 If you don't know how to make a request from Javascript -- commonly known 
 as an AJAX request -- then google for it. I'd recommend the jquery library 
 if you want a very easy way to do it.
 
 -Stuart
 
 I am familiar with an ajax request (xmlhttprequest) and I have a function 
 ready to call a script to effect this signoff.  I just don't know what to 
 put in that php script I'm calling.  From what you just wrote I'm guessing 
 that my headers as shown previously  may be close - Im confused about your 
 mention of contains an invalid username  As you can see from my sample 
 I don't include such a thing.
 
 For the last time: YOU DO NOT NEED TO MAKE ANY CHANGES SERVER-SIDE.
 
 From the Javascript, request any URL that requires authentication - it 
 doesn't matter. When you make the AJAX request, pass an Authentication header 
 that contains an invalid username and password. If you don't know what I mean 
 by that, please google how HTTP Basic Auth works.
 
 -Stuart
 
 -- 
 Stuart Dallas
 3ft9 Ltd
 http://3ft9.com/


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



Re: [PHP] Basic Auth

2013-08-27 Thread Stuart Dallas
On 27 Aug 2013, at 17:28, Jim Giner jim.gi...@albanyhandball.com wrote:

 On 8/27/2013 11:56 AM, Stuart Dallas wrote:
 Oops, sent this message from the wrong email address, so the list rejected 
 it.
 
 Begin forwarded message:
 
 From: Stuart Dallas stu...@3ft9.com
 Subject: Re: [PHP] Basic Auth
 Date: 27 August 2013 16:36:27 BST
 To: jim.gi...@albanyhandball.com
 Cc: php-general@lists.php.net
 
 On 27 Aug 2013, at 15:59, Jim Giner jim.gi...@albanyhandball.com wrote:
 
 On 8/27/2013 10:55 AM, Stuart Dallas wrote:
 On 27 Aug 2013, at 15:51, Jim Giner jim.gi...@albanyhandball.com wrote:
 
 On 8/27/2013 10:39 AM, Stuart Dallas wrote:
 On 27 Aug 2013, at 15:18, Jim Giner jim.gi...@albanyhandball.com 
 wrote:
 
 On 8/27/2013 10:14 AM, Stuart Dallas wrote:
 It's not really confusing so long as you understand how PHP works. 
 Each request is brand new - nothing is retained from previous 
 requests. The two variable you're changing are set by PHP when the 
 request comes in from the browser. The fact you changed them in a 
 previous request is irrelevant because 1) that change was not 
 communicated to the browser in any way, and 2) PHP doesn't retain any 
 data between requests [1].
 
 If you've been coding assuming that changes you make to global 
 variables are retained between requests you must have been having 
 some pretty frustrating times!
 
 -Stuart
 
 Not really - this is the first time I've had something not work as 
 expected.
 That was said with my tongue very much firmly in my cheek, and so is 
 this:
 
  I've been playing with dynamite since I was 4 - hey, it must be a 
 safe, proper thing to do!
 
 Just because nothing has blown up in your face yet doesn't mean it 
 won't, and I'm concerned that you might not actually see how important 
 it is to make sure you're using the tool correctly.
 
 -Stuart
 
 This may very well be the first time with this problem because I haven't 
 tried anything like this before.
 
 That said - can you give me some pointers on how to do the JS solution?  
 I'm calling a script that is similar to the one I used to signon.  It 
 sends out something like:
 
   header(WWW-Authenticate: Basic realm=$realm);
   header('HTTP/1.0 401 Unauthorized');
   echo h3You have entered invalid credentialsbr;
   echo Click a href='$return_url' here /a to return to the 
 menu.;
   exit();
 
 when it doesn't detect the PHP_AUTH_USER or it is an invalid value.
 
 So - to effect a signoff, what does one do?   You said to use an invalid 
 value, but what do I do with that?  How do I ignore the 401?   Now I'm 
 getting the signin dialog and I'm stuck.
 You don't need to do anything on the server-side. You simply need a JS 
 function that sends a request to a URL that requires basic auth, with an 
 Authenticate header that contains an invalid username and password. Then, 
 when your server responds with a 401 Authentication required (which it 
 should already do for an invalid request) you can set location.href to 
 whatever URL you want the logged out user to see.
 
 If you don't know how to make a request from Javascript -- commonly known 
 as an AJAX request -- then google for it. I'd recommend the jquery 
 library if you want a very easy way to do it.
 
 -Stuart
 
 I am familiar with an ajax request (xmlhttprequest) and I have a function 
 ready to call a script to effect this signoff.  I just don't know what to 
 put in that php script I'm calling.  From what you just wrote I'm guessing 
 that my headers as shown previously  may be close - Im confused about 
 your mention of contains an invalid username  As you can see from my 
 sample I don't include such a thing.
 
 For the last time: YOU DO NOT NEED TO MAKE ANY CHANGES SERVER-SIDE.
 
 From the Javascript, request any URL that requires authentication - it 
 doesn't matter. When you make the AJAX request, pass an Authentication 
 header that contains an invalid username and password. If you don't know 
 what I mean by that, please google how HTTP Basic Auth works.
 
 -Stuart
 
 It's not the basic auth that I'm having the issue with - it's the 'header' 
 thing and understanding what a 401 is doing and how I'm to ignore it.  Never 
 had to play with these things before and this part is all new.  Let's face it 
 - I'm an applications guy, not a systems guy. All this talk of headers and 
 such is greek to me.

HTTP headers are as important for application guys as they are for systems 
guys. I appreciate that this may be new to you, but it's pretty basic knowledge 
about how HTTP works.

Basic auth is simple, and you need to understand how it works to understand 
what I've been trying to say. Here's how HTTP auth works:

1) Browser hits page.
2) The PHP script knows this page requires HTTP Auth, checks the 
PHP_AUTH_[USER|PW] variables but doesn't find anything, so it responds with an 
HTTP status of 401 Unauthorised.
3) The browser gets the 401 response and displays the login box.
4) User enters username and password

Re: [PHP] Re: PHP vs JAVA

2013-08-21 Thread Stuart Dallas
On 21 Aug 2013, at 15:01, georg chambert georg.chamb...@telia.com wrote:

 my I shake the subject a little; Ive been doing some PHP and found it ok to 
 work with
 not so much fuss, but that was PHP4, what about PHP5 ?
 Dont really checked the difference but made a short-scan and found that it 
 had be
 screwed around with ?
 
 Any think, should I change to 5 ?

Yes, even if it's only because PHP4 hasn't been supported in any way, including 
security fixes, since August 7th, 2008! This fact alone makes it pretty 
dangerous to be using it on a public site, and that's without getting into all 
of the improvements that PHP5 has introduced over the past five years!

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] PHP vs JAVA

2013-08-20 Thread Stuart Dallas
On 20 Aug 2013, at 21:08, Sebastian Krebs krebs@gmail.com wrote:

 2013/8/20 Steven Staples sstap...@mnsi.net
 
 My recent question was simply an attempt to get documentation to support
 which server-side Web Language is the most popular. Both PHP and Java can
 be used server-side.
 
 I also realize that Java is used for native Android because I also teach
 Mobile Application Development (MAD -- I even coined the name). So, I am
 up
 to my butt in languages (and people who think different than me) -- I'm
 just trying to get documentation to back up my what I think I know.
 
 Well, technically any language can be used server side, it is all on how
 you
 set up your server, no?
 
 
 No. But since node.js I lack an example :D But of course you need the
 link between the language and the network.

The language and the 'link between the language and the network' are two 
completely separate things. The link, as you put it, is the web server. A web 
server doesn't need to do anything more than set up environment variables and 
run an executable, and even setting up the environment is technically optional. 
BASH can build web pages. I wouldn't recommend using BASH, but there's nothing 
technically preventing it.

Node.js is not the only way to run Javascript outside a browser, and other ways 
of doing so existed long before Node.js arrived. Most limitations people put on 
technology are artificial constructions rather than real constraints.


tedd: I wouldn't trust any stats you might find since, as has been pointed out, 
it's incredibly difficult to accurately measure.

I'd be careful with the word popular because it really depends on what you're 
measuring. If you're talking public websites then I'd agree that, anecdotally 
at least, PHP is more common than any other server-side language. If you're 
talking about public site visitors or page views it's definitely the most 
popular, but that's massively skewed by Facebook if you accept that their way 
of using PHP can still be called PHP. Enterprise usage of PHP is far lower, 
mainly due to Microsoft's dominance, but I get the feeling this is changing, 
albeit incredibly slowly.

If he means Java is the most popular as in developers would prefer to use it 
then I'd definitely disagree, but I wouldn't necessarily say that PHP is at the 
top of that list either.

Ultimately I'd want to know what he's trying to prove by saying that. If he's 
purely engaging in a mine's bigger than yours discussion I'd walk away, leave 
him to his petty games and actually accomplish something with the time instead.

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/

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



Re: [PHP] PHP vs JAVA

2013-08-20 Thread Stuart Dallas
On 20 Aug 2013, at 21:30, Dan Munro d...@danmunro.com wrote:

 in my opinion, that would be like asking how big is the internet?.
 
 http://www.washingtonpost.com/blogs/the-switch/wp/2013/08/18/heres-what-you-find-when-you-scan-the-entire-internet-in-an-hour/

That's scanning IP addresses and doesn't come close to answering how big is 
the internet, assuming that means how many sites are there rather than how 
many publicly responsive edge servers exist.

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] PHP vs JAVA

2013-08-20 Thread Stuart Dallas
On 20 Aug 2013, at 22:00, Ashley Sheridan a...@ashleysheridan.co.uk wrote:

 On Tue, 2013-08-20 at 21:44 +0100, Stuart Dallas wrote:
 On 20 Aug 2013, at 21:30, Dan Munro d...@danmunro.com
  wrote:
 
  in my opinion, that would be like asking how big is the internet?.
  
  
 http://www.washingtonpost.com/blogs/the-switch/wp/2013/08/18/heres-what-you-find-when-you-scan-the-entire-internet-in-an-hour/
 
 
 That's scanning IP addresses and doesn't come close to answering how big is 
 the internet, assuming that means how many sites are there rather than how 
 many publicly responsive edge servers exist.
 
 I'd argue that a large proportion of really secure servers out there won't 
 respond to a lot of what Zmap pings out. Nmap works by throwing out requests 
 on a bunch of different ports, not just ping, which is slow, so I'd be 
 surprised if Zmap could really rival that while giving the same results. 
 Bearing in mind there are over 4,000 million (I won't say billion, because 
 that's a million million, despite what the Americans say!) IPv4 address out 
 there, 40 minutes is a ridiculous amount of time to even scan half of that, 
 especially given the fact that IPv6 is being majorly pushed because IPv4 is 
 apparently running out of free address space! Then not forgetting that lots 
 of websites exist on the same IP address/range, I would say the article is 
 lacking on so many details as to be untrue.

I wouldn't go so far as to say it's untrue, but it's certainly written with 
exaggerated implications.

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/

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



Re: [PHP] How can I submit more than 2000 items of data?

2013-08-19 Thread Stuart Dallas
On 19 Aug 2013, at 10:49, aesbovis aesbo...@gmail.com wrote:

 I know Javascript can solve it, but I don't want to use Js.
 Thank you all the same.

I know you've had the right answer, but I think it's worth pointing out that 
use of JSON in no way requires Javascript, despite its name.

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/

 On Mon, Aug 19, 2013 at 4:32 PM, Szopen Xiao chopins.x...@gmail.com wrote:
 
 you can use JSON post
 
 2013/8/19 aesbovis aesbo...@gmail.com:
 Hello there
 I am making a little web-based-tool for our studio to progress a large
 amount of data, more than 2000 items, but it seems there is a length
 limit
 of 1000 to $_POST.
 
 How can I submit all of the items in one time?
 
 Thank you!
 aesbovis
 
 --
 *Anywhere @aesbovis!*
 
 
 
 
 -- 
 *Anywhere @aesbovis!*


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



Re: [PHP] How can I submit more than 2000 items of data?

2013-08-19 Thread Stuart Dallas
On 19 Aug 2013, at 15:56, Matijn Woudt tijn...@gmail.com wrote:

 
 On Mon, Aug 19, 2013 at 11:54 AM, Stuart Dallas stu...@3ft9.com wrote:
 On 19 Aug 2013, at 10:49, aesbovis aesbo...@gmail.com wrote:
 
  I know Javascript can solve it, but I don't want to use Js.
  Thank you all the same.
 
 I know you've had the right answer, but I think it's worth pointing out that 
 use of JSON in no way requires Javascript, despite its name.
 
 -Stuart
 
 
 You might want to explain how you convert form data to JSON without 
 javascript?

PHP can do it. Ruby can do it. .NET can do it. Just because you want to use 
JSON in a web browser where Javascript is the go-to method, doesn't mean JSON 
requires Javascript.

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/

Re: [PHP] How can I submit more than 2000 items of data?

2013-08-19 Thread Stuart Dallas
On 19 Aug 2013, at 16:24, Matijn Woudt tijn...@gmail.com wrote:

 On Mon, Aug 19, 2013 at 5:20 PM, Stuart Dallas stu...@3ft9.com wrote:
 On 19 Aug 2013, at 15:56, Matijn Woudt tijn...@gmail.com wrote:
 
 
 On Mon, Aug 19, 2013 at 11:54 AM, Stuart Dallas stu...@3ft9.com wrote:
 On 19 Aug 2013, at 10:49, aesbovis aesbo...@gmail.com wrote:
 
  I know Javascript can solve it, but I don't want to use Js.
  Thank you all the same.
 
 I know you've had the right answer, but I think it's worth pointing out that 
 use of JSON in no way requires Javascript, despite its name.
 
 -Stuart
 
 
 You might want to explain how you convert form data to JSON without 
 javascript?
 
 PHP can do it. Ruby can do it. .NET can do it. Just because you want to use 
 JSON in a web browser where Javascript is the go-to method, doesn't mean JSON 
 requires Javascript.
 
 -Stuart
 
 
 
 Yes, of course they can do it, but then you first need to submit the POST 
 data (which he could not do because of the above). Javascript is more or less 
 the only way to do it (yes I know Flash….)

I wasn't speaking to his specific issue as that was solved by an earlier 
response. I was just commenting that the implied intrinsic link between JSON 
and Javascript in what he had said does not exist.

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/

Re: [PHP] Session_unset - session_destroy issue

2013-08-15 Thread Stuart Dallas
On 15 Aug 2013, at 19:16, dealTek deal...@gmail.com wrote:

 Hi all,
 
 I am having trouble with session_destroy - session_unset and $_SESSION = 
 array()... I am trying to STOP and destroy all session vars..
 
 
 with the simple code test below I would think it would echo test 1 BUT FAIL 
 on test2 
 - however it shows both for me...
 
 how do I UNSET - DESTROY SESSIONS?
 
 
 ?php
 
 
 session_start();
 
 $_SESSION['var1'] = 'test1';
 echo 'br / test1 '. $_SESSION['var1'].' ';
 
 session_unset();
 session_destroy();
 $_SESSION = array();
 
 
 $_SESSION['var1'] = 'test2';
 
 echo 'br / test2 ' . $_SESSION['var1'];
 
 
 
 ?

The $_SESSION superglobal variable is nothing more than that. Calling 
session_start will populate it with an existing session, and when the request 
ends the contents will be stored. Once you've closed or destroyed the session 
it does not stop working because it's nothing more than a superglobal variable, 
it just won't be stored at the end of the request.

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] Ambiguous?

2013-08-09 Thread Stuart Dallas
On 9 Aug 2013, at 13:00, Karl-Arne Gjersøyen karlar...@gmail.com wrote:

 1) query
 foreach($varenr_inn_pa_lager as $vnr){
include('../../tilkobling.php');
$sql = SELECT * FROM exan,dynamit WHERE varenr = '$vnr' LIMIT
 1;
$resultat = mysql_query($sql, $tilkobling) or
 die(mysql_error());
 
 2) Result:
 Column 'varenr' in where clause is ambiguous
 
 3) Tables in MySQL database
 
 mysql SELECT * FROM exan;
 ++-+---+--+--+-+
 | leverandor | valgt_lager | un_nr | varenavn | varenr   | kg_pa_lager |
 ++-+---+--+--+-+
 
 mysql SELECT * FROM dynamit;
 ++-+---++---+-++-+
 | leverandor | valgt_lager | type  | dim_mm | un_nr |
 varenavn| varenr | kg_pa_lager |
 ++-+---++---+-++-+
 
 4) My question:
 What means with ambiguous here?

The field exists in both tables, so you need to specify which one you mean.

Please learn how to use Google, it knows the answer to almost everything!

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] Class Auto-Assigning to Variable

2013-08-07 Thread Stuart Dallas
On 7 Aug 2013, at 20:45, Brian Smither bhsmit...@gmail.com wrote:

 I cannot replicate this.
 
 I don't expect anyone to be able to replicate this behavior. The example 
 shows an extraordinarily stripped-down sequence of statements that informs 
 what should work, but do to some unknown agent, which, therefore, cannot be 
 included in the example, produces unexpected output.
 
 This conceptual example is not a 'sample' or 'excerpt' of the actual 
 application. There is much, much more code. None of it is an apparent likely 
 suspect in causing this behavior.
 
 I am hoping for a, Oh, yeah! I've seen that happen before. It's caused by...
 
 Let us focus on the central question:
 
 Would there be a PHP function that would do [what the example describes] as a 
 side-effect?

Yes:

$hello = $clsHello;

There are only a few variables that get assigned as side effects of functions, 
but they have very specific names, and none of them are $hello (but I'm 
guessing that's not the actual variable name) and none of them will assign a 
userland object. Somewhere in your code there is something that is assigning to 
$hello. Find everything that's doing that and look at each instance in detail.

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/

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



Re: [PHP] how to see all sessions sets in server

2013-08-04 Thread Stuart Dallas
On 4 Aug 2013, at 14:36, Farzan Dalaee farzan.dal...@gmail.com wrote:

 I need to inspect each visitor to show how online or who offline for chat
 Like facebook chat

PHP sessions is a really bad mechanism to use to accomplish this. In the past 
I've used memcached or redis for presence indicators. Both allow you to set 
keys that expire after a set period. The problem with this is that a user can 
appear to be online for up to set period seconds longer than they actually 
are.

In the system I'm currently building I've got a node.js daemon to which the 
browser connects. That daemon exposes an API that the rest of the system can 
call to get lists of online users, which is easily gathered since it's just the 
list of connected users. There is then no delay between the browser closing the 
connection and the daemon deciding that user is no longer online.

If you have a chat system I'm curious as to how it works, since presence is 
usually tied closely to how the client is detecting new messages.

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] Foreach and mydql_query problem

2013-07-22 Thread Stuart Dallas

On 22 Jul 2013, at 08:04, Tamara Temple tamouse.li...@gmail.com wrote:

 On Jul 22, 2013, at 1:19 AM, Karl-Arne Gjersøyen karlar...@gmail.com wrote:
 
 Hello again.
 I have this this source code that not work as I want...
 
 THe PHP/HTHML form fields is generated by a while loop and looks like this:
 
 input type=number name=number_of_items[] size=6 value=?hp
 echo $item; ? required=required
 
 
 the php source code look like this:
 ?php
 if(!empty($_POST['number_of_itemsi'])){
   include('../../connect.php');
 
   foreach($number_of_items as $itemi){
   echo $itemibr;
 
   $sql = UPDATE item_table SET number_item = '$item' WHERE date
 = '$todays_date' AND sign = '$username';
   mysql_query($sql,$connect) or die(mysql_error());
}
 }
 
 ?
 
 The problem is:
 Foreach list every items as expected in PHP doc and I thought that $sql and
 mysql_query should be run five times when I have five items.
 But the problem is that only the very last number_of_items is written when
 update the form..
 I believe this is becayse number_of_items = '$item in $sqk override every
 earlier result.
 
 So my querstion is. How to to update the database in this case?
 
 Thanks again for your good advice  and time to help me.
 
 Karl'
 
 Either the code you posted isn't the actual code, or if it is, the errors 
 should be rather obvious. Post *actual* code.

The error is rather obvious: it loops around an array running an update 
statement that will modify a single row in the table, so it's not surprising 
that it appears like only the last entry in the array has been stored.

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] Foreach and mydql_query problem

2013-07-22 Thread Stuart Dallas
On 22 Jul 2013, at 12:56, Karl-Arne Gjersøyen karlar...@gmail.com wrote:

 2013/7/22 Stuart Dallas stu...@3ft9.com
 
 
 On 22 Jul 2013, at 08:04, Tamara Temple tamouse.li...@gmail.com wrote:
 
 On Jul 22, 2013, at 1:19 AM, Karl-Arne Gjersøyen karlar...@gmail.com
 wrote:
 
 Hello again.
 I have this this source code that not work as I want...
 
 THe PHP/HTHML form fields is generated by a while loop and looks like
 this:
 
 input type=number name=number_of_items[] size=6 value=?hp
 echo $item; ? required=required
 
 
 the php source code look like this:
 ?php
 if(!empty($_POST['number_of_itemsi'])){
  include('../../connect.php');
 
  foreach($number_of_items as $itemi){
  echo $itemibr;
 
  $sql = UPDATE item_table SET number_item = '$item' WHERE date
 = '$todays_date' AND sign = '$username';
  mysql_query($sql,$connect) or die(mysql_error());
   }
 }
 
 ?
 
 The problem is:
 Foreach list every items as expected in PHP doc and I thought that $sql
 and
 mysql_query should be run five times when I have five items.
 But the problem is that only the very last number_of_items is written
 when
 update the form..
 I believe this is becayse number_of_items = '$item in $sqk override
 every
 earlier result.
 
 So my querstion is. How to to update the database in this case?
 
 Thanks again for your good advice  and time to help me.
 
 Karl'
 
 Either the code you posted isn't the actual code, or if it is, the
 errors should be rather obvious. Post *actual* code.
 
 The error is rather obvious: it loops around an array running an update
 statement that will modify a single row in the table, so it's not
 surprising that it appears like only the last entry in the array has been
 stored.
 
 Yes, i know that only one a singe row is updated and that is the problem.
 What can I do to update several rows at the same time?
 Thank you very much for all your good advice.

Are you sure you want to update several rows, or do you actually want to insert 
several rows?

This is pretty basic database stuff, and is off-topic for this list.

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] Foreach and mydql_query problem

2013-07-22 Thread Stuart Dallas
On 22 Jul 2013, at 13:25, Karl-Arne Gjersøyen karlar...@gmail.com wrote:

 2013/7/22 Stuart Dallas stu...@3ft9.com
 On 22 Jul 2013, at 12:56, Karl-Arne Gjersøyen karlar...@gmail.com wrote:
 
  2013/7/22 Stuart Dallas stu...@3ft9.com
 
 
  On 22 Jul 2013, at 08:04, Tamara Temple tamouse.li...@gmail.com wrote:
 
  On Jul 22, 2013, at 1:19 AM, Karl-Arne Gjersøyen karlar...@gmail.com
  wrote:
 
  Hello again.
  I have this this source code that not work as I want...
 
  THe PHP/HTHML form fields is generated by a while loop and looks like
  this:
 
  input type=number name=number_of_items[] size=6 value=?hp
  echo $item; ? required=required
 
 
  the php source code look like this:
  ?php
  if(!empty($_POST['number_of_itemsi'])){
   include('../../connect.php');
 
   foreach($number_of_items as $itemi){
   echo $itemibr;
 
   $sql = UPDATE item_table SET number_item = '$item' WHERE date
  = '$todays_date' AND sign = '$username';
   mysql_query($sql,$connect) or die(mysql_error());
}
  }
 
  ?
 
  The problem is:
  Foreach list every items as expected in PHP doc and I thought that $sql
  and
  mysql_query should be run five times when I have five items.
  But the problem is that only the very last number_of_items is written
  when
  update the form..
  I believe this is becayse number_of_items = '$item in $sqk override
  every
  earlier result.
 
  So my querstion is. How to to update the database in this case?
 
  Thanks again for your good advice  and time to help me.
 
  Karl'
 
  Either the code you posted isn't the actual code, or if it is, the
  errors should be rather obvious. Post *actual* code.
 
  The error is rather obvious: it loops around an array running an update
  statement that will modify a single row in the table, so it's not
  surprising that it appears like only the last entry in the array has been
  stored.
 
  Yes, i know that only one a singe row is updated and that is the problem.
  What can I do to update several rows at the same time?
  Thank you very much for all your good advice.
 
 Are you sure you want to update several rows, or do you actually want to 
 insert several rows?
 
 This is pretty basic database stuff, and is off-topic for this list.
  
 
 OK. Sorry. I thought it was a PHP question for a way to update several mysql 
 rows by PHP code.

If you want to UPDATE several rows then you must have unique identifiers for 
those rows. If you don't then I'm guessing what you actually want to do is 
INSERT those rows.

It's off-topic in the same way as asking a mechanic how to fit a bunch of stuff 
in your car. It's the MySQL part that you're having a problem with, not the 
PHP. I strongly recommend that you use the MySQL command line to run the 
queries you think you need to run, checking what the table looks like after 
each one. Once you know what queries you need to run you will more effectively 
be able to write the PHP wrapper around those queries.

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] Can this work?

2013-07-05 Thread Stuart Dallas
On 5 Jul 2013, at 14:56, Karl-Arne Gjersøyen karlar...@gmail.com wrote:

 Hello. I have a form in HTML/PHP with for loops that generate a selected
 list like this:
 for($i = 1; $i 25;$i++ ){
 option value=?php echo $i; ??php echo $i; ?/option
 }
 
 The lists look like this:
 
 form action=index.php
 view-source:http://localhost/%7Ekarl/kasen/io/kp/index.php
 method=postselect name=valgt_dynamit_polse_1-25kgoption
 value=1-25 selected=selected1-25/optionoption
 value=11/optionoption value=22/optionoption
 value=33/optionoption value=44/optionoption
 value=55/optionoption value=66/optionoption
 value=77/optionoption value=88/optionoption
 value=99/optionoption value=1010/optionoption
 value=/optionoption value=1212/optionoption
 value=1313/optionoption value=1414/optionoption
 value=1515/optionoption value=1616/optionoption
 value=1717/optionoption value=1818/optionoption
 value=1919/optionoption value=2020/optionoption
 value=2121/optionoption value=/optionoption
 value=2323/optionoption value=2424/optionoption
 value=2525/option/select Kgnbsp;select
 name=valgt_dynamit_polse_26-50kgoption value=26-50
 selected=selected26-50/optionoption
 value=2626/optionoption value=2727/optionoption
 value=2828/optionoption value=2929/optionoption
 value=3030/optionoption value=3131/optionoption
 value=3232/optionoption value=/optionoption
 value=3434/optionoption value=3535/optionoption
 value=3636/optionoption value=3737/optionoption
 value=3838/optionoption value=3939/optionoption
 value=4040/optionoption value=4141/optionoption
 value=4242/optionoption value=4343/optionoption
 value=/optionoption value=4545/optionoption
 value=4646/optionoption value=4747/optionoption
 value=4848/optionoption value=4949/optionoption
 value=5050/option/select Kgnbsp;
 
 What I try to do with it is to register the selected value and do something
 with it. The lists is weight in KG. I hope to select only one value between
 1-25kg OR 26-50kg. I don't know if this is possible? What do you think?

If the range of acceptable values is 1-50, why do you have two select fields 
instead of one?

?php
for ($i = 1; $i = 50; $i++) {
?
option value=?php echo $i; ??php echo $i; ?/option
?php
}
?

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] Can this work?

2013-07-05 Thread Stuart Dallas
On 5 Jul 2013, at 15:05, Karl-Arne Gjersøyen karlar...@gmail.com wrote:

 2013/7/5 Stuart Dallas stu...@3ft9.com
 
 On 5 Jul 2013, at 14:56, Karl-Arne Gjersøyen karlar...@gmail.com wrote:
 
 Hello. I have a form in HTML/PHP with for loops that generate a selected
 list like this:
 for($i = 1; $i 25;$i++ ){
 option value=?php echo $i; ??php echo $i; ?/option
 }
 
 The lists look like this:
 
 form action=index.php
 view-source:http://localhost/%7Ekarl/kasen/io/kp/index.php
 method=postselect name=valgt_dynamit_polse_1-25kgoption
 value=1-25 selected=selected1-25/optionoption
 value=11/optionoption value=22/optionoption
 value=33/optionoption value=44/optionoption
 value=55/optionoption value=66/optionoption
 value=77/optionoption value=88/optionoption
 value=99/optionoption value=1010/optionoption
 value=/optionoption value=1212/optionoption
 value=1313/optionoption value=1414/optionoption
 value=1515/optionoption value=1616/optionoption
 value=1717/optionoption value=1818/optionoption
 value=1919/optionoption value=2020/optionoption
 value=2121/optionoption value=/optionoption
 value=2323/optionoption value=2424/optionoption
 value=2525/option/select Kgnbsp;select
 name=valgt_dynamit_polse_26-50kgoption value=26-50
 selected=selected26-50/optionoption
 value=2626/optionoption value=2727/optionoption
 value=2828/optionoption value=2929/optionoption
 value=3030/optionoption value=3131/optionoption
 value=3232/optionoption value=/optionoption
 value=3434/optionoption value=3535/optionoption
 value=3636/optionoption value=3737/optionoption
 value=3838/optionoption value=3939/optionoption
 value=4040/optionoption value=4141/optionoption
 value=4242/optionoption value=4343/optionoption
 value=/optionoption value=4545/optionoption
 value=4646/optionoption value=4747/optionoption
 value=4848/optionoption value=4949/optionoption
 value=5050/option/select Kgnbsp;
 
 What I try to do with it is to register the selected value and do
 something
 with it. The lists is weight in KG. I hope to select only one value
 between
 1-25kg OR 26-50kg. I don't know if this is possible? What do you think?
 
 If the range of acceptable values is 1-50, why do you have two select
 fields instead of one?
 
 The select list has values between 1 and 200. Therefore I split it up for
 every 25th value.

Ok, but why?

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] Can this work?

2013-07-05 Thread Stuart Dallas
On 5 Jul 2013, at 15:24, Karl-Arne Gjersøyen karlar...@gmail.com wrote:

 2013/7/5 Stuart Dallas stu...@3ft9.com
 
 On 5 Jul 2013, at 15:05, Karl-Arne Gjersøyen karlar...@gmail.com wrote:
 
 2013/7/5 Stuart Dallas stu...@3ft9.com
 
 On 5 Jul 2013, at 14:56, Karl-Arne Gjersøyen karlar...@gmail.com
 wrote:
 
 Hello. I have a form in HTML/PHP with for loops that generate a
 selected
 list like this:
 for($i = 1; $i 25;$i++ ){
 option value=?php echo $i; ??php echo $i; ?/option
 }
 
 The lists look like this:
 
 form action=index.php
 view-source:http://localhost/%7Ekarl/kasen/io/kp/index.php
 method=postselect name=valgt_dynamit_polse_1-25kgoption
 value=1-25 selected=selected1-25/optionoption
 value=11/optionoption value=22/optionoption
 value=33/optionoption value=44/optionoption
 value=55/optionoption value=66/optionoption
 value=77/optionoption value=88/optionoption
 value=99/optionoption value=1010/optionoption
 value=/optionoption value=1212/optionoption
 value=1313/optionoption value=1414/optionoption
 value=1515/optionoption value=1616/optionoption
 value=1717/optionoption value=1818/optionoption
 value=1919/optionoption value=2020/optionoption
 value=2121/optionoption value=/optionoption
 value=2323/optionoption value=2424/optionoption
 value=2525/option/select Kgnbsp;select
 name=valgt_dynamit_polse_26-50kgoption value=26-50
 selected=selected26-50/optionoption
 value=2626/optionoption value=2727/optionoption
 value=2828/optionoption value=2929/optionoption
 value=3030/optionoption value=3131/optionoption
 value=3232/optionoption value=/optionoption
 value=3434/optionoption value=3535/optionoption
 value=3636/optionoption value=3737/optionoption
 value=3838/optionoption value=3939/optionoption
 value=4040/optionoption value=4141/optionoption
 value=4242/optionoption value=4343/optionoption
 value=/optionoption value=4545/optionoption
 value=4646/optionoption value=4747/optionoption
 value=4848/optionoption value=4949/optionoption
 value=5050/option/select Kgnbsp;
 
 What I try to do with it is to register the selected value and do
 something
 with it. The lists is weight in KG. I hope to select only one value
 between
 1-25kg OR 26-50kg. I don't know if this is possible? What do you think?
 
 If the range of acceptable values is 1-50, why do you have two select
 fields instead of one?
 
 The select list has values between 1 and 200. Therefore I split it up for
 every 25th value.
 
 Ok, but why?
 
 
 I will use my application on iPad and find it more easy to use multiple
 select lists than one big list with all 200 values at once.

In that case I would recommend using a text input field and validate it with 
javascript and then validate it again on the server-side with PHP. With 
multiple select fields the only way you'll know which one the user (i.e. you) 
meant is by resetting the others to an empty value whenever one of them changes.

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] Reseting the auto-increment number in a MySQL database.

2013-06-26 Thread Stuart Dallas
On Wednesday, 26 June 2013 at 18:07, Tedd Sperling wrote:
 Hi gang:
 
 I have a client where their next auto-increment number just jumped from 2300 
 to 10 for reasons not understood. They want it set back.
 
 Options such as dropping the primary key and rebuilding the index is NOT 
 possible -- this is a relational table thing.
 
 So, is there a way (programmatically) to set the next number in an 
 auto-increment?
 
 Something like:
 
 alter table abc auto_increment = 2301;
 

ALTER TABLE tbl AUTO_INCREMENT = 2301;

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/




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



Re: [PHP] Last Record INSERT

2013-06-26 Thread Stuart Dallas
On Wednesday, 26 June 2013 at 18:39, Tedd Sperling wrote:
 Let me add, currently I am inserting an email address into a database.
 
 To find which record was created, I ask for the record number (ID) back.
 
 I am asking simply because mysql_insert_id() is deprecated.
 


How are you doing the insert? If you're inserting with mysql_query() then 
that's just as deprecated as mysql_insert_id().

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/




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



Re: [PHP] Last Record INSERT

2013-06-26 Thread Stuart Dallas
On Wednesday, 26 June 2013 at 19:01, Tedd Sperling wrote:
 On Jun 26, 2013, at 1:56 PM, Stuart Dallas stu...@3ft9.com 
 (mailto:stu...@3ft9.com) wrote:
  On Wednesday, 26 June 2013 at 18:39, Tedd Sperling wrote:
   Let me add, currently I am inserting an email address into a database.
   
   To find which record was created, I ask for the record number (ID) back.
   
   I am asking simply because mysql_insert_id() is deprecated.
 
 Now you tell me. :-)
 


The whole mysql module has been deprecated. The recommended module is now 
either mysqli or PDO depending on your requirements. Moving to mysqli from 
mysql will probably be the less painful route.

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/




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



Re: [PHP] Is it possible???

2013-06-24 Thread Stuart Dallas
On 24 Jun 2013, at 12:59, Karl-Arne Gjersøyen karlar...@gmail.com wrote:

 $item_amount_in_store = 223;
 $update_amount = 7;
 $update_item_amount_in_store += $update_amount;
 $update_amoint_in_store is now 227;
 
 Why? That should be 230!

Because you're using $item_amount_in_store and $update_item_amount_in_store as 
if PHP should know you mean the same thing.

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] Fwd: Is it possible???

2013-06-24 Thread Stuart Dallas
On 24 Jun 2013, at 13:02, Karl-Arne Gjersøyen karlar...@gmail.com wrote:

 Error in my last post This is corrected:
 
 $item_amount_in_store = 223;
 $update_amount = 7;
 $item_amount_in_Store += $update_amount;
 
 It show the result = 227 and not 230. Why is this happen?

Something else is going on to give you 227, but variable names are case 
sensitive which is why you're not getting what you expect.

?php
$item_amount_in_store = 223;
$update_amount = 7;
$item_amount_in_Store += $update_amount;
var_dump($item_amount_in_store);
var_dump($item_amount_in_Store);
?

Output:

int(223)
int(7)

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/

 -- Forwarded message --
 From: Karl-Arne Gjersøyen karlar...@gmail.com
 Date: 2013/6/24
 Subject: Is it possible???
 To: PHP Mailinglist php-general@lists.php.net
 
 
 $item_amount_in_store = 223;
 $update_amount = 7;
 $update_item_amount_in_store += $update_amount;
 $update_amoint_in_store is now 227;
 
 Why? That should be 230!
 
 Karl
 
 
 
 -- 
 Hjemmeside: http://www.karl-arne.name/


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



Re: [PHP] A Strange Problem

2013-06-20 Thread Stuart Dallas
On 20 Jun 2013, at 18:39, Tedd Sperling t...@sperling.com wrote:

 Hi gang:
 
 I have a very strange problem.
 
 I can use this statement in one folder:
 
   $fcontents = file('docs/admin-email.txt');
 
 But in a different folder with an exact path having 'docs/admin-email.txt', I 
 get:
 
 Warning: file(/docs/admin-email.txt) [function.file]: failed to open stream: 
 No such file or directory in cut on line 83
 
 This has got me really puzzled.
 
 I have confirmed these are the exact same folders and files, except only in 
 two different places on the server. Both are one level down from root.
 
 Any ideas as to what is going on?
 
 Cheers,
 
 tedd

Whatever the reason for this, I'd recommend you always specify a path relative 
to the current script.

In PHP 5.3+:

$fcontents = file(__DIR__.'/docs/admin-email.txt');

Prior to 5.3:

$fcontents = file(dirname(__FILE__).'/docs/admin-email.txt');

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] PHP is Zero

2013-06-13 Thread Stuart Dallas
On 13 Jun 2013, at 12:27, BUSCHKE Daniel daniel.busc...@nextiraone.eu wrote:

 Hi,
 
 It gives up when it finds a non-numeric character (as the documentation 
 would tell you)
 
 Why is PHP doing that? I know it works as designed and I know it is 
 documented like this but that does not mean that it is a good feature, does 
 it? So lets talk about the question: Is that behaviour awaited by PHP 
 software developers? Is that really the way PHP should work here? May we 
 should change that?!
 
 BTW: I talked to some collegues and friends since my first post. They all 
 guessed that 'PHP' == 0 is false within a few seconds. I think the 
 weak-typed-PHP is a little to weak at this point.

I don't know what the actual reasoning is; if you want that I suggest you ask 
on the internals list, but be careful how you phrase the question. If it's pure 
curiosity then that's fine, but whether you agree with the reasoning or not 
it's gone way past the point where it can be changed.

My take it that the behaviour is perfectly reasonable. When you compare two 
different types it has to convert one of them. If you're comparing a string to 
a number it seems logical to me that the number should be the preferred type, 
so the string gets converted. What would you expect array(5) == 5 to give you? 
Would you expect the 5 to be converted in to an array? No. The reason it looks 
odd for PHP == 0 is that there's no reason why the 0 should not be converted 
to 0, except that strings and numbers are not the only types available and 
there has to be an order of precedence. And consistency is key.

As for how strings get converted to numbers I have no idea why it will take 
everything up to the first non-e|E|. character. The documentation[1] simply 
states the behaviour and doesn't go in to why. However, I have to ask why it 
matters? Why would you want to convert '8315e839da08e2a7afe6dd12ec58245d' to an 
integer? If you have code that's juggling it automatically, be more explicit. 
It's fine to be interested in the reasons why it does what it does, but if it's 
causing you problems then the issue is with your code not being explicit 
enough, not PHP.

-Stuart

[1] http://php.net/language.types.string#language.types.string.conversion

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] htaccess to make html act as php suffixed files

2013-06-11 Thread Stuart Dallas
On 11 Jun 2013, at 18:16, Tedd Sperling t...@sperling.com wrote:

 Hi gang:
 
 To get html pages to use php scripts, I've used:
 
 RewriteEngine on
 # handler for phpsuexec. -- this makes these prefixes considered for php
 FilesMatch \.(htm|html)$
 SetHandler application/x-httpd-php
 /FilesMatch
 
 In a .htaccess file.
 
 However, it works on one site, but not on another -- any ideas as to why?

At a rough guess there's an AllowOverride line in the main Apache config that's 
restricting what you can do in the .htaccess file.

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] Has this always been the case?

2013-05-31 Thread Stuart Dallas
On 31 May 2013, at 11:57, Richard Quadling rquadl...@gmail.com wrote:

 Hi.
 
 Both
 
 ?php
 class Oddity{
  public $var = 'a' . 'b';
 }
 ?
 
 and
 
 ?php
 class Oddity{
 const A_VAR = 'a' . 'b';
 }
 ?
 
 produce ...
 
 PHP Parse error:  syntax error, unexpected '.', expecting ',' or ';' in -
 on line 3
 
 For properties, has this always been the case?
 
 Admittedly, this is the first time I've ever written code to assign a
 concatenated string to a static property ...
 
static protected $s_NormaliserScript = __DIR__ . '/normalizedError.php';
 
 And I was just surprised.
 
 That's all.

Yes, it has. Initial values class constants and member variables must be 
literal values. If you need to do that use a constructor.

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] Has this always been the case?

2013-05-31 Thread Stuart Dallas
On 31 May 2013, at 12:08, shiplu shiplu@gmail.com wrote:

 The property initializer in PHP can not have any expression. It should be 
 constant value.

That is not entirely correct. It must be a literal value. The expression 
'a'.'b' is a constant value.

I may be being overly picky here, but I think it's an important distinction.

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/

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



Re: [PHP] Has this always been the case?

2013-05-31 Thread Stuart Dallas
On 31 May 2013, at 12:17, shiplu shiplu@gmail.com wrote:

 On Fri, May 31, 2013 at 5:12 PM, Stuart Dallas stu...@3ft9.com wrote:
 That is not entirely correct. It must be a literal value. The expression 
 'a'.'b' is a constant value.
 I may be being overly picky here, but I think it's an important distinction.
 
 
 I thought 'a'. 'b' is a constant expression and 'ab' is a constant value. 
 Correct me if I am wrong. 

You're correct that 'a'.'b' is a constant expression, but I wouldn't call 'ab' 
a constant value, it's a literal [1]. While constant value makes logical 
sense there is a long history of agreed terminology for these things and you 
will find that using it will enable smoother communication with fellow 
developers.

Initial values of class constants and member variables must be literals as they 
are defined not evaluated.

-Stuart

[1] http://en.wikipedia.org/wiki/Literal_(computer_programming)

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/


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



Re: [PHP] Has this always been the case?

2013-05-31 Thread Stuart Dallas
On 31 May 2013, at 12:22, Richard Quadling rquadl...@gmail.com wrote:

 On 31 May 2013 12:17, shiplu shiplu@gmail.com wrote:
 
 On Fri, May 31, 2013 at 5:12 PM, Stuart Dallas stu...@3ft9.com wrote:
 That is not entirely correct. It must be a literal value. The expression 
 'a'.'b' is a constant value.
 I may be being overly picky here, but I think it's an important distinction.
 
 I thought 'a'. 'b' is a constant expression and 'ab' is a constant value. 
 Correct me if I am wrong. 
 
 Literals only is OK. Was/is there plans to allow constant expressions?

I believe it's been discussed a few times but I think it's highly unlikely due 
to the way the engine works. As I said in my reply to shiplu, class constants 
and member variables are defined not evaluated, so making expressions possible 
is a fairly major modification for, what I see as fairly minimal benefit.

There's definitely an argument to be made that a class definition should not 
contain anything that needs to be evaluated. I certainly see it as breaking the 
basics of object oriented design.

 It just made me wonder if I was doing something wrong.

Technically you were, but nobody died so it's ok :)

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] REQUEST

2013-05-29 Thread Stuart Dallas
On 29 May 2013, at 17:26, Last Hacker Always onpoint lasthack...@gmail.com 
wrote:

 HEY GUYZ I KNOW, I KNOW THIS IS NOT A PLACE FOR SOMETHING LIKE THIS SO BUT
 HEY I HAVE A LITTLE TINY QUESTION FOR MY COOL GUYZ.
 
 DOES ANYONE HERE USE A SIMPLY MACHINE FUNCTION SCRIPT? BECAUSE THE
 SCRIPTINGS ARE A LITTLE HARD FOR ME TO UNDERSTAND PLEASE LET ME KNOW GUYS I
 WANT SOMEONE TO TEACH ME.

1) Shouting at us will not encourage a helpful attitude.

2) Neither will calling us your cool guyz.

3) What is a simply machine function script?

If you want someone to teach you PHP you'll probably need to pony up some cash. 
If you want someone to help you while you're learning, show us that you're 
working on it and we'll be happy to help.

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] REQUEST

2013-05-29 Thread Stuart Dallas
Please find your caps-lock key and turn it off!

Also, please include the list when replying, or expect an invoice for my 
consulting services.

On 29 May 2013, at 17:36, Last Hacker Always onpoint lasthack...@gmail.com 
wrote:

 A SIMPLE MACHINE FUNCTION, IS A FORUM SITE SCRIPT FROM THE SIMPLE MACHINE 
 COMPANY BUT UNLIKE OTHER SCRIPTS IT HAS A DIFFERENT TYPE OF SCRIPTING.

If you're having issues with forum software supplied by a company, please 
contact that company.

 AM STILL LEARNING PHP THOUGH BUT ASK ME A QUESTION SO I CAN PROVE MYSELF 
 WORDY. COZ YOU SEEM TO SEE ME NOT WORDY 

At a rough guess you mean worthy, not wordy. Worthy of what? You have nothing 
to prove to me other than the ability to make sense and ask a question that can 
be answered without four tonnes of interpretation.

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/

 On Wed, May 29, 2013 at 5:30 PM, Stuart Dallas stu...@3ft9.com wrote:
 On 29 May 2013, at 17:26, Last Hacker Always onpoint lasthack...@gmail.com 
 wrote:
 
  HEY GUYZ I KNOW, I KNOW THIS IS NOT A PLACE FOR SOMETHING LIKE THIS SO BUT
  HEY I HAVE A LITTLE TINY QUESTION FOR MY COOL GUYZ.
 
  DOES ANYONE HERE USE A SIMPLY MACHINE FUNCTION SCRIPT? BECAUSE THE
  SCRIPTINGS ARE A LITTLE HARD FOR ME TO UNDERSTAND PLEASE LET ME KNOW GUYS I
  WANT SOMEONE TO TEACH ME.
 
 1) Shouting at us will not encourage a helpful attitude.
 
 2) Neither will calling us your cool guyz.
 
 3) What is a simply machine function script?
 
 If you want someone to teach you PHP you'll probably need to pony up some 
 cash. If you want someone to help you while you're learning, show us that 
 you're working on it and we'll be happy to help.
 
 -Stuart
 
 --
 Stuart Dallas
 3ft9 Ltd
 http://3ft9.com/
 


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



Re: [PHP] REQUEST

2013-05-29 Thread Stuart Dallas
On 29 May 2013, at 17:26, Last Hacker Always onpoint lasthack...@gmail.com 
wrote:

 HEY GUYZ I KNOW, I KNOW THIS IS NOT A PLACE FOR SOMETHING LIKE THIS SO BUT
 HEY I HAVE A LITTLE TINY QUESTION FOR MY COOL GUYZ.
 
 DOES ANYONE HERE USE A SIMPLY MACHINE FUNCTION SCRIPT? BECAUSE THE
 SCRIPTINGS ARE A LITTLE HARD FOR ME TO UNDERSTAND PLEASE LET ME KNOW GUYS I
 WANT SOMEONE TO TEACH ME.

SIMPLE MACHINES FORUM, not SIMPLY MACHINE FUNCTION. Funny how a couple of 
incorrect words can turn a simple question in to gobbledygook!

As for your problems with the product, which I'm guessing are legion, try: 
http://support.simplemachines.org/

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/

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



Re: [PHP] REQUEST

2013-05-29 Thread Stuart Dallas
On 29 May 2013, at 18:16, Jim Giner jim.gi...@albanyhandball.com wrote:

 On 5/29/2013 12:51 PM, Stuart Dallas wrote:
 Please find your caps-lock key and turn it off!
 
 Also, please include the list when replying, or expect an invoice for my 
 consulting services.
 
 On 29 May 2013, at 17:36, Last Hacker Always onpoint lasthack...@gmail.com 
 wrote:
 
 A SIMPLE MACHINE FUNCTION, IS A FORUM SITE SCRIPT FROM THE SIMPLE MACHINE 
 COMPANY BUT UNLIKE OTHER SCRIPTS IT HAS A DIFFERENT TYPE OF SCRIPTING.
 
 If you're having issues with forum software supplied by a company, please 
 contact that company.
 
 AM STILL LEARNING PHP THOUGH BUT ASK ME A QUESTION SO I CAN PROVE MYSELF 
 WORDY. COZ YOU SEEM TO SEE ME NOT WORDY
 
 At a rough guess you mean worthy, not wordy. Worthy of what? You have 
 nothing to prove to me other than the ability to make sense and ask a 
 question that can be answered without four tonnes of interpretation.
 
 -Stuart
 
 Frankly I am a little reluctant to respond to someone who names himself 
 hacker.  Makes me worry about what they think they are doing.  If the 
 person hasn't learned enough php yet to be dangerous, why would I want to 
 help him?

Anyone who calls themselves a hacker in a public place such as this does so 
with absolutely no clue what they're talking about, and that's without getting 
in to the hacker vs. cracker debate. However, regardless of that I tend not to 
judge people by the labels they give themselves, they're rarely accurate, 
especially when they think they're the last and/or best of their kind!

[On which note it has to be said he clearly isn't since he couldn't get 
lasthacker@ and had to settle for lasthacker1@. Just sayin'.]

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] Simple objective which always seems to make me think I'm doing it wrong.

2013-05-23 Thread Stuart Dallas
On 23 May 2013, at 15:54, Richard Quadling rquadl...@gmail.com wrote:

 I'm building an XML file.
 
 It is within an OOP structure and is pretty simple.
 
 The method is ...
 
/**
 * Turn an error from the W2GlobalData service into normal document as
 this will make it easier to integrate downstream.
 *
 * @param \SimpleXMLElement $o_XML
 * @return \SimpleXMLElement
 * @todo Build document to be a correct request header with the
 embedded error message.
 */
public function normaliseError($o_XML)
{
$s_XML =  END_XML
 ?xml version=1.0 encoding=UTF-8?
 doc
serviceUK Verification (Edited)/service
searchtext
forename{$this-a_RequestData['forename']}/forename
middlename{$this-a_RequestData['middlename']}/middlename
surname{$this-a_RequestData['surname']}/surname
address1{$this-a_RequestData['address1']}/address1
address2{$this-a_RequestData['address2']}/address2
postcode{$this-a_RequestData['postcode']}/postcode
gender{$this-a_RequestData['gender']}/gender
dob{$this-a_RequestData['dob']}/dob
 
 drivinglicence{$this-a_RequestData['drivinglicence']}/drivinglicence
passport{$this-a_RequestData['passport']}/passport
mpan{$this-a_RequestData['mpan']}/mpan
/searchtext
 
 clientreference{$this-a_RequestData['clientreference']}/clientreference
resultcount/
searchdate/
expiry/
timetaken/
reportemailsent/
error
{$o_XML-error}
/error
 /doc
 END_XML;
return new SimpleXMLElement($s_XML);
}
 
 Nothing particularly difficult to understand, but I just don't like having
 the XML embedded this way.
 
 Ideally, I want a scope aware include function, so I can say _something_
 like ...
 
 $s_XML = require_once __CLASS__ . DIRECTORY_SEPARATOR .
 'normalisedError.xml';
 
 and have the include be aware of the local scope (so $o_XML and $this are
 all happy).
 
 I know I can write a template parser, but I'm just missing an obvious
 solution that isn't fat and doesn't require a massive learning for the
 other devs.
 
 Ideas?


normalisedError.xml:

?php
  return  END_XML
the xml here
END_XML;

Then in your class your require_once line will work. However, use require 
instead of require_once otherwise if the function gets called twice it won't 
work the second time.

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/

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



Re: [PHP] Random

2013-05-23 Thread Stuart Dallas
On 23 May 2013, at 21:51, Last Hacker Always onpoint lasthack...@gmail.com 
wrote:

 Hey I need code for random number 1-30 for my site.

Seriously? Did you try to find out how to do this yourself before asking here?

  http://php.net/rand

And, more generally:

  http://php.net/docs

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] A Good OOP Tutorial/Read?

2013-05-17 Thread Stuart Dallas
On 17 May 2013, at 14:04, Tedd Sperling tedd.sperl...@gmail.com wrote:

 I thank you for your addition, but what you provided did nothing to explain 
 the difference between abstract and interface.
 
 In your example:
 
An abstract Shape with Circle and Square inheriting.
 
 OR
 
An interface Shape with Circle and Square implementing.
 
 Does exactly the same thing -- so where's the difference?

An interface does what it says on the tin: it describes an interface that a 
class can then tell the world it implements.

An abstract class provides functionality as well as an interface description. 
An abstract class cannot be instantiated, it can only be extended.

The logging example given by someone earlier in this thread is the most common 
example given for interfaces. This is where the interface is defined as an API 
for others to implement and/or use which then enables users to pick and choose 
the combination of implementations they want to use based on their requirements 
without needing to change any of the code of either class.

Abstract classes are more likely to be used where there is a set of shared 
functionality that is required by several other classes, but which is not 
functionally useful by itself. An example of this from a current project of 
mine is in aggregating news sources (RSS, scraping, custom formats, etc).

I have an abstract base class which supplies common code to parse and process 
data, and some abstract methods that must be implemented by any class that 
extends it because the abstract class methods may call them. The abstract class 
also contains a static factory method for getting instances of the 
type-specific classes.

With this architecture the users of the abstract class never see the derived 
classes so there's no need to publish an interface for them to use.

Does that help at all?

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] A Good OOP Tutorial/Read?

2013-05-17 Thread Stuart Dallas
On 17 May 2013, at 15:04, Tedd Sperling tedd.sperl...@gmail.com wrote:

 Stuart:
 
 You said:
 
 An interface does what it says on the tin: it describes an interface that a 
 class can then tell the world it implements.
 
 An abstract class provides functionality as well as an interface 
 description. An abstract class cannot be instantiated, it can only be 
 extended.
 
 The logging example given by someone earlier in this thread is the most 
 common example given for interfaces. This is where the interface is defined 
 as an API for others to implement and/or use which then enables users to 
 pick and choose the combination of implementations they want to use based on 
 their requirements without needing to change any of the code of either class.
 
 I understand the stated differences between abstract and interface. I can 
 cite what the differences are, but I don't see the practical application 
 differences. To me there is no difference between an abstract class (without 
 method declarations) and an interface.

That's true, there is no difference if the abstract class has no method 
declarations. But by the same token, that's the difference. It's a syntactical 
difference rather than a conceptual difference.

 However, I view an interface as a statement (a contract) where IF you want 
 someone to use your code you outline the methods you require them to 
 flesh-out in their code  -- but I would like to see a simple example of that.

That's not what an interface is for. I can see how the word is confusing as 
you can call the API of both an interface and a class (abstract and not) an 
interface, but in this context the word interface means the thing itself, not 
an aspect of the thing. An interface is an interface and does nothing more than 
define the API. An abstract class may also have methods and member variables.

 I vaguely get the logging example given by Larry, but I'm not good at 
 abstract thinking -- I need a concrete simple example.
 
 I tried to create a demo where I had a Toaster Class that contained 
 breadNumber() and toastSetting() methods and then created an interface so my 
 students could use the Toaster, but it didn't really hold up as well as I 
 wanted.
 
 So, can anyone give me a simple example where an interface is used so I can 
 easily explain why they are important?

I've knocked up a quick example of the logger use case: 
https://gist.github.com/3ft9/5599326

Note that if I publish that iLogger interface to others and let them provide 
implementations against it people can use their logging classes with my user 
class without any changes. Yes, this could be accomplished by using abstract 
class instead of interface but then it's more than just an interface that 
I'm publishing.

If you're looking for a reason why interfaces exist when abstract classes can 
accomplish the same task you need to talk to someone more academically minded 
than me. For me, interfaces have their place because they specifically limit 
what you're getting from a third party to an API definition, rather than it 
also containing additional code that should be audited before being used in 
your software.

Your toaster example would work, but I think you need to switch from the large 
object to a smaller aspect for it to make sense. Rather than being able to 
replace the whole toaster from their code, imagine if they wanted to replace a 
module within the toaster that determines the pattern to be burnt on to the 
bread. The Toaster class could optionally take an object that implements 
iToasterPattern which the students could supply to change the pattern burnt. To 
enable them to use that you would provide them with the API to the Toaster 
object so they can talk to it, and the iToasterPattern interface so they can 
provide their own implementation of iToasterPattern.

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/

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



Re: [PHP] Problems with array_push?

2013-05-07 Thread Stuart Dallas
Globals being used in a function.


-Stuart

On Tue, May 7, 2013 at 11:06 PM, Jay Blanchard
jay.blanch...@sigmaphinothing.org wrote:

 I know that I must be missing something really ridiculous, but when I 
 print_r these arrays they are empty. I have confirmed that $arrayElement 
 is properly formed, it just seems that array_push is not working. I know 
 I have done this before, but I cannot find my older code. Can someone 
 clear the mud from my eyes?
 $issueDifferently = array();
 $issueProblem = array();
 $issueComment = array();
 function addToArray($id, $namecred, $product, $level, $type, $message) {
 $arrayElement = $id 
 .'|'.$namecred.'|'.$product.'|'.$level.'|'.$type.'|'.$message;
 if('DoDifferently' == $type) {
 array_push($issueDifferently, $arrayElement);
 } elseif ('Problem' == $type){
 array_push($issueProblem, $arrayElement);
 } elseif ('Comments' == $type) {
 array_push($issueComment, $arrayElement);
 }
 }
 print_r($issueDifferently);
 print_r($issueProblem);
 print_r($issueComment);
 -- 
 PHP General Mailing List (http://www.php.net/)
 To unsubscribe, visit: http://www.php.net/unsub.php

Re: [PHP] A little confused

2013-04-23 Thread Stuart Dallas
On 23 Apr 2013, at 11:07, Chris Knipe sav...@savage.za.org wrote:

 $_SESSION['ExpiryDate'] = 2013-04-23;
 echo date_format($_SESSION['ExpiryDate'], D, \t\h\e jS \o\f M Y);
 
 Required Result: Mon, the 23rd of Apr 2013
 
 I get however:  PHP Warning:  date_format() expects parameter 1 to be
 DateTime, integer given in
 
 I've had a look at the date/time function list, but I cannot seem to find
 any way to convert $_SESSION['ExpiryDate'] to an DateTime??

http://php.net/strtotime

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/

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



Re: [PHP] A little confused

2013-04-23 Thread Stuart Dallas
On 23 Apr 2013, at 11:13, Chris Knipe sav...@savage.za.org wrote:

 Yes,
 
 strtotime() does convert the $_SESSION value to a unix epoc, as expected.  
 However, date_format still complains that the argument is a Integer value, 
 instead of a DateTime.

Sorry, I didn't read your email properly and didn't realise you were trying to 
use DateTime objects.

$datetime = new DateTime('2013-04-23');

If all you're doing is formatting the date you'll find using 
date($unix_timestamp) far more efficient than date_format($datetime_object).

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/

 On Tue, Apr 23, 2013 at 12:09 PM, Stuart Dallas stu...@3ft9.com wrote:
 On 23 Apr 2013, at 11:07, Chris Knipe sav...@savage.za.org wrote:
 
  $_SESSION['ExpiryDate'] = 2013-04-23;
  echo date_format($_SESSION['ExpiryDate'], D, \t\h\e jS \o\f M Y);
 
  Required Result: Mon, the 23rd of Apr 2013
 
  I get however:  PHP Warning:  date_format() expects parameter 1 to be
  DateTime, integer given in
 
  I've had a look at the date/time function list, but I cannot seem to find
  any way to convert $_SESSION['ExpiryDate'] to an DateTime??
 
 http://php.net/strtotime
 
 -Stuart
 
 --
 Stuart Dallas
 3ft9 Ltd
 http://3ft9.com/
 
 
 
 -- 
 
 Regards,
 Chris Knipe


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



Re: [PHP] Re: mysql_connect noob question

2013-04-21 Thread Stuart Dallas
On 21 Apr 2013, at 11:20, Glob Design Info i...@globdesign.com wrote:

 I don't understand why mysql_connect should append something in the case of a 
 passed variable but not in the case of a local variable. Unless there is 
 something in the form parsing machinery I am unaware of.

Nothing is being added by anything. When you log in to MySQL it takes both the 
username and the IP address/hostname of the machine you're logging in from and 
looks those up in the users table. This means that user abc logging in on 
localhost becomes abc@localhost. User abc logging in from 192.168.0.187 becomes 
abc@192.168.0.187, and is treated as a completely separate user from 
abc@localhost.

The host comes from your end of the connection. So if you connect on localhost, 
your end is also localhost. If you connect on the IP address or hostname, your 
end is the rDNS lookup of your IP address - note that this may be the same 
address as the one to which you are connecting, but will represent a different 
user to @localhost as far as MySQL is concerned.

The only thing that may be being added to the variable when the form data is 
parsed is slashes, and then only if you have magic_quotes_gpc switched on in 
php.ini. I believe this has already been eliminated as the cause earlier in 
this thread.

The problem you describe is not possible, so I'm betting your description is 
missing something. Given a request with POST parameters of username=abc and 
password=def, the following two lines are equivalent:

  mysql_connect('localhost', 'abc', 'def');
  mysql_connect('localhost', $_POST['username'], $_POST['password']);

If this is exactly what you're doing then something very strange is going on. 
If this is not exactly what you're doing, please narrow your code down to the 
minimum required to demonstrate the problem and post it somewhere like gist.com 
then send us the link.

However, a more important question for me is why you are doing this. You say 
you are aware of the security implications, and that you'll deal with that 
later, but I question how you're going to deal with it. What exactly are you 
developing that requires DB credentials to come from a form on a web page?

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] mysql_connect noob question

2013-04-21 Thread Stuart Dallas
On 21 Apr 2013, at 15:46, tamouse mailing lists tamouse.li...@gmail.com wrote:

 On Sun, Apr 21, 2013 at 9:12 AM, Tedd Sperling tedd.sperl...@gmail.com 
 wrote:
 On Apr 21, 2013, at 9:32 AM, Stuart Dallas stu...@3ft9.com wrote:
 However, a more important question for me is why you are doing this. You 
 say you are aware of the security implications, and that you'll deal with 
 that later, but I question how you're going to deal with it. What exactly 
 are you developing that requires DB credentials to come from a form on a 
 web page?
 
 -Stuart
 
 You and I are asking the same question, but I am afraid the poster is not 
 listening. Instead, he is pursuing a course of action that simply repeats 
 his problem. His focus is on a specific tree instead of the forest. He 
 doesn't want to widen his view.
 
 Until the poster answers our question, I'm afraid our recommendations will 
 fall on deaf ears.
 
 Some days you can help and some days you can't.
 
 Cheers,
 
 tedd
 
 There's the Zen saying When the student is ready, the teacher
 appears. -- which to me says more about those attempting to teach
 than those attempting to learn. :)

To me that means that you won't recognise the teacher until you're ready to 
learn. Teachers are always all around all of us, we just need to be willing to 
learn.

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/

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



Re: [PHP] Re: mysql_connect noob question

2013-04-21 Thread Stuart Dallas
On 21 Apr 2013, at 20:29, Glob Design Info i...@globdesign.com wrote:

 If that is the case then why does logging in with exactly the same params 
 from a UNIX shell work fine? Command line login supposedly would be adding 
 the @localhost or @IP_address as well but isn't. Only when I pass the 
 variables to the script is that happening.

What makes you so sure it's not?

It is. I promise you it is. You're not seeing it because you're not getting an 
error logging in. Do it on the command line again, but use a username that 
doesn't exist and you will see the host it's adding in the error message.

 I am doing exactly as you stated:
 
 mysql_connect('localhost', $_POST['username'], $_POST['password']);
 
 Except that I am first storing $_POST['username'] in local $user and 
 $_POST['password'] in local $pass first and then passing those to 
 mysql_connect. And I am connecting to a remote server, not localhost.

Side note: why are you putting them in other variables first when you're only 
going to use them in that one place? It's a waste of memory. It's a minor 
niggle but it's a pet hate of mine.

 I have already documented both the exact HTML and PHP code in this thread and 
 so see no need to post it elsewhere.

And you're saying that when, instead of using $_POST variables you hard-code 
the username and password in the script it work? I doubt it.

On the command line are you simply doing mysql -u username -p and then 
entering the password? In that case it's using localhost. Is MySQL running on 
the same server as PHP? If so, try changing the remove server name to 
localhost in your script. I'm better a magnum of decent champagne that it 
works.

It's very rare (and pretty stupid) for a web host to allow remote servers to 
connect to their MySQL instances, unless they have a shared MySQL instance for 
all of their customers. Given that you have command line access to the MySQL 
server, and can log in without specifying the host, I'm thinking you're trying 
to use it in a way they don't allow.

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/


 On Apr 21, 2013, at 6:32 AM, Stuart Dallas stu...@3ft9.com wrote:
 
 On 21 Apr 2013, at 11:20, Glob Design Info i...@globdesign.com wrote:
 
 I don't understand why mysql_connect should append something in the case of 
 a passed variable but not in the case of a local variable. Unless there is 
 something in the form parsing machinery I am unaware of.
 
 Nothing is being added by anything. When you log in to MySQL it takes both 
 the username and the IP address/hostname of the machine you're logging in 
 from and looks those up in the users table. This means that user abc logging 
 in on localhost becomes abc@localhost. User abc logging in from 
 192.168.0.187 becomes abc@192.168.0.187, and is treated as a completely 
 separate user from abc@localhost.
 
 The host comes from your end of the connection. So if you connect on 
 localhost, your end is also localhost. If you connect on the IP address or 
 hostname, your end is the rDNS lookup of your IP address - note that this 
 may be the same address as the one to which you are connecting, but will 
 represent a different user to @localhost as far as MySQL is concerned.
 
 The only thing that may be being added to the variable when the form data is 
 parsed is slashes, and then only if you have magic_quotes_gpc switched on in 
 php.ini. I believe this has already been eliminated as the cause earlier in 
 this thread.
 
 The problem you describe is not possible, so I'm betting your description is 
 missing something. Given a request with POST parameters of username=abc and 
 password=def, the following two lines are equivalent:
 
 mysql_connect('localhost', 'abc', 'def');
 mysql_connect('localhost', $_POST['username'], $_POST['password']);
 
 If this is exactly what you're doing then something very strange is going 
 on. If this is not exactly what you're doing, please narrow your code down 
 to the minimum required to demonstrate the problem and post it somewhere 
 like gist.com then send us the link.
 
 However, a more important question for me is why you are doing this. You say 
 you are aware of the security implications, and that you'll deal with that 
 later, but I question how you're going to deal with it. What exactly are 
 you developing that requires DB credentials to come from a form on a web 
 page?
 
 -Stuart
 
 -- 
 Stuart Dallas
 3ft9 Ltd
 http://3ft9.com/


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



Re: [PHP] mysql_connect noob question

2013-04-21 Thread Stuart Dallas
On 21 Apr 2013, at 22:43, Glob Design Info i...@globdesign.com wrote:

 Except that a) I already have my form and script done, b) don't have time to 
 learn phpMyAdmin, c) want to know why the script doesn't work as-is.

You have multiple database users who will need to do this, or just one database 
user? If just one then it makes more sense to hard-code the username and 
password in the script and use something else like HTTP authentication to 
protect the script from unauthorised users. Giving internal database 
credentials to external users is generally a really really bad idea.

Also, consider the time it will take to learn phpMyAdmin (it's simple - 
install, use) against the time it's taking to get your script working. The time 
you've spent developing the script is already sunk so there's no point sinking 
more in an effort to make that already-sunk time worthwhile.

Also, how well tested is your script? I don't know but I can say with absolute 
confidence that phpMyAdmin has been tested far more.

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/


 On Apr 21, 2013, at 12:46 PM, David OBrien dgobr...@gmail.com wrote:
 
 Not meaning to beat the proverbial dead horse
 
 I am developing a web portal that has to display the tables in the DB via a 
 form/script. The web page has a login with user and password. Right now I am 
 just trying to connect.
 This for a commercial app - the client wants both an API connect via PHP and 
 a web portal in which they can login from a web page and view the tables in 
 the DB. Right now I am just trying to get the form/PHP interaction to work.
 
 This sounds like a very good use statement for http://www.phpmyadmin.net/
 
 You can set it for http auth in the config ... they enter a mysql username 
 and password and they only see the databases and tables you want them to see
 
 Might be easier than reinventing the wheel and stressing all of us :)


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



Re: [PHP] mysql_connect noob question

2013-04-21 Thread Stuart Dallas
On 21 Apr 2013, at 23:01, Glob Design Info i...@globdesign.com wrote:

 I should note my user name in this case *is* an email address, however the 
 dots in that address are *not* being converted to underscores as mentioned 
 (at least not visibly).

This could be the culprit. Try using a username without an @ in it.

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/

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



Re: [PHP] Re: mysql_connect noob question

2013-04-21 Thread Stuart Dallas
On 22 Apr 2013, at 00:14, Glob Design Info i...@globdesign.com wrote:

 However, I may have found the problem: the port. As a security measure the 
 BaaS provider appears to have changed MySQL to a non-standard port. 
 So
 
 On the command line:
 
 sudo mysql --host=instance43490.db.xeround.com --port=8904 --user=realuser 
 --password=realpass
 
 WORKS perfectly - entering the MySQL Monitor.
 
 However, on the same host, same command line:
 
 sudo mysql --host=instance43490.db.xeround.com:8904 --user=realuser 
 --password=realpass

The MySQL command line doesn't support putting the port number there, but the 
first parameter of mysql_connect does. If this is the problem then it cannot be 
true that replacing the variables you were taking from $_POST with literal 
strings for the username and password worked, as I asked earlier to which you 
said it does.

Replace the first parameter to your mysql_connect call with 
'instance43490.db.xeround.com:8904' and it will probably work.

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/


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



Re: [PHP] mysql_connect noob question

2013-04-21 Thread Stuart Dallas
On 22 Apr 2013, at 00:16, Glob Design Info i...@globdesign.com wrote:

 Except that I want to use my script and form - precisely because I have 
 already sunk time into it. I'm not going to sink *more* time into something 
 that could potentially create *another* problem.

The idea of sunk time is that it's already been spent, so spending more in an 
attempt to justify the fact you spent it (i.e. to make it work because it's 
already cost you time/money) is daft when you discover a pre-built solution. To 
refuse to investigate it due to a refusal to throw the result of that time away 
is pure stubbornness, a normally expensive path to walk.

 I want the script to work - as it should if PHP is 1/2 what it's cracked up 
 to be. If not, I'll have to look for another solution (like C which I have 
 been using for 20 years).

Am I supposed to care whether you use PHP or not? But sure, let me know how 
much time it takes you to write a web-based MySQL management tool in C. In the 
meantime I'll install phpMyAdmin in five minutes, show it to your client, and 
probably not even charge them for it.

C? Really? Why not assembly language, since the relationship between PHP and C 
is the same as that between assembly and C? Hell, take it all the way to punch 
cards if you want

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] mysql_connect noob question

2013-04-21 Thread Stuart Dallas
On 22 Apr 2013, at 00:35, Glob Design Info i...@globdesign.com wrote:

 A very complex solution that takes time to learn, configure, and install, vs. 
 a single file I can toss on the server.
 
 Over-engineering is what is daft.

Building your house by making your own bricks is daft. Using bricks somebody 
else has built is not.

Or, if it makes more sense substitute a car and inventing wheels.

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/

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



Re: [PHP] mysql_connect noob question

2013-04-21 Thread Stuart Dallas
On 22 Apr 2013, at 00:36, Glob Design Info i...@globdesign.com wrote:

 Ever heard of the MySQL C Connector?
 
 http://www.karlkraft.com/index.php/2010/06/02/mysql-and-objective-c/

That would be Objective-C, not C.

I have used libmysqlclient extensively, but there's a lot more to a MySQL 
management tool than connecting to a MySQL server and running queries.

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/

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



Re: [PHP] mysql_connect noob question

2013-04-20 Thread Stuart Dallas
On 20 Apr 2013, at 16:25, Jim Giner jim.gi...@albanyhandball.com wrote:

 Why are you allowing anyone to connect to your database from a form?
 
 A little OT, but...
 What do you mean by this question?  How do you check someone's credentials if 
 not by connecting to a db to verify the login?  Cause I'm doing the same kind 
 of thing all over the place.  With good practices on validation and such 
 before doing my query of course.

I'm pretty sure that's not what tedd meant. The code is logging in to the 
database server using the username and password from the form. There are very 
few legitimate reasons to be doing this, so the question is well worth asking.

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/

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



Re: [PHP] timezone

2013-04-15 Thread Stuart Dallas
On Mon, Apr 15, 2013 at 10:06 PM, Larry Martell 
la...@software-horizons.com=mailto:la...@software-horizons.com; wrote:
On Mon, Apr 15, 2013 at 2:57 PM, Maciek Sokolewicz
 wrote:
 On 15-4-2013 22:12, Larry Martell wrote:

 On Mon, Apr 15, 2013 at 1:59 PM, Lester Caine  wrote:

 Larry Martell wrote:


 No, I don't - this app runs in different locations all over the world.


 I found some code at php.net that does this:

 date_default_timezone_set(@date_default_timezone_get());
 $deftz = date('T');

 And that is working for me and giving me what I need.



 But do you ACTUALLY know what time zone is stored IN the database? What
 if
 te database was from another server?

 One of the 'standards' adopted when working world wide is to ensure what
 is
 stored IN the database is always UTC based. So you can always compare
 times
 on the same consistent base. The only time you need the offset is to
 display
 a local time, and that is either the time local to the server, or the
 time
 local to the client.

 The 'default' timezone is not necessarily the right one in either case ;)


 I misspoke - the data in the db is in UTC. This is used to covert the
 time of day on the server to the user's local timezone.


 You are aware that the code you used is really bad practice, right? You're
 basically hiding the error no default timezone set by getting the default
 timezone, which returns an error; surpressing that error, providing the
 date_default_timezone_set function with the default value of
 date_default_timezone_get if none is defined (which there should!!), being
 UTC.

 So in short, you're saying set the default timezone to the default timezone
 if no timezone is set, which I know there is not. That's very hard to
 understand for future programmers reading your code. Why not just set
 date_default_timezone_set('UTC'). It's clear, resolves the warning and
 works perfectly, instead of relying on vague defaults somewhere, in the hope
 they're set right.

 On a sidenote; the reason why your original fix did not work:
 $deftz = date.timezone;
 Is because date.timezone is an ini setting. Not valid PHP code. And the
 error actually tells you you need to SET date.timezone, not set a variable
 TO the ini setting. In other words, you wanted date.timezone = UTC instead
 of $tz = date.timezone (which makes no sense anyway)

But UCT is not the timezone. When this app runs in New Mexico (where I
am) it's Mountain time. When it runs in NY it's Eastern. When it runs
in Tokyo it's JST, etc. The user has the option of setting the
timezone all times are displayed in. They can select any timezone
regardless of where they are. The app displays the last update time in
the user selected TZ. So I have to convert the time I get from the
server to th...@lsces.co.uk@gmail.com@gmail.com

You don't need to convert anything! Store as unix timestamps, and call 
date_default_timezone_set with the user's selection before you use any other 
date-related functions and everything will just work. This is not as hard as 
everyone seems to think!​​​-Stuart


​—
Sent from my leaf 
blo...@gmail.com@lsces.co.uk@gmail.com​@lsces.co.uk@gmail.com

Re: [PHP] JPGraph new GanttBar ... bar caption on left, right side

2013-04-09 Thread Stuart Dallas
On 9 Apr 2013, at 11:23, Meli Marco marco.m...@gknsintermetals.com wrote:

 Hello,
 I would like to know how to print captions (normally used for percentage
 completion) on the left (start date) and right (end date) side of the
 bar, instead just on the right.
 Below the method for bar creation: 
 $planbar = new GanttBar ($c,'', $aData[PLANSTART][$y],
 $aData[PLANENDE][$y], ( chr(32).$aData[PLANSTART][$y].' -
 '.$aData[PLANENDE][$y] ) );
 Thanks.
 Marco.

This is a mailing list for PHP, not things written using PHP. You want a 
mailing list for JPGraph.

https://groups.google.com/forum/?hl=en-GB#!forum/jpgraph

Would you email the Oxford English Dictionary for help with using the English 
language?

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/

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



Re: [PHP] Set process custom identifier

2013-04-02 Thread Stuart Dallas
On 2 Apr 2013, at 14:50, Sorin Badea sorin.bade...@gmail.com wrote:

 I don't want to wait for it and surely I don't want to safe that pid in
 same place. I just want to use `ps` with a pattern to return my forked
 process.

Storing the PID of a process you need to monitor is the established method, and 
is certainly the most reliable. Why can't you use the PID as the pattern to 
look for? If there's a reason then please explain it as that will help us 
assist you. If there's no reason then I don't understand why you're trying to 
over-complicate it.

If you're just wanting to monitor it from the process that forked it then you 
don't need to store the PID anywhere other than a variable, and you don't need 
to wait for it.

If you absolutely must do this then the only way is via an extension such as 
proctitle: http://php.net/setproctitle

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/

 On Tue, Apr 2, 2013 at 4:48 PM, Matijn Woudt tijn...@gmail.com wrote:
 
 Hi,
 
 pcntl_fork will return the pid of the fork, what is wrong with using that
 pid to identify the process?
 
 - Matijn
 
 
 On Tue, Apr 2, 2013 at 3:38 PM, Sorin Badea sorin.bade...@gmail.comwrote:
 
 Hi guys,
 I'm trying to find a solution to identify a php process that is spawned
 with pnctl_fork. I've tried to set a custom gid but this isn't viable
 because I have to run the parent proc with administrative permissions. I
 need to do this native without any pecl extensions.
 Is there a way to do this ?
 
 Regards,
 --
 Badea Sorin (unu.sorin)
 sorin.bade...@gmail.com
 unu_so...@yahoo.com
 
 
 
 
 
 -- 
 Badea Sorin (unu.sorin)
 sorin.bade...@gmail.com
 unu_so...@yahoo.com
 Pagina personala:
 http://badeasorin.com



Re: [PHP] Set process custom identifier

2013-04-02 Thread Stuart Dallas
On 2 Apr 2013, at 15:11, Sorin Badea sorin.bade...@gmail.com wrote:

 I'm trying to implement a standalone threading component, and in current 
 implementation I'm using `popen` to run a separate process with some 
 arguments that I'm using to identify them (for example `php 
 some_dummy_file.php -thread_id=some_hash`). This way when I'm trying to see 
 which are my threads I don't have to check every stored pid and see if they 
 are still up. 

Personally I would be storing the PIDs somewhere, but that's just me.

The other way you could probably do it is by having the main script (the one 
executed on the command line) named something unique, the use dirname(__FILE__) 
to get that name from within that script. Then parse the PS output for that 
script name. You may need to exclude lines containing bash or similar depending 
on how the script was executed.

Seriously, PIDs are the way to go! Based on what you've put above you already 
have some sort of storage that's tracking threads (they have a hash), so why 
not add the PID to that? Or, even better, use the PID as that hash?

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/


 On Tue, Apr 2, 2013 at 5:02 PM, Stuart Dallas stu...@3ft9.com wrote:
 On 2 Apr 2013, at 14:50, Sorin Badea sorin.bade...@gmail.com wrote:
 
 I don't want to wait for it and surely I don't want to safe that pid in
 same place. I just want to use `ps` with a pattern to return my forked
 process.
 
 Storing the PID of a process you need to monitor is the established method, 
 and is certainly the most reliable. Why can't you use the PID as the pattern 
 to look for? If there's a reason then please explain it as that will help us 
 assist you. If there's no reason then I don't understand why you're trying to 
 over-complicate it.
 
 If you're just wanting to monitor it from the process that forked it then you 
 don't need to store the PID anywhere other than a variable, and you don't 
 need to wait for it.
 
 If you absolutely must do this then the only way is via an extension such as 
 proctitle: http://php.net/setproctitle
 
 -Stuart
 
 -- 
 Stuart Dallas
 3ft9 Ltd
 http://3ft9.com/
 
 On Tue, Apr 2, 2013 at 4:48 PM, Matijn Woudt tijn...@gmail.com wrote:
 
 Hi,
 
 pcntl_fork will return the pid of the fork, what is wrong with using that
 pid to identify the process?
 
 - Matijn
 
 
 On Tue, Apr 2, 2013 at 3:38 PM, Sorin Badea sorin.bade...@gmail.comwrote:
 
 Hi guys,
 I'm trying to find a solution to identify a php process that is spawned
 with pnctl_fork. I've tried to set a custom gid but this isn't viable
 because I have to run the parent proc with administrative permissions. I
 need to do this native without any pecl extensions.
 Is there a way to do this ?
 
 Regards,
 --
 Badea Sorin (unu.sorin)
 sorin.bade...@gmail.com
 unu_so...@yahoo.com
 
 
 
 
 
 -- 
 Badea Sorin (unu.sorin)
 sorin.bade...@gmail.com
 unu_so...@yahoo.com
 Pagina personala:
 http://badeasorin.com
 
 
 
 
 -- 
 Badea Sorin (unu.sorin)
 sorin.bade...@gmail.com
 unu_so...@yahoo.com
 Pagina personala:
 http://badeasorin.com



Re: [PHP] target question

2013-03-25 Thread Stuart Dallas
On 25 Mar 2013, at 16:35, Ford, Mike m.f...@leedsmet.ac.uk wrote:

 -Original Message-
 From: Paul M Foster [mailto:pa...@quillandmouse.com]
 Sent: 25 March 2013 16:09
 
 This behavior of the browser actually conforms to the standard as
 far as
 I know. The target attribute is attached only to the a tag,
 according to w3schools.com
 
 Actually, the W3C HTML 4.01 Recommendation says:
 
target = frame-target [CI]
 
This attribute specifies the name of a frame where a document
is to be opened.
 
By assigning a name to a frame via the name attribute, authors
can refer to it as the target of links defined by other
elements. The target attribute may be set for elements that
create links (A, LINK), image maps (AREA), and forms (FORM).
 
 In the current HTML5 draft, target is explicitly a permitted
 attribute of the form tag -- although I believe it was originally
 marked as deprecated.

Indeed. In fact w3schools.com is known to be a very unreliable source of 
information these days. My advice would be to avoid it at all costs!

http://w3fools.com/

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/

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



Re: [PHP] application level variable file

2013-03-22 Thread Stuart Dallas
On 22 Mar 2013, at 14:22, inu...@gmail.com wrote:

 I am very new to the PHP application and would like to create a new project.
 I would like to have a file to save my application level variable and
 functions.
 
 I would like to know does PHP have any default file name and file path for
 this file like Web.config file for ASP.Net and Application.cfm for
 ColdFusion?

No. Without the use of extensions, PHP follows a shared-nothing architecture.

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/

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



Re: [PHP] significance of escape character in string in PHP

2013-03-18 Thread Stuart Dallas
On 18 Mar 2013, at 15:08, Matijn Woudt tijn...@gmail.com wrote:

 On Mon, Mar 18, 2013 at 2:19 PM, Sebastian Krebs krebs@gmail.comwrote:
 
 2013/3/18 Ken Robinson kenrb...@rbnsn.com
 
 
 
 On 18.03.2013 09:10, Norah Jones wrote:
 
 I am having an string which was have few ' (single quote) and few 
 (double quotes) and was not able to insert into the mysql database. I
 have replaced them with \' and \ and everything is fine.
 Though this are fine now but don't understand the working and I could
 have missed few corner cases also. Please suggest the working and also
 if there is some better way to achieve this.
 
 
 You should be using either mysql_real_escape_string or
 mysqli_real_escape_string (preferably the later) depending on how you're
 accessing the DB.
 
 
 You shouldn't use ext/mysql at all!
 Use prepared statements with PDO_MYSQL or MySQLi
 
 
 And here comes the flame war again...

There's no need for it to be a flame war. The mysql extension is officially not 
recommended for writing new code, so anyone using it should be informed of this 
fact. I think it should consist of more than don't use that, but at the very 
least that should cause the questioner to want to know why.

http://php.net/intro.mysql

This issue is problematic for exactly the reason Norah demonstrates above: 
it's working. Great that in this case it hasn't been left at that, but most 
will see it work and think they've got it right. I believe the community has 
a responsibility to give good advice and recommend best practices as well as 
directly addressing people's problems, so it's right that things like this get 
repeatedly pointed out where appropriate.

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] actually HTML again; resizeing images

2013-03-17 Thread Stuart Dallas
On 17 Mar 2013, at 13:22, georg georg.chamb...@telia.com wrote:

 Anyone knows a good reading about how and when images displayd with HTML tags 
 are 
 re-sized ?

Not entirely sure what you mean, but a downloaded image will be resized when it 
needs to be shown in different dimensions to the actual image, whether that's 
due to width and height attributes on an img tag, or CSS styles, or whatever.

The specific algorithm used (which I'm guessing is what you mean by how is up 
to the browser and cannot be controlled.

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/

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



Re: [PHP] Accessing Files Outside the Web Root

2013-03-15 Thread Stuart Dallas
On 15 Mar 2013, at 13:11, Dale H. Cook webmas...@plymouthcolony.net wrote:

 At 09:44 PM 3/14/2013, tamouse mailing lists wrote:
 
 If you are delivering files to a (human) user via their browser, by whatever 
 mechanism, that means someone can write a script to scrape them.
 
 That script, however, would have to be running on my host system in order to 
 access the script which actually delivers the file, as the latter script is 
 located outside of the web root.

If a browser can get at it then a spider can get at it. All this talk of the 
web root is daft. Unless your site is being specifically targeted (highly 
unlikely) then it automated systems that are downloading your content and 
offering it on other websites. The only way such a system can discover content 
is if it's linked from somewhere. Whether that link uses a script that inside 
or outside the web root is completely irrelevant.

Since copies of the content is now out there, anything you add now to protect 
your content is not going to get it back. You'll have to pursue legal avenues 
to prevent it being made available, and that's usually prohibitively expensive.

Based on your description of your users, you have the age-old dilemma of 
balancing ease of use and security. The more you try to protect the content 
from these spiders the harder you'll make it for users.

Here's what I'd do: make sure your details and your website info are plastered 
across every page of the PDF files. Make sure that where copies exist it's 
going to be obvious where the content came from. It sounds like you don't 
charge for the content (this problem wouldn't exist if you did), so you have 
nothing financial to gain from controlling these external copies, other than 
wanting it to be clear from whence it came and where to find more.

At the end of the day the question is this: would you rather control access to 
your creation (in which case charge a nominal fee for it), or would you prefer 
that it (and your name/cause) gets in to as many hands as possible. As a 
professional photographer I made the latter choice a long time ago and haven't 
looked back since.

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] rather a HTML Q; however 2-FRAME

2013-03-15 Thread Stuart Dallas
On 15 Mar 2013, at 13:34, georg georg.chamb...@telia.com wrote:

 To make things clearer. I already have the frames since earlier and
 want to fill then again, so it is not at the initial filling of the frames
 at creation.

You want one action to change the content in two frames? For that you'll need 
to use Javascript, or reload the parent frame, neither of which involve PHP.

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] Introduction ... !

2013-03-02 Thread Stuart Dallas
On 2 Mar 2013, at 16:25, Jay Blanchard jay.blanch...@sigmaphinothing.org 
wrote:

 [snip]
 I've been on this list since the early 2000's.  I used to participate a lot
 back then but then took up a non-php related job and I stopped paying
 attention to the list.  I've been working again with php for the past 4.5
 years but choose to just monitor the list and haven't participated much.
  Perhaps I should participate more.  But yeah, I've been here like 12 years
 or so.  God I'm getting old.
 [/snip]
 No - Tedd is old. The rest of us are just Spring chickens.

Speak for yourself, I'm an autumn turkey!

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/

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



Re: [PHP] phpinfo()

2013-02-20 Thread Stuart Dallas
On 20 Feb 2013, at 19:23, John Taylor-Johnston 
john.taylor-johns...@cegepsherbrooke.qc.ca wrote:

 
 
 Design in Motion Webdesign wrote:
 
 
 
 John Taylor-Johnston john.taylor-johns...@cegepsherbrooke.qc.ca wrote:
 
 I cannot find button2 in phpinfo() when I click it. I was hoping to
 find
 a $_POST[button2] value.
 What am I doing wrong?
 
 input type=button name=button2 id=button2 value=Print Mode
 onclick=formSubmit()
 
 I really wanted to use a button to pass a different condition than a
 input type=submit
 
 Use a different value or name on the input type=submit/ button. Don't 
 use JavaScript to trigger the form like that. Its not necessary and will 
 bite you in the ass if ypu get a visitor who browses without JavaScript, 
 which can include security aware users, blind users, etc
 Thanks,
 Ash
 http://www.ashleysheridan.co.uk
 
 -- 
 PHP General Mailing List (http://www.php.net/)
 To unsubscribe, visit: http://www.php.net/unsub.php
 
 
 Try $_POST['button2']
 
 Best regards.
 Steven
 
 
 $_POST['button2'] does not exist. I'm using radio to get aorund it for now. A 
 button would have been cleaner.

You were given the answer, did you not try it?

Starting with the code in your original post:

1) Change the type to submit.
2) Remove the onclick.
3) Job done!

-Stuart

-- 
Sent from my leaf blower
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] Undefined Variables

2013-02-14 Thread Stuart Dallas
Sorry for the top post!

I don't know numbers, but my gut instinct is that the cycles wasted raising the 
notice (it gets raised even if it goes nowhere so turning display and log 
doesn't remove the hit completely) are better spent executing defensive code.

There is no reason, ever, that production code should raise notices about which 
you don't care. If PHP is telling you something might be wrong, something might 
be wrong! And if you're investigating the code already, figure out what's 
happening and deal with it properly.

Only lazy and/or developers ignore notices. If you're one of them and this 
statement offends you, you probably know it's right!

-Stuart

-- 
Sent from my leaf blower

On 14 Feb 2013, at 18:04, Roman Gelfand rgelfa...@gmail.com wrote:

 Is there a performance hit when a variable is undefined? or, perhaps,
 aside from the obvious uncontrolled conditions, are there other
 impacts?
 
 Thanks in advance
 
 -- 
 PHP General Mailing List (http://www.php.net/)
 To unsubscribe, visit: http://www.php.net/unsub.php
 

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



Re: [PHP] Undefined Variables

2013-02-14 Thread Stuart Dallas
On 14 Feb 2013, at 20:57, Al n...@ridersite.org wrote:
 On 2/14/2013 1:54 PM, Stuart Dallas wrote:
 Sorry for the top post!
 
 I don't know numbers, but my gut instinct is that the cycles wasted raising 
 the notice (it gets raised even if it goes nowhere so turning display and 
 log doesn't remove the hit completely) are better spent executing defensive 
 code.
 
 There is no reason, ever, that production code should raise notices about 
 which you don't care. If PHP is telling you something might be wrong, 
 something might be wrong! And if you're investigating the code already, 
 figure out what's happening and deal with it properly.
 
 Only lazy and/or developers ignore notices. If you're one of them and this 
 statement offends you, you probably know it's right!
 
 -Stuart
 
 
 I agree with Stuart.
 
 To minimize the overhead of testing every possible undefined variable with 
 isset(), I assign them at the top of the page which uses them. e.g.,
 
 $userInstrHtmlSizeWarning = false;
 $currentUserRecArray = array();
 if(!isset($_SESSION['pwPassed']))$_SESSION['pwPassed'] = false;
 
 I also have this snippet at the top of my app config file.
 
 if(true){ // TRUE for debug only
  ini_set(display_errors, on); //use off if users will see them
  error_reporting(E_ALL)
  $error_reporting = 'span style=color:redError display and logging 
 on/span  ';
 }
 else $error_reporting=null;
 
 I put this at a convenient place on the page so I don't forget to turn off 
 the error reporting when the code goes live.
 
 if($error_reporting) echo $error_reporting;

I've used the following method for accessing elements of the global arrays for 
a long time. It saves a lot of typing!

http://stut.net/2011/04/12/php-snippet-array-element-access/

Note that if you're using PHP5 you should remove the  before the $a in the 
function definition.

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/

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



Re: [PHP] Apache to serve RESTful requests using PHP

2013-02-11 Thread Stuart Dallas
On 10 Feb 2013, at 06:57, AmirBehzad Eslami behzad.esl...@gmail.com wrote:

 Stuart, thanks for your detailed response.
 
   I find it unlikely that Apache is your bottleneck,
  especially with a service involving MySQL. 
  How have you come to this conclusion?
 
 Apache is the entry-point to our service, and I did a 
 benchmark with AB to see how it can handle concurrent
 requests in a timely fashion.  After a number of 50 concurrent
 requests, the average time per request reached from less than
 a second to 5 seconds.

I *strongly* recommend you try the same test with nginx. Unless this is due to 
the way your code works I'm confident you'll see this effect disappear!

  As far as keep-alive goes, how frequently will individual
  clients be accessing the service?
 
 There are only a few clients that call the service.  These clients
 are PHP-driven web pages. Each page has its own unique ClickID
 and a set of other unique parameters per user visit.  These pages send these 
 parameters to the service using php-curl, and expect a generated
 response to be returned.  That's why I'm saying each request and
 response is unique.
 
 Whenever a user visits a web-page, there would be a call to the
 web-service.  At the moment, we don't know number of concurrent
 visits.  We're looking for a way to figure that out in Apache.
 
 Is there a way to see if the requests are using the previously keep-alived
 http channel?  Because same client will send requests to the service,
 and I'm curious to know if the Apache will allocate the already-opened
 channel, or will create a new one?

If it's making one request to your service per page request, keep-alive is 
pointless as it won't be able to reuse the connection. In this instance I would 
turn keep-alive off.

  If you are using joins to pull in extra data (i.e. IDs to a name
  or similar) look at using Memcache for those, but make sure
  that when they're updated in the DB they're also updated in Memcache. 
 
 Memcache or Redis, I'm going to add a caching layer between
 MySQL and PHP, to store the de-normilized data.

For simple caching I'd recommend Memcache over Redis, purely because Redis is 
more complex due to its support for sets, queues and other very useful stuff. 
The only reason I'd use Redis for simple caching is because it can periodically 
flush the cache to disk so if it has to restart it can start with a primed 
cache. However, in most cases that is not a huge advantage.

If each request and response is unique you need to be careful about what you 
choose to cache such that you don't incur caching costs without reaping 
benefits that make it worthwhile.

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/

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



Re: [PHP] Apache to serve RESTful requests using PHP

2013-02-09 Thread Stuart Dallas
On 9 Feb 2013, at 16:42, AmirBehzad Eslami behzad.esl...@gmail.com wrote:

 We're a developing a PHP-driven web service with a RESTful API,
 and we have a dedicated Linux server for that with 6GB of RAM.
 
 Since this service will be used by many clients in a concurrent
 manner,  we'll face with a high-load on our web-server.  But
 web-services are different from web pages, for instance they
 don't include images, or in this case we only serve JSON.
 
 I'm wondering what are the recommended configurations for
 the Apache web-server in these situations?  Should we disable
 keep-avlie?  What about other directives?  Apache is our
 bottleneck, and we're trying to optimize it. Should we use nginx instead?

I find it unlikely that Apache is your bottleneck, especially with a service 
involving MySQL. How have you come to this conclusion?

I would personally recommend nginx + php-fpm over Apache + mod-php every time. 
The pre-request memory footprint is massively reduced and I've seen nothing but 
upsides since migrating most of my client's sites, and my own.

As far as keep-alive goes, how frequently will individual clients be accessing 
the service? Are they likely to be using client software that supports 
keep-alive? You basically want to weigh up the cost of potentially keeping the 
connection open against the likelihood that the majority of clients will make 
use of it for multiple requests. My gut reaction based on your description 
would be to set it to 1 as suggested by Bastien so it has minimal impact while 
still allowing clients who support it to be that bit more efficient.

Focus your optimisation efforts on MySQL. If the bulk of requests will be reads 
you'll benefit from read-only slaves. If the data can be neatly sharded then 
that's definitely worth investigating. When writing data get it as close to the 
structure that will be needed when reading, including de-normalising it if 
necessary.

If you are using joins to pull in extra data (i.e. IDs to a name or similar) 
look at using Memcache for those, but make sure that when they're updated in 
the DB they're also updated in Memcache. Do the DB query, get all the Memcache 
keys you need a do a multi-get request. The other way to do this is to 
de-normalise as discussed above, but that makes updating the data very 
expensive (as every row needs to be updated). In my tests breaking it out to a 
Memcache instance was far more efficient.

At the end of the day there will always be things you can do that are only 
applicable to your service, but the general rule is to need to do as little as 
possible to serve the data when it's requested, shifting as much of the work as 
possible to when it is written (assuming a mostly-read service).

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/

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



Re: [PHP] Is header() malfunction due to PHP5.3.3 - 5.4.11 transition?

2013-02-09 Thread Stuart Dallas
On 9 Feb 2013, at 19:00, Jonathan Eagle jeo...@attglobal.net wrote:

 I'm having a problem with a very straightforward routine; one that works
 in one PHP installation but not on the other. The only difference that I
 can see between the working version and the non-working version is that
 the one that doesn't work is running on the later version of PHP. The
 following basic log-in routine works fine on my personal development
 server, running PHP 5.3.3, but doesn't work on the production server,
 hosted by 11.com that is running PHP 5.4.11.
 
 ?php
 require_once('../includes/initialize.php');  //== $session object
   init'd and set to false
 
 if(!$session-is_logged_in())
 {
header(Location: login.php);
exit;
 }
 ?
 
 login.php is in the same directory as the file that has this code at the
 very top of the file.
 
 Everything works as expected right up to the 'exit;' line.
  * $session-is_logged_in() is false
  * when tested immediately after the 'header(Loc...)' statement,
   'headers_sent()' reports true.
  * no error messages result (like: 'header already sent', etc.)
 
 Instead of the program flow moving to 'login.php', the URL indicates
 that the destination is the original file, except that the file is empty
 - zero bytes.  I've tried accessing the routine via three different
 computers, all running different MS operating systems from XP to Win7
 and they all behave identically.  The behavior is also consistent
 between browsers (i.e., FireFox, Chrome, and Windows Explorer).
 
 I also did a $_SERVER variable dump immediately before and after the
 'header(...' line, expecting to see a difference in at least one of the
 'REDIRECT_*' elements, but both outputs where identical with the
 exception that the $_SERVER ouput after the header statement was
 executed was missing the following line:
 
  [HTTP_CACHE_CONTROL]= max-age=0
 
 It doesn't look relevant to me, but I include it to be thorough.
 
 I looked through the PHP changelog pages, but I don't see mention of the
 problem (of course, that might just be due to my ignorance).  The ISP
 for the production version of PHP indicated that I should come here for
 help, so here I am.
 
 Can anyone shed some light as to what is (or might be) going on?
 
 Any help or guidance that can be offered will be greatly appreciated.


Check the output buffering settings. You say no errors are displayed, but are 
you sure that errors are set to be displayed?

You mention the headers_sent() result immediately after the header() function 
call is true. If the header() function call had worked it would not be true, it 
would be false. You have output being sent to the client before that header() 
function call.

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/

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



Re: [PHP] Is header() malfunction due to PHP5.3.3 - 5.4.11 transition?

2013-02-09 Thread Stuart Dallas
On 9 Feb 2013, at 21:00, Jonathan Eagle jeo...@attglobal.net wrote:

 Stuart,
 
 Thanks for getting back to me  you were right - I had misread the
 headers_sent() Return Value statement.  When I went back and tested
 it turns out that the 'initialize' routine is somehow prematurely
 sending output out.   So, now I have to figure out which of the ten
 called routines and classes/objects in the initialize script are the
 culprit.
 
 I greatly appreciate the assistance,

The error message that should be being displayed tells you where output was 
started. Check your error_reporting and display_errors settings to make sure 
errors are being displayed and you should be able to save a lot of time.

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/


 On 2/9/2013 2:34 PM, Stuart Dallas wrote:
 On 9 Feb 2013, at 19:00, Jonathan Eagle jeo...@attglobal.net wrote:
 
 I'm having a problem with a very straightforward routine; one that works
 in one PHP installation but not on the other. The only difference that I
 can see between the working version and the non-working version is that
 the one that doesn't work is running on the later version of PHP. The
 following basic log-in routine works fine on my personal development
 server, running PHP 5.3.3, but doesn't work on the production server,
 hosted by 11.com that is running PHP 5.4.11.
 
 ?php
 require_once('../includes/initialize.php');  //== $session object
  init'd and set to false
 
 if(!$session-is_logged_in())
 {
   header(Location: login.php);
   exit;
 }
 ?
 
 login.php is in the same directory as the file that has this code at the
 very top of the file.
 
 Everything works as expected right up to the 'exit;' line.
 * $session-is_logged_in() is false
 * when tested immediately after the 'header(Loc...)' statement,
  'headers_sent()' reports true.
 * no error messages result (like: 'header already sent', etc.)
 
 Instead of the program flow moving to 'login.php', the URL indicates
 that the destination is the original file, except that the file is empty
 - zero bytes.  I've tried accessing the routine via three different
 computers, all running different MS operating systems from XP to Win7
 and they all behave identically.  The behavior is also consistent
 between browsers (i.e., FireFox, Chrome, and Windows Explorer).
 
 I also did a $_SERVER variable dump immediately before and after the
 'header(...' line, expecting to see a difference in at least one of the
 'REDIRECT_*' elements, but both outputs where identical with the
 exception that the $_SERVER ouput after the header statement was
 executed was missing the following line:
 
 [HTTP_CACHE_CONTROL]= max-age=0
 
 It doesn't look relevant to me, but I include it to be thorough.
 
 I looked through the PHP changelog pages, but I don't see mention of the
 problem (of course, that might just be due to my ignorance).  The ISP
 for the production version of PHP indicated that I should come here for
 help, so here I am.
 
 Can anyone shed some light as to what is (or might be) going on?
 
 Any help or guidance that can be offered will be greatly appreciated.
 
 
 Check the output buffering settings. You say no errors are displayed, but 
 are you sure that errors are set to be displayed?
 
 You mention the headers_sent() result immediately after the header() 
 function call is true. If the header() function call had worked it would not 
 be true, it would be false. You have output being sent to the client before 
 that header() function call.
 
 -Stuart
 
 
 -- 
 PHP General Mailing List (http://www.php.net/)
 To unsubscribe, visit: http://www.php.net/unsub.php
 


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



Re: [PHP] Pear Page2

2013-01-06 Thread Stuart Dallas
On 6 Jan 2013, at 18:42, Tedd Sperling t...@sperling.com wrote:

 I also realize there is a language problem here -- while I cannot speak your 
 language, what you say in mine and my replies, may be misinterpreted -- but 
 in any case, no offense was meant.

Indeed. I'm guessing that when Silvio said All websites are created manually. 
(nano + html/css Tags) he meant All of the websites are created manually. 
(nano + html/css Tags) meaning the sites he's working on rather than every 
site in existence.

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] variable placeholders in a text file

2012-12-31 Thread Stuart Dallas
Please excuse the top post, but this may be helpful: 
http://stut.net/2008/10/28/snippet-simple-templates-with-php/

-Stuart

-- 
Sent from my leaf blower

On 31 Dec 2012, at 19:59, Ashley Sheridan a...@ashleysheridan.co.uk wrote:

 On Mon, 2012-12-31 at 13:39 -0600, Nelson Green wrote:
 
 Hello,
 
 I have created a simple function that prints a personalized greeting by 
 reading
 the greeting contents from a file. I pass the user's name to the function,
 and the function reads the file contents into a string variable. I am then
 using str_replace to replace the word USER in the string with the user's
 name that was passed to the function. Then the function correctly prints
 the personalized greeting as I wish.
 
 My question is, is there another way to do something similar, such as
 embedding a variable name directly into the text file? In other words,
 instead of my text file reading:
 
 Hello USER ...
 
 Can I do something like this:
 
 Hello $user_name ...
 
 and then write my function to replace $user_name with the passed
 parameter prior to printing?
 
 The reason I ask is because I am going to want to do three substitutions,
 and I'd rather not do three str_replace calls if I don't have to. Plus the
 latter seems to be a more robust way of making the changes.
 
 Thanks, and apologies if this has been asked before and I missed it. I'm
 just not sure how to phrase this for a search engine.
 
 Nelson 
 
 
 You could use an existing templating solution, like Smarty, although for
 what you want to do it might be overkill. A few str_replace() calls
 shouldn't produce too much overhead, but it depends on the size of the
 text string in question. If it's just a couple of paragraphs of text, no
 problem, something closer to a whole chapter of a book will obviously be
 more expensive.
 
 You could try eval() on the block of text, but if you do, be really
 careful about what text you're using. I wouldn't recommend this if
 you're using any text supplied by a user. As a last option, you could
 have the text stored as separate parts which you join together in one
 string later. This might be less expensive in terms of processing power
 required, but it also makes maintenance more of a hassle later.
 
 
 Thanks,
 Ash
 http://www.ashleysheridan.co.uk
 
 


Re: [PHP] Re: shared memory on php servers?

2012-12-04 Thread Stuart Dallas
On 4 Dec 2012, at 10:51, rene7705 rene7...@gmail.com wrote:

 I would also like to hear any thoughts on how to efficiently add,
 delete and edit data in this large and deep array structure from
 multiple sessions at nearly the same time..
 
 On Tue, Dec 4, 2012 at 11:49 AM, rene7705 rene7...@gmail.com wrote:
 Hi folks..
 
 I'm wondering, what's the fastest way to put a large and deep array()
 structure in shared memory on a PHP server?

Split the data up into smaller pieces. There's rarely a valid reason to store a 
huge array of data as a single blob. It's an array, so it breaks up by the 
first level of keys at the very least.

Look at APC, memcached, and redis. These are the most popular ways to store 
data in shared memory. Note that APC is a PHP extension so you can only access 
the shared memory from one machine, whereas memcached and redis are separate 
daemons so you can access them from multiple servers.

Also, as Sebastian says, a database is another option unless you have a good 
reason to want the data in shared memory rather than a DB.

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] Can't use the SNMP class

2012-12-04 Thread Stuart Dallas
On 4 Dec 2012, at 17:42, Marc-Andre Bergeron marc-andre.berge...@cogeco.com 
wrote:

 When I try to use the SNMP class I got the following error: PHP Fatal error: 
 Class 'SNMP' not found. I use the following version: PHP 5.3.3 (cli) and it 
 runs on CentOS release 6.2 (Final). I've also installed 
 net-snmp-5.5-41.el6_3.1.x86_64. According to the documentation In order to 
 use the SNMP functions requires installation of the » Net-SNMP package. I 
 can use the snmp functions (ex: snmpget, snmpset, etc) but not the SNMP 
 class. Any idea? 

The class is only available in PHP 5.4+.

http://php.net/snmp.construct

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] Re: Switch - Case Statement Questions

2012-11-19 Thread Stuart Dallas
On 19 Nov 2012, at 19:35, Tim Streater t...@clothears.org.uk wrote:

 On 18 Nov 2012 at 14:44, Jim Giner jim.gi...@albanyhandball.com wrote: 
 
 2. Using Switch {ALWAYS FIRST CASE!!!}
 
 //$boxes = 1;
 //switch ($count) {
 //case ($count  14):
 //$boxes = 3;
 //break;
 //case ($count  7  $count = 14):
 //$boxes = 2;
 //break;
 //case ($count = 7):
 //default :
 //$boxes = 1;
 //break;
 //}
 
 
 To answer Iñigo's comment - the OP's version is very much like an
 If-ElseIF structure, and nothing like a Switch.
 
 Just so. Perhaps those who are not grasping the point could re-read their 
 copy of The Elements of Programming Style by Kernighan and Plauger where 
 this sort of issue is covered.

And of course, nothing is allowed to have changed since 1978! Using a switch in 
that manner is normal for me. Should I change my style simply because you don't 
agree with it? If so, why don't you change your style because I don't agree 
with that? Code is art; there is no right way to do it. Can code be shown to 
be more efficient, elegant, faster, cleaner? Yes. Right or wrong? No.

 See, it's all about expectations. When I worked at SLAC, there was a wise guy 
 there who had removed the catalytic converter from his Scirocco and who 
 though it clever to race up 280 from San Jose to SLAC at 100mph, sometimes 
 slipstreaming behind another idiot doing the same. If I look in my rear-view 
 mirror, I expect those I can see to be doing 70mph tops (that's what a lot of 
 people did 30 years ago on 280), not 100, and to make judgements accordingly. 
 Equally, I have certain expectations when I see a switch statement; it trying 
 hard to look like if-elseif-etc is not one of them.

Why is it their fault for doing 100mph and not yours for assuming they're only 
doing 70mph? I'm not saying they're right to be doing 100mph, but I'm 
definitely saying you're wrong for assuming they're only doing 70mph.

Assumptions are the mother of all f*** ups.

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/

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



Re: [PHP] Re: Switch - Case Statement Questions

2012-11-17 Thread Stuart Dallas
On 17 Nov 2012, at 10:53, Tim Streater t...@clothears.org.uk wrote:

 On 17 Nov 2012 at 01:33, Iñigo Medina imed...@grosshat.com wrote: 
 
 On Fri, 16 Nov 2012, Jim Giner wrote:
 
 Maybe I'm way out of touch, but when I look at php.net for the syntax of the
 switch statement I see:
 switch($var){
 case (value):
 (do something)
 case (other value):
 (do something else)
 }
 
 IN your example, you are using a switch syntax that is nothing like that.  I
 think that your case  statements are not actually evaluating the value of
 $count, but are themselves evaluating to a true value that has nothing to do
 with $count.
 
 That `switch` is evaluating to true each case. It's an alternative of using
 if-elseif structure.
 
 It may be an alternative, but it breaks the principle of least surprise. If 
 I'm looking through someone's code, and I see a switch, I expect to see it 
 used as Jim described. If the writer needs a different type of logic to make 
 a decision, that is what the cascaded if-elseif-elseif construct is for, when 
 the tests don't fall into a simple set-of-values choice.

I don't see how it breaks the principle of least surprise (which is a new one 
on me. KISS, yes. Least surprise? Wassat?). If you consider that behaviour to 
be surprising the don't ever go near Perl.

A switch statement is basically saying take this value and compare it to each 
case below in the order they're presented until one matches, then execute that 
block of code until you hit a break which will jump execution out of the switch 
statement. I don't see how making this value true or false makes it any more 
surprising than if it's squirlookle.

 The job of a programmer is not to be clever with a view to impress those 
 who follow, but to achieve the desired outcome while at the same time making 
 life easy for those who follow.

I don't consider that usage of the switch statement to be clever. It's a 
valid usage of the statement which gives it a lot more power. Specifically the 
ability to have the code for a given case deliberately fall through to the next 
case block is worth any price of admission. And finally, in my opinion, it's 
far cleaner than a succession of if/elseif/else statements, and ultimately gets 
compiled to very similar opcodes.

I agree that the job of a programmer is to balance providing a fast, efficient, 
correct solution and minimising maintenance issues. I see neither side being 
compromised by using a switch statement in this manner, in fact I see both 
sides potentially getting a boost. Just because the usage is unfamiliar or even 
surprising to you doesn't mean it's wrong.

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] Rest Authentication

2012-11-11 Thread Stuart Dallas
On 10 Nov 2012, at 23:28, Adam Tong adam.to...@gmail.com wrote:

 I am developing a REST API. I found the Slim micro-framework usefull.
 I need authentication of course, and I see that Slim does not provide
 authentication for Rest. Is there any lightweight alternative to
 manually implementing http authentication and the hassle of apache
 configurations?

HTTP auth doesn't need to involve the web server at all:

http://stut.net/2012/11/11/snippet-http-authentication/

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/

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



Re: [PHP] Date comparison going wrong, wrong, wrong

2012-11-11 Thread Stuart Dallas
On 11 Nov 2012, at 18:30, Terry Ally (Gmail) terrya...@gmail.com wrote:

 I am having a problem with comparing time. I am using the following:
 
 $todaydate = date(D, M jS, Y g:i:s a);
 $showenddate = date(D, M jS, Y g:i:s a,
 strtotime($showsRecord['end_date']));

The date function returns a string.

 if ($todaydate  $showenddate):
echo The date of the show has not yet arrived;
 else:
echo The show has ended;
 endif;

So here you are comparing two strings; PHP has no idea they are dates.

 The problem that I am encountering is that PHP is rendering the reverse of
 the equation. For example:
 
 If today's date is *11 Nov 2012* and the show's end date is *18 Nov 2012*,
 the message that I am getting is *the show has ended* which is wrong. A
 test example is at http://www.lakesidesurrey.co.uk/test.php.
 
 You can also me what I am doing wrong?


Compare timestamps instead, i.e. time() for the current time, and what you get 
back from strtotime for the end date.

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/

Re: [PHP] Date comparison going wrong, wrong, wrong

2012-11-11 Thread Stuart Dallas
On 11 Nov 2012, at 19:00, Terry Ally (Gmail) terrya...@gmail.com wrote:

 Hi Shiplu and Stuart,
 
 Comparing timestamps was my first option. I've reinstated it. Have a look
 at http://www.lakesidesurrey.co.uk/test.php (show_source included) and you
 will see that PHP is still outputting the wrong thing.
 
 I just can't figure out what's wrong.

Your comparison is backwards:

if ($todaydate  $showenddate):

should be

if ($todaydate  $showenddate):

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/

 On 11 November 2012 18:48, shiplu shiplu@gmail.com wrote:
 
 You can always use timestamp which is integer.
 
 $todaydate = time();
 $showenddate = strtotime($showsRecord['end_date']);
 
 
 On Mon, Nov 12, 2012 at 12:30 AM, Terry Ally (Gmail) 
 terrya...@gmail.comwrote:
 
 Hi all,
 
 I am having a problem with comparing time. I am using the following:
 
 $todaydate = date(D, M jS, Y g:i:s a);
 $showenddate = date(D, M jS, Y g:i:s a,
 strtotime($showsRecord['end_date']));
 
 if ($todaydate  $showenddate):
echo The date of the show has not yet arrived;
 else:
echo The show has ended;
 endif;
 
 The problem that I am encountering is that PHP is rendering the reverse of
 the equation. For example:
 
 If today's date is *11 Nov 2012* and the show's end date is *18 Nov 2012*,
 the message that I am getting is *the show has ended* which is wrong. A
 
 test example is at http://www.lakesidesurrey.co.uk/test.php.
 
 You can also me what I am doing wrong?
 
 Thanks
 Terry
 
 
 
 
 --
 Shiplu.Mokadd.im
 ImgSign.com | A dynamic signature machine
 Innovation distinguishes between follower and leader
 
 
 
 
 -- 
 *Terry Ally*
 Twitter.com/terryally
 Facebook.com/terryally
 ~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~
 To print or not to print this email is the environmentally-searching
 question!
 Which has the highest ecological cost? A sheet of paper or constantly
 switching on your computer and connecting to the Internet to read your
 email?


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



  1   2   3   4   5   6   >