php-general Digest 21 Oct 2005 10:29:47 -0000 Issue 3749

Topics (messages 224372 through 224393):

Trapping for an uploaded file that's too large?
        224372 by: Brian Dunning
        224373 by: Jordan Miller
        224374 by: Brian Dunning

Re: Executing process in background
        224375 by: Jasper Bryant-Greene

SCRIPT_NAME
        224376 by: John Taylor-Johnston
        224378 by: Jasper Bryant-Greene
        224379 by: Robert Cummings
        224380 by: Minuk Choi
        224381 by: Robert Cummings
        224384 by: John Taylor-Johnston

Re: No redirect with header() [solved]
        224377 by: Dotan Cohen

OOP Newbie - why does this not work?
        224382 by: Bob Hartung
        224383 by: Stephen Leaf
        224385 by: Stephen Leaf
        224386 by: Stephen Leaf
        224387 by: Jesper Gran
        224388 by: Jochem Maas

Re: PHP and files Upload
        224389 by: Andy Pieters

Re: How can I count the usage of mail function in scripts?
        224390 by: Andy Pieters

Preference for User Permissions system
        224391 by: Richard Davey
        224393 by: James Benson

Re: LDAP and a pain in my neck
        224392 by: Jochem Maas

Administrivia:

To subscribe to the digest, e-mail:
        [EMAIL PROTECTED]

To unsubscribe from the digest, e-mail:
        [EMAIL PROTECTED]

To post to the list, e-mail:
        [email protected]


----------------------------------------------------------------------
--- Begin Message --- In my File Upload form, if the file is >=2MB, the user just gets a blank "error opening file" screen, almost immediately after the upload starts. I don't know how to trap for this to give a more user- friendly experience. Can anyone point me in the right direction?
--- End Message ---
--- Begin Message ---
On Oct 20, 2005, at 6:29 PM, Brian Dunning wrote:


In my File Upload form, if the file is >=2MB, the user just gets a blank "error opening file" screen, almost immediately after the upload starts. I don't know how to trap for this to give a more user-friendly experience. Can anyone point me in the right direction?



are you using PHP 5? If so, maybe check out this, below.

Jordan





    From:       [EMAIL PROTECTED]
    Subject:     Re: [PHP] Re: PHP 5 limits "readfile" to 1.9 MB?
    Date:     August 17, 2005 10:26:40 AM CDT
    To:       [EMAIL PROTECTED]
    Cc:       [email protected]
    In-Reply-To:     <[EMAIL PROTECTED]>

Ok, just checking (I am new to the fopen() function). That makes sense. Awesome, thanks!

Jordan

On Aug 17, 2005, at 10:19 AM, Catalin Trifu wrote:



    Hi,

    Indeed a fclose($fp) is needed (wrote it as an example :)).
    1MB is more than enough as a buffer.  If you have a 53MB file,
what will happen then ?
    I have no idea if it's a bug or a feature. Either way I did lose
some hair over this when I switched from PHP4 to PHP5.

Catalin


Jordan Miller wrote:



Catalin,
Wow, that worked great, thanks.
I'm curious why you set a static buffer of 1024768... why not just do filesize($file), as shown at http://www.php.net/fread ? Is it better for memory usage to have a potentially smaller buffer? Also, you may want an fclose($fp) after the file has been downloaded. So is this a bug in PHP 5 or are they just purposely limiting the abilities of the "readfile" command?
Jordan
On Aug 17, 2005, at 3:36 AM, Catalin Trifu wrote:



    Hi,

I've had a similar problem. The download always stopped at exactly 2.000.000 bytes.
    You have to work around that with:
    $fp = fopen($file, 'r');
    if($fp) {
    while(!feof($fp)) {
        echo fread($fp, 1024768);//see the huge buffer to read into
    }
    } else {
    //whatever error handler
    }

Catalin


Jordan Miller wrote:





