Jump to content


Photo

PHP within PHP?


  • Please log in to reply
9 replies to this topic

#1 nyc_fan

nyc_fan
  • New Members
  • Pip
  • Newbie
  • 3 posts

Posted 10 July 2006 - 05:43 PM

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!

#2 ShogunWarrior

ShogunWarrior
  • Members
  • PipPipPip
  • Advanced Member
  • 528 posts
  • LocationIreland

Posted 10 July 2006 - 06:36 PM

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

<a href="http://www.daviddora...nmedia.com/">My New Site/Blog</a> | <a href="http://www.daviddora...m/check/">Check your page for broken links/images/scripts</a>

Zend Certified Engineer
Follow me on Twitter: http://twitter.com/davidd

#3 nyc_fan

nyc_fan
  • New Members
  • Pip
  • Newbie
  • 3 posts

Posted 10 July 2006 - 07:49 PM

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!

#4 effigy

effigy
  • Staff Alumni
  • Advanced Member
  • 3,600 posts
  • LocationIL

Posted 10 July 2006 - 08:02 PM

Are you looking for something like this?
Regexp | Unicode Article | Letter Database
/\A(e)?((1)?ff(?:(?:ig)?y)?|f(?:ig)?)\z/

#5 ShogunWarrior

ShogunWarrior
  • Members
  • PipPipPip
  • Advanced Member
  • 528 posts
  • LocationIreland

Posted 10 July 2006 - 08:16 PM

The code you posted would only work if it was inline in a page, the best thing to do is use placeholders otherwise you'll have to find each piece of PHP in the page and eval them one by one, reinserting the result.
<a href="http://www.daviddora...nmedia.com/">My New Site/Blog</a> | <a href="http://www.daviddora...m/check/">Check your page for broken links/images/scripts</a>

Zend Certified Engineer
Follow me on Twitter: http://twitter.com/davidd

#6 redarrow

redarrow
  • Members
  • PipPipPip
  • Advanced Member
  • 7,308 posts
  • Locationlondon

Posted 10 July 2006 - 08:28 PM

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>
Wish i new all about php DAM i will have to learn
((EMAIL CODE THAT WORKS))
http://simpleforum.ath.cx/mail2.inc
((PAYPAL INTEGRATION THAT WORKS))
http://simpleforum.a...aypal1_info.inc

#7 ShogunWarrior

ShogunWarrior
  • Members
  • PipPipPip
  • Advanced Member
  • 528 posts
  • LocationIreland

Posted 10 July 2006 - 08:31 PM

Unless I'm mixing stuff up he's getting the page from a database, how does it magically get inline in the page?

Placeholders.
<a href="http://www.daviddora...nmedia.com/">My New Site/Blog</a> | <a href="http://www.daviddora...m/check/">Check your page for broken links/images/scripts</a>

Zend Certified Engineer
Follow me on Twitter: http://twitter.com/davidd

#8 redarrow

redarrow
  • Members
  • PipPipPip
  • Advanced Member
  • 7,308 posts
  • Locationlondon

Posted 10 July 2006 - 08:46 PM

are you useing a while loop then .

while($record=mysql_fetch_assoc($result) {

}?>


<html>
<body>
<? echo $record['user_name']; ?>
</body>
<html>

<?}?>
Wish i new all about php DAM i will have to learn
((EMAIL CODE THAT WORKS))
http://simpleforum.ath.cx/mail2.inc
((PAYPAL INTEGRATION THAT WORKS))
http://simpleforum.a...aypal1_info.inc

#9 nyc_fan

nyc_fan
  • New Members
  • Pip
  • Newbie
  • 3 posts

Posted 10 July 2006 - 08:47 PM

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!)

#10 redarrow

redarrow
  • Members
  • PipPipPip
  • Advanced Member
  • 7,308 posts
  • Locationlondon

Posted 10 July 2006 - 09:01 PM

ok mate
Wish i new all about php DAM i will have to learn
((EMAIL CODE THAT WORKS))
http://simpleforum.ath.cx/mail2.inc
((PAYPAL INTEGRATION THAT WORKS))
http://simpleforum.a...aypal1_info.inc




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users