error på en blogg

En tråd i 'Wordpress' startet av Tonny Kluften, 6 Mar 2008.

  1. Tonny Kluften

    Tonny Kluften Administrator

    Innlegg:
    15.855
    Jeg får en error på en blogg:

    Parse error: syntax error, unexpected ‘/’ in /home/clickarc/public_html/wp-content/plugins/exec-php/includes/runtime.php(41) : eval()’d code on line 4

    Noen idè om hvordan jeg kan løse det?
     
  2. Gomlers Member

    Innlegg:
    624
    Kan du gi meg et utsnitt av de 5 første linjene i koden på runtime.php?
     
  3. Tonny Kluften

    Tonny Kluften Administrator

    Innlegg:
    15.855
    Så smålåten du er da. Du kan da få hele runtime.php :D


    <?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;

    ?>
     
  4. Gomlers Member

    Innlegg:
    624
    Arg.. tror nok det er en annen fil som bugger for deg. Runtime kjører jo hele driten..

    Hva holdt du på å ordne når det skjedde?
    (Jeg er ingen php guru, men kan da litt)
     
  5. Tonny Kluften

    Tonny Kluften Administrator

    Innlegg:
    15.855
    Jeg skal gjøre som her: Adding an eBay RSS Feed to Your Wordpress Blog

    Altså, jeg skal bruke Exec-PHP og lastRSS til å vise dette:

    <?php
    include_once ‘./lastRSS.php’;
    $rss = new lastRSS;
    $rss->cache_dir = ‘./cache’; $rss->cache_time = 3600; // one hour
    if ($rs = $rss->get("http://rss.api.ebay.com/ws/rssapi?FeedName=SearchResults&siteId=0&language=en-US&output=RSS20&catref=C5&sacqy=&sacur=0&from=R6&saobfmts=exsif&dfsp=1&sacqyop=ge&saslc=0&floc=1&sabfmts=0&saprclo=&saprchi=&saaff=afcj&ftrv=1&ftrt=1&fcl=3&frpp=50&afcj=2899908&nojspr=y&satitle=Fender+Precision&afmp=&sacat=-1&saslop=1&fss=0"))
    {
    foreach ($rs[’items’] as $item) {
    $rsscount++; if ($rsscount< 6) {
    $myvar = $item[description];
    $title = $item[title];
    echo “<b>$title</b>$myvar”
    }}
    if ($rs[’items_count’] <= 0) { echo “Sorry, no items found.<br /><br />” } } else { die (’Error: RSS file not found…’); }
    ?>
     
  6. vidarlo Apache-junkie

    Innlegg:
    319
    Problemet ligger i linje 41 i runtime.php, som eval'er (altså kjører) innholdet av $content. Det er problem i linje 4 av innholdet i $content

    Hiv til print_r($content); over linje 41 (som er eval("?>$content<?php ");) og paste inn det her.
     
    Sist redigert: 6 Mar 2008
  7. Gomlers Member

    Innlegg:
    624
    hehe.. det er nå jeg tenker at jeg burde lære meg til å holde kjeft, og ikke briefe med kunnskaper jeg egentlig ikke har ;)

    For å være fullstendig ærlig med deg, håpet jeg på at du skulle komme med en eller annen snutt som det her:

    så kunne jeg elegant si at du skulle ta bort den ene skråstreken..

    Jeg hadde selvfølgelig ikke ventet noe sånn vanskelig greier som du serverer meg med nå..
    Sorry brukernavn, jeg må passe denne videre til noen andre...
     
  8. Tonny Kluften

    Tonny Kluften Administrator

    Innlegg:
    15.855
    vidarlo, får fortsatt error. Se Click Archives

    Nå vises:

    include_once ‘./lastRSS.php’;
    $rss = new lastRSS;
    $rss->cache_dir = ‘./cache’; $rss->cache_time = 3600; // one hour
    if ($rs = $rss->get(”<![CDATA[Fender Precision]]>))
    {
    foreach ($rs[’items’] as $item) {
    $rsscount++; if ($rsscount< 6) {
    $myvar = $item[description];
    $title = $item[title];
    echo “$title$myvar”
    }}
    if ($rs[’items_count’] <= 0) { echo “Sorry, no items found.

    ” } } else { die (’Error: RSS file not found…’); }
    ?>

    Parse error: syntax error, unexpected ‘/’ in /home/clickarc/public_html/wp-content/plugins/exec-php/includes/runtime.php(42) : eval()’d code on line 2
     
  9. Gomlers Member

    Innlegg:
    624
    AHA... kanskje du kan prøve dette her:
    Bytt ut " med ' på denne:

    Altså enkle ' ' og ikke doble rundt taggen din.. prøv det.
     
  10. Tonny Kluften

    Tonny Kluften Administrator

    Innlegg:
    15.855
    Har prøvd det allerede Gomlers, uten lykke.
     
  11. Gomlers Member

    Innlegg:
    624
    Nope, hjalp ikke ser jeg...!?
     
  12. Gomlers Member

    Innlegg:
    624
    Da lar vi vidarlo ta fortsettelsen ;)
    Lykke til uansett..
     
  13. vidarlo Apache-junkie

    Innlegg:
    319
    Eg har funne et par hint i en kommentar på php.net...
    PHP: eval - Manual

    Usikker på om eval støtter objekter, eller includes. Et godt stalltips er å lagre det du prøver å eval'e i ei ega php-fil, og gi php-saken i wordpress beskjed om å include()'e den fila istadenfor å eval'e heile saken, om du forstår kva eg meiner.
     
    Tonny Kluften liker dette.
  14. Tonny Kluften

    Tonny Kluften Administrator

    Innlegg:
    15.855
    Har ikke peiling på hva du snakker om desverre. Jeg kan ikke slikt. Dette skulle liksom virke slik uten noe mere fiksfakserier:

    Adding an eBay RSS Feed to Your Wordpress Blog

    Og det som står nederst om at "Some webhosting places have fopen(); turned off for “security” reasons" gjelder ikke meg, det er "on" på min server.


    Uansett takk for hjepa, jeg tror jeg prøver et annet script.
     
    Sist redigert: 6 Mar 2008

Del denne siden