Hello all,
I am new to this list and I have searched the archives to no avail. I am having a peculiar problem when upgrading to PHP 5: My downloads are now limited to the first 1.9 MB of the file in question, with the download either terminating at 1.9 MB or seemingly continuously stuck in a downloading process at 1.9 MB. The code in the PHP script has not changed and all parameters that I could find that are relevant to this problem are given below:
the minimal code needed for download:
// $file_to_read is the complete path of the file to download
        header("Content-Type: application/pdf");
header( "Content-Disposition: inline; filename= \"$filename \"");
        $len = filesize($file_to_read);
        header("Content-Length: $len");
        @readfile($file_to_read);
php.ini file for both php version 4 and 5 contain the following settings that may be relevant:
allow_url_fopen = On
max_execution_time = 300 ; Maximum execution time of each script, in seconds max_input_time = 300 ; Maximum amount of time each script may spend parsing request data memory_limit = 8M ; Maximum amount of memory a script may consume (8MB)
post_max_size = 200M
upload_max_filesize = 200M
Some additional details:
All files less than 1.9 MB download fine
It is not a corrupted file, because all files larger than 1.9 MB fail after 1.9 MB The connection is not timing out (download of 1.9 MB takes only ~15 sec)
Mac OS X 10.3.9 with Marc Liyanage's PHP 5.0.4
Fails for both Safari and Firefox
Fails regardless of "inline" or "attachment"
Fails regardless of "pdf" or "ppt" content-type
This PHP code ALWAYS works for Marc Liyanage's PHP 4.3.4 with the same settings, above What am I doing wrong??? Any other parameter in php.ini I should have set? Any suggestions are much appreciated.
thanks,
Jordan



--- End Message ---
--- Begin Message ---
On Oct 20, 2005, at 4:55 PM, Jordan Miller wrote:

are you using PHP 5?

No, 4 unfortunately. Shoulda said so.

--- End Message ---
--- Begin Message ---
On Thu, 2005-10-20 at 15:07 -0700, Surya Mishra wrote:
> I have to start a task on the server side that is going to take pretty long
> to process in the server side. So I would like to show a message to the user
> and ask him/her to check again later. But starting a new task holds up the
> thread and won't let me exit the php. The user's browser does keeps showing
> busy.
> I tried to create a new thread using pcntl_fork, but my php doesn't allow
> that as it has not been compiled with pcntl support and its not possible to
> change that.
> I also tried to create a script that would do the task and called the script
> using system command and passed an '&' at the end to make it process in
> background, but that also keeps the main thread busy.

Add it to a list (flat file, DB, whatever) of processes to be done and
run a cron script regularly (how regular would depend on the specific
app) to execute all the processes in the list.

-- 
Jasper Bryant-Greene
General Manager
Album Limited

e: [EMAIL PROTECTED]
w: http://www.album.co.nz/
p: 0800 4 ALBUM (0800 425 286) or +64 21 232 3303
a: PO Box 579, Christchurch 8015, New Zealand

--- End Message ---
--- Begin Message --- SCRIPT_NAME and PHP_SELF always include leading url information and slashes. Is there a function I can use to skin either down to the filename? No slashes or leading url.
John

--- End Message ---
--- Begin Message ---
On Thu, 2005-10-20 at 22:22 -0400, John Taylor-Johnston wrote:
> SCRIPT_NAME and PHP_SELF always include leading url information and 
> slashes. Is there a function I can use to skin either down to the 
> filename? No slashes or leading url.

http://php.net/basename for filesystem paths

http://php.net/parse_url for URLs

-- 
Jasper Bryant-Greene
General Manager
Album Limited

e: [EMAIL PROTECTED]
w: http://www.album.co.nz/
p: 0800 4 ALBUM (0800 425 286) or +64 21 232 3303
a: PO Box 579, Christchurch 8015, New Zealand

--- End Message ---
--- Begin Message ---
On Thu, 2005-10-20 at 22:22, John Taylor-Johnston wrote:
> SCRIPT_NAME and PHP_SELF always include leading url information and 
> slashes. Is there a function I can use to skin either down to the 
> filename? No slashes or leading url.

echo ereg_replace( '^.*/', '', $_SERVER['SCRIPT_NAME'] )

