Reputation: 2214
I have my index.php page and just afrer my header i want to include
a message.php file.
This message.php file executes some mysql queries, runs a couple of functions and in the end makes echo
of some text.
If i go to mysite.com/message.php - i can see all the text i need in my browser. But if i add the following line:
<?php include "message.php"; ?>
to my index.php, the page loads only until the include
statement and then produces 500 internal server error. How is that even possible? I'm totaly stuck here...
EDIT: I've figured it out, thanks for pointing me to the right direction with apache logs. Even though i didn't have the log access, i've made the edit to .htaccess with a statement php_value error_log log.txt
. It dumped the error in the txt file in the same directory. The error was produced by a function that was a name that was already in use. That's why a separate enviroment wasn't producing the error.
Upvotes: 1
Views: 7868
Reputation: 109623
Try to make a copy of index.php, say copy.php, insert a test.ph include, displaying just some "KILLROY WAS HERE".
If that does work, go for <?php echo "..."; ?>
.
if that does not work, place the include elsewhere and/or remove code.
One cause could be a hidden redirect, blocked because output already happened. More likely some global variable was shared.
Upvotes: 0
Reputation: 11588
As dm03514 pointed out, it might be that there's something in your message.php which is breaking your code. If there's a fatal error in that file, it'll cause a similar error in your main file.
Ask support for your error_log
- this really helps debugging.
Upvotes: 2
Reputation: 37085
Add the following to the top of your message.php
:
ini_set('display_errors',1);
error_reporting(E_ALL);
As everyone has said, there is probably a simple error (maybe a missed quotation mark) that is throwing the error, but in that environment, it gets thrown as a 500 error rather than output to the screen. Enabling the above should reveal the problem.
Upvotes: 6
Reputation: 158003
Well, if you don't have access to the log files, try to run the same file in any other environment where you can see the errors.
That's the only way available.
Asking strangers to tell you what error you have in your php file makes very little sense, you know ;)
Upvotes: 0
Reputation: 55972
This is possible becuase you have an error in your message.php
file! The next step is to figure out what is throwing the error. You can look at your web servers error logs to see the exact line. To solve this problem you only have to focus on the code in your message.php file.
Upvotes: 1