Post the actual error itself.
In this case, I'd expect that it'll be an unexpected $end error. This is invalid: <?php>. Depending on configurations one of the following must be used: <?php ... ?> <? ... ?> <% ... %> <script language="php"> ... </script>
Edit:
Also, things like this are invalid: <p>HERE;</p>. HEREDOC ending delimiters MUST be on a line by themselves and not be preceded by any characters.
Parse error: syntax error, unexpected $end in /home/content/12/9807012/html/wp-content/plugins/exec-php/includes/runtime.php(42) : eval()’d code on line 30
Suggests that you haven't given us the right snippet of code; we need this file: (that riduclous location here)/includes/runtime.php
You have done a lot of stuff wrong. You have used the HEREDOC wrongly, dropped into and out of PHP and HTML code terribly.
The following will probably not work as you wanted your code to work because I do not see the rest of your code but it should start you off as to how you should drop into and out of PHP code.
Thanks for the replies... I'm aware it's hideous. I didn't write it, but was asked to work with it. Here's the includes/runtime.php:
Code:
<?php
require_once(dirname(__FILE__).'/cache.php');
require_once(dirname(__FILE__).'/const.php');
// -----------------------------------------------------------------------------
// the ExecPhp_Runtime class handles the execution of PHP code during
// access to the articles content or widget including checks against
// the exec_php / edit_others_php capability or plugin options respectivly
// -----------------------------------------------------------------------------
if (!class_exists('ExecPhp_Runtime')) :
class ExecPhp_Runtime
{
var $m_cache = NULL;
// ---------------------------------------------------------------------------
// init
// ---------------------------------------------------------------------------
function ExecPhp_Runtime(&$cache)
{
$this->m_cache =& $cache;
add_filter('the_content', array(&$this, 'filter_user_content'), 1);
add_filter('the_content_rss', array(&$this, 'filter_user_content'), 1);
add_filter('the_excerpt', array(&$this, 'filter_user_content'), 1);
add_filter('the_excerpt_rss', array(&$this, 'filter_user_content'), 1);
add_filter('widget_text', array(&$this, 'filter_widget_content'), 1);
add_filter('user_has_cap', array(&$this, 'filter_user_has_cap'), 10, 3);
}
// ---------------------------------------------------------------------------
// tools
// ---------------------------------------------------------------------------
function eval_php($content)
{
// to be compatible with older PHP4 installations
// don't use fancy ob_XXX shortcut functions
ob_start();
eval("?>$content<?php ");
$output = ob_get_contents();
ob_end_clean();
return $output;
}
// ---------------------------------------------------------------------------
// hooks
// ---------------------------------------------------------------------------
function filter_user_content($content)
{
global $post;
// check whether the article author is allowed to execute PHP code
if (!isset($post) || !isset($post->post_author))
return $content;
$poster = new WP_User($post->post_author);
if (!$poster->has_cap(ExecPhp_CAPABILITY_EXECUTE_ARTICLES))
return $content;
return $this->eval_php($content);
}
function filter_widget_content($content)
{
// check whether the admin has configured widget support
$option =& $this->m_cache->get_option();
if (!$option->get_widget_support())
return $content;
return $this->eval_php($content);
}
function filter_user_has_cap($allcaps, $caps, $args)
{
// $allcaps = Capabilities the user currently has
// $caps = Primitive capabilities being tested / requested
// $args = array with:
// $args[0] = original meta capability requested
// $args[1] = user being tested
// See code for assumptions
// This handler is only set up to deal with the edit_others_pages
// or edit_others_posts capability. Ignore all other calls into here.
$pages_request = in_array('edit_others_pages', $caps);
$posts_request = in_array('edit_others_posts', $caps);
if ((!$pages_request && !$posts_request)
|| ($pages_request && $posts_request)
|| !$args[0] || !$args[1] || $args[1] == 0)
return $allcaps;
global $post;
if (!isset($post))
return $allcaps;
$poster = new WP_User($post->post_author);
if (!$poster->has_cap(ExecPhp_CAPABILITY_EXECUTE_ARTICLES))
return $allcaps;
$editor_has_edit_others_php = (in_array(ExecPhp_CAPABILITY_EDIT_OTHERS_PHP, $allcaps)
&& $allcaps[ExecPhp_CAPABILITY_EDIT_OTHERS_PHP]);
if ($editor_has_edit_others_php)
return $allcaps;
// article may contain PHP code due to the original posters capabilities
// but the editor is not allowed to edit others PHP code, so filter out
// requested edit_others_xxx settings from the allowed caps
if ($pages_request)
unset($allcaps['edit_others_pages']);
if ($posts_request)
unset($allcaps['edit_others_posts']);
return $allcaps;
}
}
endif;
?>
Redcoder-- That did actually work (THANKS!), but to a point... where is it getting the text that rendered before/after the table on the page-- see link here:
You have done a lot of stuff wrong. You have used the HEREDOC wrongly, dropped into and out of PHP and HTML code terribly.
The following will probably not work as you wanted your code to work because I do not see the rest of your code but it should start you off as to how you should drop into and out of PHP code.
The above code is now causing the shadowbox text to show up on the live site, see here: http://dstone1029.net/box-office-analyst-dev/. Does anyone know how to fix it so it doesn't show up? All help is soooo appreciated! I'm near the end of a issue that's been plaguing me for days.
Just the comments that were wrongly left in the HTML code. HTML outputs them like normal HTML.
If the above worked, the below should do it. Although I think that at one time it will become unstable because of hanging <p> and such. Try and redo it carefully.
Thanks for the replies... I'm aware it's hideous. I didn't write it, but was asked to work with it.
Please don't take this the wrong way but should you be working with it if you're unable to spot basic syntax errors? If I were in your position I'd be asking someone else to deal with it.
//Please don't use this for your form processing:
if (isset($_POST['submit']))
//Internet explorer has a bug and does not always send the submit value.
Thanks, TangoForce. I agree with you. I was only called in to add a WP plugin that would enable the links to open in a new window. I am not the PHP person, but was trying to get it to show up on the page, so I could enable the plugin.
//Please don't use this for your form processing:
if (isset($_POST['submit']))
//Internet explorer has a bug and does not always send the submit value.
Thanks, TangoForce. I agree with you. I was only called in to add a WP plugin that would enable the links to open in a new window. I am not the PHP person, but was trying to get it to show up on the page, so I could enable the plugin.
If you want my honest opinion, the code is full of so many bodges that you'd be better off getting the original coder to sort it out before it comes back to you for the WP plugin business.
//Please don't use this for your form processing:
if (isset($_POST['submit']))
//Internet explorer has a bug and does not always send the submit value.
That can't be right. You'd basically have a file path like this:
runtime.php/cache.php
runtime.php/const.php
No, that's okay, its pulling the directory off of the __FILE__. If you have a newer version of PHP, its better to just use the __DIR__ magic constant instead of the dirname(__FILE__), but __DIR__ is new as of. . . 5.3 I think it was.
Quote:
Originally Posted by tangoforce
If you want my honest opinion, the code is full of so many bodges that you'd be better off getting the original coder to sort it out before it comes back to you for the WP plugin business.
Agreed. If you didn't author it, its so full of syntactical errors that it would never have run properly (unless. . . it uses some type of custom parsing, which it doesn't given what I see in the other blocks). I pull :shiftyeyes: when I see it's eval'ing the code; no wonder the wp is so slow