Re: Failed to write to a text file (text file is RW) [message #171416 is a reply to message #171415] |
Sun, 02 January 2011 21:07 |
justaguy
Messages: 16 Registered: December 2010
Karma:
|
Junior Member |
|
|
On Jan 2, 3:35 pm, Jerry Stuckle <jstuck...@attglobal.net> wrote:
> On 1/2/2011 3:19 PM, justaguy wrote:
>
>
>
>> Hi,
>
>> 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?
>
>> Thanks as usual.
>
>> <?php
>> $vote = $_REQUEST['vote'];
>
>> //get content of textfile
>> $filename = "poll_result.txt";
>> $content = file($filename);
>
>> //put content in array
>> $array = explode("||", $content[0]);
>> $yes = $array[0];
>> $no = $array[1];
>
>> if ($vote == 1)
>> {
>> $yes = $yes + 1;
>> }
>> if ($vote == 0)
>> {
>> $no = $no + 1;
>> }
>
>> // debug
>> echo $yes;
>> echo $no;
>
>> // output and comments
>> /*
>> Seed poll_result.txt to read 0||0
>
>> It's always 10 even though I checked the YES option several times
>> obviously it failed to write to the poll_result.txt file.
>
>> Checked the poll_result.txt, it's 0||0
>
>> */
>
>> //insert votes to txt file
>> $insertvote = $yes."||".$no;
>> $fp = fopen($filename,"w");
>> fputs($fp,$insertvote);
>> fclose($fp);
>> ?>
>
> Are you sure you're looking at the same file you're writing to? You're
> using a relative path, after all (which would place the data file in
> your web path, where it could be downloaded by anyone - not a good idea).
>
> Does the user (if this is running under the web server, the web server
> user) have permission to write to the file?
>
> And finally, this is totally unsafe. There is nothing stopping two
> different people from opening the file at the same time, potentially
> corrupting your date.
>
> --
> ==================
> Remove the "x" from my email address
> Jerry Stuckle
> JDS Computer Training Corp.
> jstuck...@attglobal.net
> ==================
Well, on "where it could be downloaded by anyone", how come? The
processPoll.php file or a similar process php script is a server
script,
average user can't mess up with it.
On file permission, sorry, I forgot to mention, it's Read and Write.
A similar php script executes fine.
On your last point of " this is totally unsafe. There is nothing
stopping two
> different people from opening the file at the same time, potentially
> corrupting your date."
Once we fix the above two problems what could we do about it? I'm
totally new to php btw.
Many thanks.
|
|
|