Jump to content

How to render dynamic variable from a php file


sana

Recommended Posts

hi there.

File A contains a class with set of variables and one of the variables is invoked from another file B.php. When we execute, A.php the output is $this->lang->login_user as opposed to displaying it's value. Could anyone help what I am missing?

File A:
*************
[code=php:0]
<?php
include './fglobal.php';

class junk extends ClassBase
{

public $len;
function __construct()
{
$this->len=5;
}
function execute()
{

return $this->generate_pass($this->len);

}
public $login_user="User";
public $login_pass="password" ;
public $submit ="submit";

public function displaypage()
{

$this->get_lang_file();
$this->lang->login();
//echo($this->file_open());
//echo($this->lang->login_user);


$temp=$this->file_open();

echo ($temp);

}

function file_open() 


$filename = "Flogin.php";

if($fp = @fopen($filename, "r")) 


          //$fp = @fopen($filename, "r"); 
          $contents = fread($fp, filesize($filename)); 
          fclose($fp); 
          return $contents; 
      }else{ 
          return 'file not found'; 
      } 



}

$a =  new junk();
$a->displaypage();





//eval("echo(\$temp);");



?>
[/code]

**************

File B
*************
[code=php:0]
$this->lang->login_user
[/code]

*************

Link to comment
Share on other sites

I am trying to build a login.php page and I want to keep the content template (the HMTL content with PHP variables referring to class). All I want is to read this login.php inside my main php file and execute it so that HMTL content is rendered as it is and the variables are executed at server side....

example of my login.php content template would like...

*************
<form action='{$this->self}?a=login&amp;s=on' method='post'>
<table>
  <tr>
    <td class='header' colspan='2'>{$this->lang->login_header}</td>
  </tr>
  <tr>
    <td class='tablelight' style='width:30%'>{$this->lang->login_user}</td>
    <td class='tablelight'>
      <input class='input' type='text' name='user' size='30' tabindex='1' />
    </td>
  </tr>
  <tr>
    <td class='tabledark'>
      {$this->lang->login_pass}<br />
      <a href='{$this->self}?a=login&amp;s=pass'>{$this->lang->login_forgot_pass}</a>
    </td>
    <td class='tabledark'>
      <input class='input' type='password' name='pass' size='30' tabindex='2' />
    </td>
  </tr>
  <tr>
    <td align='center' colspan='2' class='footer'>
      <input type='hidden' name='request_uri' value='' />
      <input type='submit' name='submit' value='submit' tabindex='3' />
    </td>
  </tr>
</table>
</form>
*******************
Link to comment
Share on other sites

If that is the only line in the file then of course that is what is going to be outputed. Its not even within php tags. I suggest you look into a pre existing template engine as your second example demonstrates this is what you want to do.

There are plenty made in and for php.
Link to comment
Share on other sites

For some reason if the login.php content is stored in a database field, and when I read it and keep it in a variable and execute the content using eval() it works fine. But if I keep the content in a file and read it using fopen(), it does not render correctly. My question is, is there any encoding or something that I am missing?
Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.