ereg is greedy, it'll match as much as it can.

Cheers,
Rob.
-- 
.------------------------------------------------------------.
| InterJinn Application Framework - http://www.interjinn.com |
:------------------------------------------------------------:
| An application and templating framework for PHP. Boasting  |
| a powerful, scalable system for accessing system services  |
| such as forms, properties, sessions, and caches. InterJinn |
| also provides an extremely flexible architecture for       |
| creating re-usable components quickly and easily.          |
`------------------------------------------------------------'

--- End Message ---
--- Begin Message ---
Off the top of my head...

$filename = $_SERVER['PHP_SELF'];

$strippedFilename = substr($filename, strrpos($filename, '/'));

references :
http://us3.php.net/substr

http://us3.php.net/manual/en/function.strrpos.php

-Minuk

John Taylor-Johnston wrote:

SCRIPT_NAME and PHP_SELF always include leading url information and slashes. Is there a function I can use to skin either down to the filename? No slashes or leading url.
John


--- End Message ---
--- Begin Message ---
On Thu, 2005-10-20 at 23:27, Minuk Choi wrote:
> Off the top of my head...
> 
> $filename = $_SERVER['PHP_SELF'];
> 
> $strippedFilename = substr($filename, strrpos($filename, '/'));

Won't work, I'll leave the reason as an exercise :B

Cheers,
Rob.
-- 
.------------------------------------------------------------.
| InterJinn Application Framework - http://www.interjinn.com |
:------------------------------------------------------------:
| An application and templating framework for PHP. Boasting  |
| a powerful, scalable system for accessing system services  |
| such as forms, properties, sessions, and caches. InterJinn |
| also provides an extremely flexible architecture for       |
| creating re-usable components quickly and easily.          |
`------------------------------------------------------------'

--- End Message ---
--- Begin Message ---
Thanks!
John

--- End Message ---
--- Begin Message ---
On 10/20/05, Oliver Grätz <[EMAIL PROTECTED]> wrote:
> So perhaps it was good that I was pushing to see the code ;-)
> So you looked more closely...
>
> Tip: I put an output buffer around my "not supposed to output anything"
> code:
>
> <?php
> ob_start();
> // include function libraries, perform non-visible stuff etc.
> $premature=ob_get_clean();
> // if premature is non-empty then there was premature output => log to file
>
> // regular output
> ?>
>
> This could help you in preventing some output problems in the future.
>
> OLLi
>
>

Most certainly! Thank you.

Dotan
http://lyricslist.com/lyrics/artist_albums/360/motley_crue.php
Motley Crue Song Lyrics

--- End Message ---
--- Begin Message ---
Hi all,
I'm trying to get started in OOP with PHP. I have the following short code snipped. I'f I comment out the 'class Test' definition and the following references to it, it prints
   This is outside the php code block

        and

   Start defining the class here:

If I do not comment out the code as noted, then the page returned is totally blank. It does this with or without using the constructor.
PHP 5 on apache.  Same behavior both on Win32 and FC4.

All help appreciated to get me going.

Code Snippet:

<html>

<head>
  <title>PHP Class testing</title>

</head>
<body>
        <br>
          <P>This is outside the php code block</P>
        <br>
        <?php
          echo "Start defining the class here: <BR>" ;
/*        class Test
          {
        
            function __constructor()
                 {
                   var $saying ;
                        $saying = "Im in the Test Class" ;
                 }
                
                 function get()
                 {
                   return $saying ;
                
          }
        
          var $liveclass ;
          $liveclass = new Test ;
          echo $liveclass->get() ;
          echo "<BR>" ;
     echo "This is in the php code block" ;
*/
        ?>

</body>
</html>

--- End Message ---
--- Begin Message ---
Try removing the /* and */
Other than that, check your brackets.
you never closed the get() function's

