Re: cannot figure out permissions for fopen/fwrite

From: Date: Wed, 01 Jul 2009 19:20:18 +0000
Subject: Re: cannot figure out permissions for fopen/fwrite
References: 1 2  Groups: php.general 
Request: Send a blank email to php-general+get-294807@lists.php.net to get a copy of this message
Shawn McKenzie wrote: > Mari Masuda wrote: >> Hello, >> >> This is probably a dumb newbie question. I am running PHP 5.2.5 and >> Apache 2.2.8 on my Mac Book Pro OS X 10.4.11. I compiled PHP and Apache >> from source a while ago (as opposed to using the built-in web server >> that is included w/ Mac OS X). I have written the below PHP whose >> purpose is to read an existing comma separated (CSV) file and save the >> data into a text file that I can later copy and paste from into my >> website content management system. The problem is that on my Mac, I >> cannot seem to figure out what permissions I need to set in order to >> make the input CSV and the initially non-existant output text file >> readable and writable by Apache/PHP. I have Googled and come across >> many pages about different ways to set permissions and different >> permissions to set but none of the ways suggested that I tried seemed to >> work for me. As a temporary solution, I uploaded my PHP file to a >> Windows 2003 server running Apache and PHP and it worked flawlessly (and >> makes me suspicious that there is some huge security hole with the >> Windows box since it was able to execute with no permissions >> modifications). Any tips would be greatly appreciated. Thanks! >> >> Mari >> >> --- start my code --- >> <?php >> >> $in = fopen("/Applications/apache/htdocs/wp-php/wp.csv", "r"); >> $out = >> fopen("/Applications/apache/htdocs/wp-php/tableToCutAndPaste.txt", >> "w"); >> $counter = 0; >> >> >> fwrite($out, "<table>\n"); >> >> while(($data = fgetcsv($in)) !== FALSE) { >> $paperNumber = $data[0]; >> $authors = $data[1]; >> $title = $data[2]; >> $filename = $paperNumber . ".pdf"; >> >> if(($counter % 2) == 0) { >> fwrite($out, "<tr>\n"); >> } else { >> fwrite($out, "<tr style=\"background: >> #cccccc;\">\n"); >> } >> >> fwrite($out, "<td><a >> >> href=\"http://www.example.com/workingpapers/getWorkingPaper.php?filename=$filename\">$paperNumber</a></td>\n"); >> >> fwrite($out, "<td>$authors</td>\n"); >> fwrite($out, "<td>$title</td>\n"); >> fwrite($out, "</tr>\n"); >> >> $counter++; >> } >> >> fwrite($out, "</table>\n"); >> >> >> fclose($in); >> fclose($out); >> >> ?> >> --- end my code --- > > What are the permissions on /Applications/apache/htdocs/wp-php/ ? > > Apache needs write permissions on that dir in order to create the file > tableToCutAndPaste.txt. > > It's probably not a secure idea to give write permissions to that dir, > so maybe create a subdir of tmp and change those permissions (one way): > > mkdir /Applications/apache/htdocs/wp-php/tmp > chmod a+w /Applications/apache/htdocs/wp-php/tmp > Also, turn on error reporting so that you can see the exact problem. It may not be what you think. -- Thanks! -Shawn http://www.spidean.com

« previous php.general (#294807) next »