On Thu, Mar 15, 2012 at 12:21 PM, Matijn Woudt <tijn...@gmail.com> wrote:
> On Thu, Mar 15, 2012 at 4:59 PM, Larry <lrr...@gmail.com> wrote:
>> On Thu, Mar 15, 2012 at 11:53 AM, Daniel P. Brown
>> <daniel.br...@parasane.net> wrote:
>>> On Thu, Mar 15, 2012 at 11:30, Larry <lrr...@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 );
>>> 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
Yes I have tried to set a variable explicitly with a string, and that
variable does end up interpolated into the file. I just tried using
file_put_contents with the same result.
Here is a modified version, showing another variable that does work,
$meh = $_GET["q"];
$good = "Yay I go in the File" . PHP_EOL;
$writeline = ":" . $meh . ":" . strlen($meh) . ":" . $good;
echo ( $writeline );
file_put_contents("/tmp/wtf.log", $writeline );
Here the response/stdout:
:meh123:6:Yay I go in the File string(31) ":meh123:6:Yay I go in the File "
But the file is the same:
root@prime:/tmp# rm wtf.log
root@prime:/tmp# ls wtf.log
ls: cannot access wtf.log: No such file or directory
[ I make the request ]
root@prime:/tmp# cat wtf.log
::0:Yay I go in the File
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php