On Thursday 20 October 2005 09:35 pm, Bob Hartung wrote:
> Hi all,
>    I'm trying to get started in OOP with PHP.  I have the following
> short code snipped.  I'f I comment out the 'class Test' definition and
> the following references to it, it prints
>     This is outside the php code block
>
>          and
>
>     Start defining the class here:
>
> If I do not comment out the code as noted, then the page returned is
> totally blank.  It does this with or without using the constructor.
> PHP 5 on apache.  Same behavior both on Win32 and FC4.
>
> All help appreciated to get me going.
>
> Code Snippet:
>
> <html>
>
> <head>
>    <title>PHP Class testing</title>
>
> </head>
> <body>
>       <br>
>         <P>This is outside the php code block</P>
>       <br>
>       <?php
>         echo "Start defining the class here: <BR>" ;
> /*      class Test
>         {
>
>           function __constructor()
>                {
>                  var $saying ;
>                       $saying = "Im in the Test Class" ;
>                }
>
>                function get()
>                {
>                  return $saying ;
>
>         }
>
>         var $liveclass ;
>         $liveclass = new Test ;
>         echo $liveclass->get() ;
>         echo "<BR>" ;
>       echo "This is in the php code block" ;
> */
>       ?>
>
> </body>
> </html>

--- End Message ---
--- Begin Message ---
Sorry.. 1 more thing.
php5 does not use var.
use public $variable=value; instead.
public is only within a class however. you cannot use it outside.

On Thursday 20 October 2005 09:35 pm, Bob Hartung wrote:
> Hi all,
>    I'm trying to get started in OOP with PHP.  I have the following
> short code snipped.  I'f I comment out the 'class Test' definition and
> the following references to it, it prints
>     This is outside the php code block
>
>          and
>
>     Start defining the class here:
>
> If I do not comment out the code as noted, then the page returned is
> totally blank.  It does this with or without using the constructor.
> PHP 5 on apache.  Same behavior both on Win32 and FC4.
>
> All help appreciated to get me going.
>
> Code Snippet:
>
> <html>
>
> <head>
>    <title>PHP Class testing</title>
>
> </head>
> <body>
>       <br>
>         <P>This is outside the php code block</P>
>       <br>
>       <?php
>         echo "Start defining the class here: <BR>" ;
> /*      class Test
>         {
>
>           function __constructor()
>                {
>                  var $saying ;
>                       $saying = "Im in the Test Class" ;
>                }
>
>                function get()
>                {
>                  return $saying ;
>
>         }
>
>         var $liveclass ;
>         $liveclass = new Test ;
>         echo $liveclass->get() ;
>         echo "<BR>" ;
>       echo "This is in the php code block" ;
> */
>       ?>
>
> </body>
> </html>

--- End Message ---
--- Begin Message ---
Here is the working code
You had __constructor() it's __construct()

notice I also moved your saying declaration outside of the constructor.
this is to make it a class level variable.
the way that you had it set it was only in scope until you finished the 
construct code.

I guess I was wrong about the var bit. I do remember having lots of issues 
with it back a few months ago. perhaps theses were fixed in newer versions.
most likely var is depreciated in php5. (can someone confirm this?)

<html>
        <head>
                <title>PHP Class testing</title>
        </head>
        <body>
                <br/>
                <p>This is outside the php code block</p>
                <br/>
                <?php
                        echo "Start defining the class here: <br/>" ;
                        class Test {
                                public $saying = "";

                                function __construct() {
                                        $saying = "Im in the Test Class" ;
                                }
                                function get() {
                                        return $saying ;
                                }
                        }

                        $liveclass = new Test ;
                        echo $liveclass->get() ;
                        echo "<br/>" ;
                        echo "This is in the php code block" ;
                ?>
        </body>
</html>


