eval()

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Surrix
    Senior Member
    • Jan 2002
    • 290
    • 3.0.0 Beta 5

    eval()

    Ok I have a big question that is going to take a little explaining.

    I have this code running though an eval function:
    PHP Code:
    <table border=\"0\" width=\"697\" cellspacing=\"0\" cellpadding=\"0\" align=\"center\">
      <tr>
        <td width=\"100%\" align=\"center\" background=\"logo.jpg\" height=\"141\"></td>
      </tr>
      <table width=\"700\" align=\"center\">
      <tr>
        <td background=\"spacer.gif\"></td>
      </tr>
      </table>
      <tr bgcolor=\"Black\">
     <table border=\"0\" width=\"700\" align=\"center\">
          <tr>
            <td class=\"menuleft\">
            <a href=\"index.php\">main</a> |
            <a href=\"#\">articles</a> |
            <a href=\"#\">links</a> |
            <a href=\"http://www.patrickmcdaniel.net/forums/\">community</a> |
            <a href=\"#\">contact</a> |
            <a href=\"#\">about</a></td>
            <td class=\"menuright\">
            
    $today
            </td>
        </tr>
        </table>
      </tr>
      <table width=\"700\" align=\"center\">
      <tr>
       <td background=\"spacer.gif\"></td>
      </tr>
      </table>
    </table>
    <table border=\"0\" width=\"700\" align=\"center\">
      <tr>
        <td width=\"100%\" bgcolor=\"#F1F1F1\">
        <br> 
    As you can see there is a php vairable in there. If before I called this in the eval function I had something like $today = date() would that show the date like I want it to?

    The eval function I'm trying to run looks like this.
    PHP Code:
    eval("\$index = \"".gettemplate('main_index')."\";"); 
    And yes this is all coming out of the mysql database and my gettemplate function looks like this:

    PHP Code:
    function gettemplate($templatename) {
    //Get template from database
    $template mysql_query("SELECT template FROM template WHERE title = '".addslashes($templatename)."'") or
            die (
    mysql_error());
    return 
    $template ;

    Surrix.net: Computer help forums/articles

    The person in my avatar is Elisha Cuthbert she plays on Fox's 24
  • GameCrash
    Senior Member
    • Oct 2000
    • 422
    • 3.6.x

    #2
    Originally posted by Surrix
    As you can see there is a php vairable in there. If before I called this in the eval function I had something like $today = date() would that show the date like I want it to?
    I think it should. Why don't you simply test it?

    Oh, and you should add some kind of template cache to reduce the load if you have more than one template on your page...
    GameCrash

    Project Tools Importer for forum threads
    Current Version: 1.0.0 Beta 3

    Comment

    • Stadler
      Senior Member
      • Oct 2001
      • 1021
      • 4.2.X

      #3
      Try this:
      PHP Code:
      function gettemplate($templatename,$slashes=1) {
        
      //Get template from database
        
      $template mysql_query("SELECT template FROM template WHERE title = '".addslashes($templatename)."'") or
              die (
      mysql_error());
        return 
      $slashes str_replace("\\'""'"addslashes($template)) : $template;

      In if you want to make your eval-calls look better:
      PHP Code:
      eval('$index = "'.gettemplate("main_index").'";'); 


      HTH

      Christian Stadler
      Hints & Tips:
      [[vB3] More Spiders / Indexers / Archives for vB3 - list]|[List of one-time-emails to ban]


      http://sfx-images.mozilla.org/affili...efox_80x15.png

      Comment

      • Cyborg from DH
        Senior Member
        • Nov 2002
        • 305

        #4
        or just

        PHP Code:
        str_replace('"''\\"'$template
        instead of adding and then removing some....

        Comment

        • Stadler
          Senior Member
          • Oct 2001
          • 1021
          • 4.2.X

          #5
          mmh, I didn't know, that addslashes only works for quotes and not for backslashes itself ...
          Hints & Tips:
          [[vB3] More Spiders / Indexers / Archives for vB3 - list]|[List of one-time-emails to ban]


          http://sfx-images.mozilla.org/affili...efox_80x15.png

          Comment

          • Cyborg from DH
            Senior Member
            • Nov 2002
            • 305

            #6
            whoops, my bad...

            Comment

            • Stadler
              Senior Member
              • Oct 2001
              • 1021
              • 4.2.X

              #7
              well, my bad, too ... I haven't read www.php.net/addslashes correctly, so I thought, it only worked for quotes, then
              Hints & Tips:
              [[vB3] More Spiders / Indexers / Archives for vB3 - list]|[List of one-time-emails to ban]


              http://sfx-images.mozilla.org/affili...efox_80x15.png

              Comment

              widgetinstance 262 (Related Topics) skipped due to lack of content & hide_module_if_empty option.
              Working...