Re: Failed to write to a text file (text file is RW) [message #171424 is a reply to message #171421] |
Sun, 02 January 2011 23:55 |
Jerry Stuckle
Messages: 2598 Registered: September 2010
Karma:
|
Senior Member |
|
|
On 1/2/2011 6:26 PM, justaguy wrote:
> On Jan 2, 5:00 pm, Denis McMahon<denis.m.f.mcma...@googlemail.com>
> wrote:
>> On 02/01/11 20:19, justaguy wrote:
>>
>>> I dig up the following script. Added a simple HTML file with a form
>>> field named "vote" and have it send to the following php script.
>>> However, it failed to write to the poll_result.txt file. Why?
>>
>> The following seems to work for me.
>>
>> <?php
>> $filename = "poll_result.txt";
>> if (isset($_POST['vote'])) {
>> $vote = intval($_POST['vote']); // get this vote
>> $content = file($filename); // read result file
>> $array = explode("||", $content[0]);
>> $yes = intval($array[0]); // get stored results
>> $no = intval($array[1]);
>> if ($vote == 1) $yes++; // increment one
>> if ($vote == 0) $no++;
>> $insertvote = $yes."||".$no; // new result string
>> }
>> else {
>> $insertvote = "0||0\n"; // reset result string
>> $yes = 0;
>> $no = 0;
>> }
>> $fp = fopen($filename,"w"); // store results
>> fputs($fp,$insertvote);
>> fclose($fp);
>> echo<<<EOT
>> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
>> "http://www.w3.org/TR/html4/strict.dtd">
>> <html>
>> <head>
>> <title>Yes-No Poll</title>
>> </head>
>> <body style="padding:1em 3em">
>> <form method="post" action="quickpoll.php" name="f1" id="f1">
>> <p>Yes:<input type="radio" name="vote" id="v1_1" value="1"><br>
>> No:<input type="radio" name="vote" id="v1_0" value="0"><br>
>> <input type="submit" value="Vote Now" name="s1" id="s1"></p>
>> </form>
>> <p>The results so far:<br>
>> Yes: $yes votes<br>
>> No: $no votes</p>
>> </body>
>> </html>
>> EOT;
>> ?>
>>
>> Rgds
>>
>> Denis McMahon
>
> Denis,
>
> I still failed to write to the poll_result.txt file and I noticed
> there's a slight difference between this file's access attributes
> compared to a similar target text file with a similar script and
> process. The other target text file has rwxrwxrwx attributes while
> this one has rwrwrw attributes. I thought the global writable would
> suffice but it seems I was incorrect. My ftp client failed to do
> chmod 755 to the global x (execute) attribute to the file.
>
> Thanks though.
>
> Don
You do not need execute privileges to write the file - in fact, you
should NOT have it - the file is not an executable. You also definitely
should NOT have global write (or read) privileges.
Did you check the return value from fopen()? ALWAYS check it to ensure
that the file opened correctly. Also, do you know if the fread() and/or
fwrite() worked correctly? You never check to see.
--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstucklex(at)attglobal(dot)net
==================
|
|
|