---
title: "lagra phpkod i databasen."
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/163540-lagra-phpkod-i-databasen"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "altruism"
published: "2007-08-16T12:32:59.000Z"
updated: "2007-08-16T14:39:24.000Z"
replies: 8
views: 512
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/163540-lagra-phpkod-i-databasen"
---

# lagra phpkod i databasen.

## #1 — altruism, 2007-08-16T12:32Z

Jag har ett dumt problem som är lite irriterande. Jag är ny på php mysql så det kanske finns ett enkelt svar på det här (hoppas det). 

Det är så att jag tänkte lagra en htmltabell med lite bilder/länkar i, dessa länkar innehåller phpkod. När jag sedan hämtar htmltabellen från databasen exekveras inte phpkoden i länken utan skrivs bara ut som den står. 

Tabellen ser ut såhär:

```
				
	<table cellpadding="20px"><tr><th>Measuring</th></tr><tr>
		<tr>
			<td  onMouseOver="this.style.backgroundColor='#f1f1f1'; this.style.cursor='pointer'; this.style.color='#ababab';" onMouseOut="this.style.backgroundColor='';" onclick="window.location.href='measuring.php?language=<?php echo $language;?>&pageId=cm600'"><img src="images/benchsmall.jpg" /><br/><a href='measuring.php?language=<?php echo $language;?>&pageId=cm600'>CM 600</a></td>
			<td  onMouseOver="this.style.backgroundColor='#f1f1f1'; this.style.cursor='pointer'; this.style.color='#ababab';" onMouseOut="this.style.backgroundColor='';" onclick="window.location.href='measuring.php?language=<?php echo $language;?>&pageId=cm600c'"><img src="images/benchsmall.jpg" /><br/><a href='measuring.php?language=<?php echo $language;?>&pageId=cm600c'>CM 600C+</a></td>
		</tr>
		<tr>
			<td colspan="2" onMouseOver="this.style.backgroundImage='url(images/tablebghover2.gif)'; this.style.cursor='pointer'; this.style.color='#ababab';" onMouseOut="this.style.backgroundColor=''; " onclick="window.location.href='accessories.php?language=<?php echo $language;?>&pageId=measuring'"><a href='accessories.php?language=<?php echo $language;?>&pageId=measuring'><?php echo $contents[0][0]; ?></a></td>
		</tr>
</table>
```

 

Länkarna blir då såhär:

```
http://localhost/Dataliner/measuring.php?language=%3C?php%20echo%20$language;?%3E&pageId=cm600
```

istället för t.ex.:

```
http://localhost/Dataliner/measuring.php?language=sv&pageId=cm600
```

 

Finns det något sätt att lösa detta på?

Permalänk: https://www.webforum.nu/p/163540

## #2 — @nders, 2007-08-16T12:34Z

Frågan har inte med SQL att göra - flyttas därför per omgående till lämpligare forum.

Mvh

Permalänk: https://www.webforum.nu/p/2017565

## #3 — Gislaved, 2007-08-16T12:48Z

Du *kan* köra php-koden med eval(), men jag tycker inte att det är någon bra lösning.

Permalänk: https://www.webforum.nu/p/2017579

## #4 — altruism, 2007-08-16T13:02Z

Alltså när jag skriver ut tabellen? Något sånt här?

```php
echo eval($contents[0][0]);
```

($contents\[0\]\[0\]; är mitt sätt att få tag på tabellen)

Vad skulle vara en bättre lösning?

Permalänk: https://www.webforum.nu/p/2017588

## #5 — itpastorn, 2007-08-16T13:06Z

[sprintf](https://php.net/sprintf) 

eval is evil!

Permalänk: https://www.webforum.nu/p/2017591

## #6 — altruism, 2007-08-16T13:26Z

Jag har kollat in sprintf nu men förstår inte hur/var jag ska använda det...

Permalänk: https://www.webforum.nu/p/2017595

## #7 — Pace, 2007-08-16T13:39Z

Lagra aldrig kod i databasen. Databas är till för data, därav namnet.

Bygg ett abstrakt "mallsystem" i stället. 

I stället för ...\<a href='measuring.php?language=\<?php echo $language;?\>&pageId=cm600'\>CM 600\</a\>..., lägg in \<a href='measuring.php?language=**{{language}}**&pageId=cm600'\>CM 600\</a\>.

När du sedan hämtar datan, ersätt {{language}} med ditt värde för variabeln language.

Permalänk: https://www.webforum.nu/p/2017597

## #8 — altruism, 2007-08-16T14:24Z

Okej, jag använda str_replace för att byta ut {{language}} är det rätt väg att gå eller börja använda sprintf på något sätt?

```php
$language=$_GET['language'];
$content_to_print=str_replace("{{language}}",$language,$contents[0][0]);
echo $content_to_print;
```

Permalänk: https://www.webforum.nu/p/2017617

## #9 — itpastorn, 2007-08-16T14:39Z

> **altruism skrev:**
>
> Jag har kollat in sprintf nu men förstår inte hur/var jag ska använda det...

Lagra bara atomära data i databasen. Din tabell har massor av upprepade rader (varav mycket kan försvinna med bättre hantering av CSS och javaskript, men det förtar inte principen.

sprintf() är ett sätt att sätta ihop det du hämtat från databasen till längre strängar. Du använder det med en mall.

Permalänk: https://www.webforum.nu/p/2017620

---

Tråden på webben: https://www.webforum.nu/amne/php/163540-lagra-phpkod-i-databasen
