#48271 [Fbk]: fopen creates two files
| From: | jani@php.net | Date: | Thu, 14 May 2009 21:52:54 +0000 |
| Subject: | #48271 [Fbk]: fopen creates two files | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-137340@lists.php.net to get a copy of this message | ||
ID: 48271
Updated by: jani@php.net
Reported By: my dot email dot subscriptions at gmail dot com
Status: Feedback
Bug Type: Filesystem function related
Operating System: windows xp spIII, Apache 2.2.3
PHP Version: 5.2.9
New Comment:
And accessing your test shows it only creates one file for me. So it's
propably some braindead browser issue you're having. (I tested with
Chrome..)
Previous Comments:
------------------------------------------------------------------------
[2009-05-14 21:50:50] jani@php.net
Please check your access log for this test script being accessed. I bet
you get 2 requests to it instead of one when you access it with
browser.
------------------------------------------------------------------------
[2009-05-14 20:12:56] my dot email dot subscriptions at gmail dot com
I just tested a special script that resembles the working script in two
forms.
When running the script using the browser, it does create two files.
Then when using CLI, it creates only one.
To see the test, you can use this URL:
http://www.web-carlos.com/Testing/TxtIndex.php
This will give you back the name of the created file, lets say:
'TxtIndex11.txt' to see the problem use the browser and ask for both
files like this:
http://www.web-carlos.com/WebTempFiles/TxtIndex11.txt
http://www.web-carlos.com/WebTempFiles/TxtIndex12.txt
Both files will have the same content.
To see the whole script used, browse this url:
http://www.web-carlos.com/Testing/TxtIndex.txt
I have also place a phpinfo if you want to see the server
configuration, just browse:
http://www.web-carlos.com/Testing/phpinfo.php
Believe it or not, but it does create two files using the browser, of
course I can't use CLI on the server but I do, at my development pc.
------------------------------------------------------------------------
[2009-05-14 17:19:39] pajoye@php.net
hi,
I don't think you are really using the right code to test.
there is no way that:
$fp = fopen('a1.txt', 'x');
if (!$fp) die("cannot open a1.txt\n");
fclose($fp);
produce two files, a1.txt and a2.txt. Same for all other examples.
Please run it in the CLI if you are not sure what files you are running
via apache.
------------------------------------------------------------------------
[2009-05-14 17:10:30] my dot email dot subscriptions at gmail dot com
Following your lead:
$fp = fopen('a1.txt', 'x');
if (!$fp) die("cannot open a1.txt\n");
fclose($fp);
Expected result, 1 empty file.
Resulted in two empty files, a1.txt, a2.txt
------------------------------------------
$fp = fopen('a1.gif', 'x');
if (!$fp) die("cannot open a1.gif\n");
fclose($fp);
Expected result, 1 empty file.
Resulted in two empty files, a1.gif, a2.gif
------------------------------------------
$fp = fopen('a1.pdf', 'w');
if (!$fp) die("cannot open a1.pdf\n");
fclose($fp);
Expected result, 1 empty file.
Resulted in two empty files, a1.pdf, a2.pdf
------------------------------------------
$fp = fopen('a1.txt', 'x');
if (!$fp) die("cannot open a1.txt\n");
$bytes = fwrite($fp, 'Some text');
if (!$bytes) die("cannot write to a1.txt\n");
fclose($fp);
Expected result, 1 txt file.
Resulted in two txt files, a1.txt, a2.txt both files have the same
text.
------------------------------------------
$fp = fopen('a1.gif', 'x');
if (!$fp) die("cannot open a1.gif\n");
$bytes = fwrite($fp, gifimage);
if (!$bytes) die("cannot write to a1.gif\n");
fclose($fp);
Expected result, 1 image file.
Resulted in two different images, a1.gif, a2.gif.
The image in a2.gif is the expected image and a1.gif is another
different image.
------------------------------------------
$fp = fopen('a1.pdf', 'w');
if (!$fp) die("cannot open a1.pdf\n");
$bytes = fwrite($fp, pdfcontent);
if (!$bytes) die("cannot write to a1.pdf\n");
fclose($fp);
Expected result, 1 pdf file.
Resulted in two pdf files, a1.pdf, a2.pdf both files have the same pdf
content.
------------------------------------------
------------------------------------------
NOW PLEASE, BEAR WITH ME.
$fp = fopen('a1.gif', 'x');
if (!$fp) die("cannot open a1.gif\n");
Expected result, 1 empty file.
Resulted in two empty files, a1.gif, a2.gif
As I already know that it will write two files, then I do this.
$fp = fopen('a2.gif', 'w');
if (!$fp) die("cannot open a2.gif\n");
$bytes = fwrite($fp, gifimage);
if (!$bytes) die("cannot write to a2.gif\n");
fclose($fp);
Expected result, 1 image file in a2.gif.
Resulted in two empty files, a1.gif, a3.gif and two different images in
files a2.gif and a4.gif.
The image in a4.gif is the expected image and a2.gif is another
different image.
I hope this time the code is "usable" and the problem is clear.
------------------------------------------------------------------------
[2009-05-14 08:04:19] pajoye@php.net
Your code is not usable, please provide a self contained script,
something like:
$fp = fopen('a.txt');
if (!$fp) die("cannot open a.txt\n");
$bytes = fwrite($fp, 'abc');
if (!$bytes) die("cannot write to a.txt\n");
fclose($fp);
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/48271
--
Edit this bug report at http://bugs.php.net/?id=48271&edit=1