adamordna Posted September 1, 2006 Share Posted September 1, 2006 I have the following code....if(isset($_POST['addnew'])){$id='entry_'.$_POST['rid'];$path= '/var/www/vhosts/domainname.com/httpdocs/files/'.$id;$fullpath= $path;if(!is_dir($fullpath)){mkdir($fullpath, 0777);}if(is_dir($fullpath)){if ($_FILES['file_upld']['tmp_name']){$temp_name = $_FILES['file_upld']['tmp_name'];$filename = $_FILES['file_upld']['name'];$dir = $fullpath.'/';move_uploaded_file($temp_name,$dir.$filename);chmod($dir.$filename, 0777);}}}It all works fine problem is it asigns the ownership to apache and i can't delete or download the files once they are in there, i can read, edit , etc.. but not download or delete... also it appears that the permissions are really 755 not 777..but i think that's common? Quote Link to comment Share on other sites More sharing options...
logu Posted September 1, 2006 Share Posted September 1, 2006 using phpinfo() check the safe mode in your php.ini is on or off these kind of problem may accur when its 'ON' Quote Link to comment Share on other sites More sharing options...
adamordna Posted September 1, 2006 Author Share Posted September 1, 2006 safe_mode is ...Off thanks...... Quote Link to comment Share on other sites More sharing options...
adamordna Posted September 3, 2006 Author Share Posted September 3, 2006 I still haven't found a solution for this? Quote Link to comment Share on other sites More sharing options...
hobojjr Posted September 3, 2006 Share Posted September 3, 2006 I have the same problem. Quote Link to comment Share on other sites More sharing options...
adamordna Posted September 3, 2006 Author Share Posted September 3, 2006 bummer.. i really need to get this issue resolved..let me know if you find out anything..thanks in advance Quote Link to comment Share on other sites More sharing options...
hobojjr Posted September 3, 2006 Share Posted September 3, 2006 here did some reading lolfrom comments at http://ca.php.net/mkdir" Han Van den Hoof09-Nov-2003 01:28If you're on a shared *nix server, a directory created through mkdir() will not be assigned to you, but to the user that your host's server or php process is running under, usually 'nobody', 'apache' or 'httpd'.In practice, this means that you can create directories, even add files to them, but you can't delete the directory or its contents nor change permissions.It is therefore advised to create directories through PHP's FTP API. Here's a function I wrote:<?php// create directory through FTP connectionfunction FtpMkdir($path, $newDir) { $server='ftp.yourserver.com'; // ftp server $connection = ftp_connect($server); // connection // login to ftp server $user = "me"; $pass = "password"; $result = ftp_login($connection, $user, $pass); // check if connection was made if ((!$connection) || (!$result)) { return false; exit(); } else { ftp_chdir($connection, $path); // go to destination dir if(ftp_mkdir($connection,$newDir)) { // create directory return $newDir; } else { return false; } ftp_close($conn_id); // close connection }}?>Hope this comes in handy for someone." Quote Link to comment Share on other sites More sharing options...
adamordna Posted September 4, 2006 Author Share Posted September 4, 2006 so using that i have...function FtpMkdir($FTPpath, $id) { $server='www.myserver.com'; // ftp server $connection = ftp_connect($server); // connection // login to ftp server $user = "user"; $pass = "pass"; $result = ftp_login($connection, $user, $pass); // check if connection was made if ((!$connection) || (!$result)) { return false; exit(); } else { ftp_chdir($connection, $FTPpath); // go to destination dir if(ftp_mkdir($connection,$id)) { // create directory return $id; } else { return false; } ftp_close($conn_id); // close connection } } ############################################ if(isset($_POST['addnew'])) { $FTPpath= '/httpdocs/compFiles/'; $id='entry_'.$_POST['rid']; //new dir name $path= '/var/www/vhosts/mydomain.com/httpdocs/compFiles/'.$id; if(!is_dir($path)) { FtpMkdir($FTPpath, $id); // make dir } if(is_dir($path)) // directory already exists { chmod($path, 0707); if ($_FILES['file_upld']['tmp_name']) //upload file { $temp_name = $_FILES['file_upld']['tmp_name']; $filename = $_FILES['file_upld']['name']; $dir = $path.'/'; move_uploaded_file($temp_name,$dir.$filename); chmod($dir.$filename, 0707); $success = "<font color=\"green\">Your file was uploaded successfully</font>"; } } }Which now creates a directory that at least doesn't belong to apache, has permissions 755but doesn't upload the file ,unless i change the permissions to 707 , and chmod($path, 0707);nor chmod($dir.$filename, 0707); seem to be working... Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.