On Thursday 20 October 2005 09:53 pm, Bob Hartung wrote:
> Changed to:
>    var $saying ;
>    public $saying = "....."
>
> Again, blank page.  Funny though, even the <title>...</title> html block
> is not rendered.  Again, same beavior on 2 FC4 and 1 Win32 install.
>
> Tnx
>
> Bob
>
> Stephen Leaf wrote:
> > Sorry.. 1 more thing.
> > php5 does not use var.
> > use public $variable=value; instead.
> > public is only within a class however. you cannot use it outside.
> >
> > On Thursday 20 October 2005 09:35 pm, Bob Hartung wrote:
> >>Hi all,
> >>   I'm trying to get started in OOP with PHP.  I have the following
> >>short code snipped.  I'f I comment out the 'class Test' definition and
> >>the following references to it, it prints
> >>    This is outside the php code block
> >>
> >>         and
> >>
> >>    Start defining the class here:
> >>
> >>If I do not comment out the code as noted, then the page returned is
> >>totally blank.  It does this with or without using the constructor.
> >>PHP 5 on apache.  Same behavior both on Win32 and FC4.
> >>
> >>All help appreciated to get me going.
> >>
> >>Code Snippet:
> >>
> >><html>
> >>
> >><head>
> >>   <title>PHP Class testing</title>
> >>
> >></head>
> >><body>
> >>    <br>
> >>      <P>This is outside the php code block</P>
> >>    <br>
> >>    <?php
> >>      echo "Start defining the class here: <BR>" ;
> >>/*    class Test
> >>      {
> >>
> >>        function __constructor()
> >>             {
> >>               var $saying ;
> >>                    $saying = "Im in the Test Class" ;
> >>             }
> >>
> >>             function get()
> >>             {
> >>               return $saying ;
> >>
> >>      }
> >>
> >>      var $liveclass ;
> >>      $liveclass = new Test ;
> >>      echo $liveclass->get() ;
> >>      echo "<BR>" ;
> >>      echo "This is in the php code block" ;
> >>*/
> >>    ?>
> >>
> >></body>
> >></html>

--- End Message ---
--- Begin Message ---
On 2005-10-21 06:17, Stephen Leaf wrote:

most likely var is depreciated in php5. (can someone confirm this?)
Well, if I try to use Var in a class i get this message:

Strict Standards: var: Deprecated. Please use the public/private/protected modifiers in C:\code\test\var.php on line 3*

/*Jesper*
*

--- End Message ---
--- Begin Message ---
Bob,

'wrapping' you class definition within HTML like you have done is
not only weird but down right ugly. I recommend sticking each class
you write in a seperate file and using include_once() or require_once()
before you output anything to the browser. basically try to
seperate you code into 'stages' (for want of a better word) e.g.:

1. setup an environment (includes loading classes)
2. process the request
3. redirect or output a page

Bob Hartung wrote:
Hi all,

...


</head>
<body>
    <br>
      <P>This is outside the php code block</P>
    <br>
    <?php
      echo "Start defining the class here: <BR>" ;
/*      class Test
      {
function __constructor()
         {
           var $saying ;

'var' doesn't belong here. it belongs directly in the body of class def.

            $saying = "Im in the Test Class" ;
         }
function get()
         {
           return $saying ;


there is a missing '}' here.
also you should be returning and setting $this->saying


} var $liveclass ;

drop the 'var' - it's only for php4 and then only for
defining the properties of classes/objects:

class Test {
        var $myProperty;
}

      $liveclass = new Test ;
      echo $liveclass->get() ;
      echo "<BR>" ;
     echo "This is in the php code block" ;
*/
    ?>

</body>
</html>


--- End Message ---
--- Begin Message ---
Hi

As a security precaution, all uploaded files are automatically deleted when 
the script goes out of scope.

Use the move_uploaded_file function to move the file somewhere else before 
your script ends.

There are various other security precautions you have to consider.  And by all 
means don't expect the browser to adhere to the limitations you set in the 
form, like mime type and max sizes, also know that it is fairly easy for 
someone to directly connect to the socket and upload a file, bypassing the 
browser altogheter.

The php documentation site covers file uploads in depth (www.php.net)


HTH



With kind regards



Andy

