On Thu, Mar 15, 2012 at 12:21 PM, Matijn Woudt <tijnema@xxxxxxxxx> wrote: > On Thu, Mar 15, 2012 at 4:59 PM, Larry <lrrrgg@xxxxxxxxx> wrote: >> On Thu, Mar 15, 2012 at 11:53 AM, Daniel P. Brown >> <daniel.brown@xxxxxxxxxxxx> wrote: >>> On Thu, Mar 15, 2012 at 11:30, Larry <lrrrgg@xxxxxxxxx> 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 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, and file_put_contents(): <? $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 ); var_dump($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