Re: create file permission problem (solved)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 6/15/07, tedd <tedd@xxxxxxxxxxxx> wrote:
At 1:06 PM -0400 6/14/07, Daniel Brown wrote:
>    For the sake of people reading the archives now (and in years to
>come), what was the cause of the problem, Tedd?


Daniel:

Ok, good point -- I would have liked to have this example to review.

I'm not sure of the problems I had, because they were a comedy of
errors, but the following is my solution.

If anyone finds anything wrong, or if I have misstated something,
please feel free to comment or correct me. Remember, this works for
me, but perhaps not for others.

Cheers,

tedd

--- here's the code, please watch for line breaks ---


<?php

/* Virtual Host -- how to create and/or write to file

To open a file for writing requires that you change its permissions to 0777.
If the file is not there, then to create one requires that you change
its parent
directory to 0777 and then create the file.

The following code works for me.
*/

include('config.php'); // get your FTP password and user id
$server= 'ftp.yourdomain.com'; // your domain name
$path = 'httpdocs/read-write/test/'; // path to the folder "test"

$folder = 'test/';       // folder name
$filename = 'my.txt'; // file name
$tpath = $path . $filename; // total path for file

$contents = "This is my text";   // give the file some text

$connection = ftp_connect($server);  // connection
$result = ftp_login($connection, $user, $pass);  // login to ftp server

if ((!$connection) || (!$result))
        {
        echo ('<p>ERROR</p>');
        }
else
        {
        //-----------------------------------------------
        echo("Open connection<br/>");

        echo("Change parent directory permission to 0777 for writing<br/>");
        $str="CHMOD 0777 ". $path;       // change permission for
directory to 0777
        ftp_site($connection, $str);

        echo("Checking to see if file exist<br/>");
        if (is_file($folder . $filename))
                {
                echo("File found <br/>");
                }
        else
                {
                echo("File not found<br/>");
                echo("Creating file -- $filename<br/>");
                }
        //-----------------------------------------------
        echo("Opening and Writing file -- $filename<br/>");

        $file = fopen( $folder . $filename, "w" );       // open file
        fwrite( $file, $contents); // write file
        fclose( $file ); // close file

        echo("Change permission of file to 0644<br/>");
        chmod($folder .  $filename, 0644);

        echo("Change permission for parent directory back to 0755<br/>");
        $str="CHMOD 0755 ". $path;       // change permission for
directory back to 755
        ftp_site($connection, $str);

        echo("Close connection<br/><br/>");
        ftp_close($connection); // close connection

        //-----------------------------------------------
        echo("<hr><br/>Reading file:<br/>");

        $filesize = filesize($folder . $filename);
        $file = fopen($folder .  $filename, "r" );
        $text = fread( $file, $filesize );
        fclose( $file );

        echo( "File name: $filename<br/> ");
        echo( "File size: $filesize bytes<br/>" );
        echo( "File contents:<br/>$text<br/>" );
        }
?>

--
-------
http://sperling.com  http://ancientstones.com  http://earthstones.com


   Sounds like it was the decimal (three-bit, incorrect) versus octal
(four bit, correct) chmod(); value after all.  Boo-yaa.... and stuff.

   Thanks for posting it.  I don't know about ya'all, but I hate when
I search the web, find people with the exact problem I'm having, and
there's no solutions posted.  It seems to happen any time I search for
the resolution to a problem I just can't figure out.

--
Daniel P. Brown
[office] (570-) 587-7080 Ext. 272
[mobile] (570-) 766-8107

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


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux