fatkatie Posted October 10, 2017 Share Posted October 10, 2017 What's going on here? After spending too much time on this I found that lines appearing after the php closing delimiter ?> caused some kind problem that stopped readfile. Here's the html: <img src='support/g.php' > and here is g.php <?php require_once 'defs.php'; $b = readfile('/98/fa/7d2e445c77fbc9bda6a860cc.jpg'); ?> Here's the defs.php file. This works fine. But if you add a couple of blank lines after the ?> it will break g.php. I don't know how or why. <?php $x = 1; ?> What's going on. I've never paid any attention to blanks after ?>. Does it matter. Is it a here doc thing? I've since edited all my includes. All now terminate immediately after the ?> PHP 5.6.24 (cli) (built: Jul 20 2016 21:19:29) Link to comment Share on other sites More sharing options...
requinix Posted October 10, 2017 Share Posted October 10, 2017 Given that you're outputting an image, it would be best not to output anything else but the image data. Best practices are to leave the final ?> out. This is a good reason why. Link to comment Share on other sites More sharing options...
Sepodati Posted October 11, 2017 Share Posted October 11, 2017 Well, think about it. If the image is defined by the data "abcdef" and you output "abcdef\n\n", well, you haven't output the right bits for that image, have you. You've changed it by adding extra bits on the end. Link to comment Share on other sites More sharing options...
fatkatie Posted October 11, 2017 Author Share Posted October 11, 2017 It obvious when you know. Thanks both. It was a tough one to solve. I've removed the terminal ?> per lazy's suggestion. Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.