On Wednesday 19 October 2005 00:36, feiticeir0 wrote:
> hello all.
>
> I've managed to create files uploads pages in the past (dont remember if
> alredy with php 5).
>
> till now, i havent need for testing or using.
> today, i've tried to test an upload page (a very simple one) with php 5.0.5
> and i was unable to do it.
>
> the script always says it was sucessful to upload the file, but the
> destination directory was always empty...
> even when checking the $_FILES global
>
> $_FILES['var_name']['tmp_name'] and
> $_FILES['var_name']['name'] and
> $_FILES['var_name']['size'], the vars alwyas return empty values...
>
> is there any issue with php5 about files uploads ?
>
> in php.ini i set the temp directory to /tmp and still nothing works...
>
> Cheers,
>
> Bruno Santos
>
> --
> Open WebMail Project (http://openwebmail.org)
>
>
> --
> This message has been scanned for viruses and
> dangerous content by MailScanner, and is
> believed to be clean.

-- 
Now listening to Top! Radio Live www.topradio.be/stream on amaroK
Geek code: www.vlaamse-kern.com/geek
Registered Linux User No 379093
If life was for sale, what would be its price?
www.vlaamse-kern.com/sas/ for free php utilities
--

Attachment: pgpUnJUDzcB8K.pgp
Description: PGP signature


--- End Message ---
--- Begin Message ---
Hi

While it *is* possible to do what you ask for, it would be worthless.

I can write from scratch a php script that 
* looks up the mx record for a given email address
* connects to the mail server looked up
* send the message.

Since the SMTP protocol is fairly simple, I am sure many others can and will 
use this to circumvent your limitations.


With kind regards



Andy

On Tuesday 18 October 2005 11:45, Cristea Adrian wrote:
> Hello peoples!
>
> short question: How can I count the usage of mail function in scripts?
>
> long description :D
>
> I have a webserver, and I want to limit the usage of mail function for
> each host I have there.. Notice that i have a couple of hundrest of
> virtual hosts (domains and subdomains) there, and i want to limit
> them, let`s say.. 100 mails per day.. there is any solution to do
> that? (i know there is, i saw that in a nwebhosting company) .. can
> you guide me find this solution?
>
> thanks in advance!
>
> cheers, cajbecu

-- 
Now listening to Top! Radio Live www.topradio.be/stream on amaroK
Geek code: www.vlaamse-kern.com/geek
Registered Linux User No 379093
If life was for sale, what would be its price?
www.vlaamse-kern.com/sas/ for free php utilities
--

Attachment: pgphVSPJiec2Q.pgp
Description: PGP signature


--- End Message ---
--- Begin Message ---
Hi php-general,

  I'm interested to know what everyones preference is for user
  permissions / roles in php apps? For example do you employ a Unix
  style groups system, is there a ready-rolled class or package you
  use, or have you just built your own and stick with it?

Cheers,

Rich
-- 
Zend Certified Engineer
http://www.launchcode.co.uk

--- End Message ---
--- Begin Message ---
What I do is have different classes that build upon each other,


authentication & permissions class,
common database access extending PEAR DB.

then i have a custom class for specific actions like editing pages, my database is just either either an email or username and password then another table has permission levels in, permissions for every user are defined in their DB table in a comma seperated list, that way i can create many groups and have a user belong many groups, then page editng for instance can be restricted to specific users or groups, I designed it all to be flexible enough to reuse for all my websites I hope :)



Regards,
James




Richard Davey wrote:
Hi php-general,

  I'm interested to know what everyones preference is for user
  permissions / roles in php apps? For example do you employ a Unix
  style groups system, is there a ready-rolled class or package you
  use, or have you just built your own and stick with it?

Cheers,

Rich

--- End Message ---
--- Begin Message ---
André Medeiros wrote:
Check your webserver logs. If PHP couldn't use the extension, it will
accuse that in the logs.

probably the best use of the word 'accuse'  .... ever

(with a slight nod to commercials for Carlsberg lager :-)


On 10/20/05, Jay Blanchard <[EMAIL PROTECTED]> wrote:

[snip]

Call to undefined function: ldap_connect()

What am I missing? TIA.


Did you uncomment (and properly define) the 'extension_dir' directive
in your php.ini?
[/snip]

Yep.

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





--- End Message ---

Reply via email to