Jump to content

PHP within PHP?


nyc_fan

Recommended Posts

Hi,

I really hope one of you nice people will be able to help as i've searched and searched for the answer to this question, but i just can't figure it out!

I have a mysql database which contains the main content of pages for my website.

So, when i need to select a page, the script finds the right row in the table and outputs it to display for the user. To display the text that is retrieved from the database, i use this normal bit of code -

<?php echo($dbarray['page']);  ?>

This all works fine, and if i include HTML within the 'page' field of the database, this is output to the page, so i can make things bold etc.

However, i want to be able to use a PHP script within the data that is retrieved from the database. For example, as part of the page text, i want to be able to use the users name, which is set in the main document. However, when i use this code -

<?php echo($username);  ?>

as part of the page text that is saved in the database, nothing hapens - there's just white space on the page!

People have suggested i use this code instead -

<' . "? echo($username) ?" . '>';

however all this does is output the whole PHP code to the screen, and the code isn't actually processed?

I hope this all makes sense, and if anyone has the answer as to how i can get this to work, it would be greatly appreciated.

Thanks in advance guys!
Link to comment
Share on other sites

When you echo something it is sent straight to the browser, code will not be excuted unless you [url=http://php.net/eval]eval[/url] it.
You could do this: have placeholders in the database pages like {user}, and then replace them with the real variable values like so:
[code]
$page  = str_replace('{user}',$username,$dbarray['page']);
echo ($page);
[/code]
Link to comment
Share on other sites

ShogunWarrior, to be honest, this wasn't the response i was looking for - simply because it has caused me more work! and i just wanted to do what i guess is impossible!

However, your response has worked a treat and i've now got my page looking as it should.

Thanks very much!
Link to comment
Share on other sites

there you go a nice example php within html.



<?

$name="redarrow";
$age="31";
$comment="i love php";

?>

<html>
<head>
<body>

<table border="4">
<td>
<? echo $name; ?>
</td>
<td>
<? echo $age; ?>
</td>
<td>
<? echo $comment; ?>
</td>
</form
</td>
</html>
</body>
</head>
Link to comment
Share on other sites

redarrow, thanks for your reply, but i think ShogunWarrior is right as i am pulling the code from a database where it is stored as text, assigning it to an array and then trying to execute it.

I don't think this is possible, but i have used the first reply from ShogunWarrior and have worked some magic and now i can do exactly what i want to do - and it seems even easier than i imaged (although there is a bit of work involved to start with!)
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.