Re: Variables are empty only in fwrite
| From: | Matijn Woudt | Date: | Thu, 15 Mar 2012 16:21:55 +0000 |
| Subject: | Re: Variables are empty only in fwrite | ||
| References: | 1 2 3 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-317025@lists.php.net to get a copy of this message | ||
On Thu, Mar 15, 2012 at 4:59 PM, Larry <lrrrgg@gmail.com> wrote:
> On Thu, Mar 15, 2012 at 11:53 AM, Daniel P. Brown
> <daniel.brown@parasane.net> wrote:
>> On Thu, Mar 15, 2012 at 11:30, Larry <lrrrgg@gmail.com> wrote:
>>> Hello, when I pass a variable whose value originally came from $_GET
>>> or $_REQUEST to fwrite, fwrite behaves as if it was passed an empty
>>> string. Note that the file is successfully opened and written to by
>>> the script, but the variable that originally came from $_GET does not
>>> have its value interpolated in the text file, even though it does get
>>> interpolated in the echo().
>>>
>>> ---- Code ----
>>> <?
>>> $meh = $_GET["q"];
>>> $writeline = ":" . $meh . ":" . strlen($meh) . PHP_EOL;
>>> echo ( $writeline );
>>>
>>> $fp = fopen("/tmp/wtf.log","w+");
>>> fwrite($fp, $writeline );
>>> fclose($fp);
>>>
>>> var_dump($writeline);
>>> ?>
>>
>> Are you sure it's not a permissions-based issue, perhaps when
>> writing as the normal user, then the user as which the web server
>> runs, et cetera? What happens if you completely remove /tmp/wtf.log
>> and re-run your script with the appended query string?
>
> I have removed the wtf.log file between runs, just did it once more.
> Same thing happens. A new file is created, and the contents are "::0"
>
> So I'm sure its not a permissions issue ( However I'm also sure that
> this shouldn't be happening so... ) Thanks.
The code is working fine here, of course, it should. Is it really
because of the $_GET?, have you tried setting $q = "meh123";?
Also, try using file_put_contents('/tmp/wtf.log', $writeline); instead.
- Matijn