[PHP] code in code uitvoeren

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • njh
  • Registratie: Oktober 2004
  • Laatst online: 15-09 16:01
ik heb een vraag/probleem waar ik tegen aanloop,


ik ben mijn site in een nieuw jasje aan het maken.
nu heb ik het gebruik van pageid's geintroduceerd,
dit houd in dat ik een var gebruik als id, en dan uit de mysql db de inhoud voor een div opvraag.

ik vraag de inhoud van die div op in een stukje code tussen <? ... ?> in het begin van de file.

nu kom ik in het divje waar ik via
code:
1
2
3
4
5
<?

print $content;

?>


de inhoud van het divje laat zien, dit werkt allemaal prachtig (helemaal blij),
maar ik zou graag nog meer php code uitvoeren die ik in de db heb staan, zoiets als dit:
code:
1
2
3
4
5
<?

print $jan401;

?>


dan heb ik dus in feite deze situatie:
code:
1
2
3
4
<?
   <?
   ?>
?>

volgens mij kan dit niet (en mag niet) aangezien alleen de eerste code die hard in de .php file staat uitgevoerd wordt.
de 2 code wordt wel uitgespuugd, maar doet niks (is ook gewoon te zien in de page source)

is er een manier om toch code binnen code uit te voeren?

[ Voor 4% gewijzigd door njh op 02-10-2005 02:22 ]


Acties:
  • 0 Henk 'm!

  • spone
  • Registratie: Mei 2002
  • Niet online
zoek eens in de richting van eval(); dat is mn eerste ingeving.

i5-14600K | 32GB DDR5-6000 | RTX 5070 - MacBook Pro M1 Pro 14" 16/512


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Code hoort niet in je database...maar als het dan toch echt moet, dan is er inderdaad evil eval.

Maar nogmaals, code hoort niet in je database, dus ik waag het je ontwerp in twijfel te trekken.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • aex351
  • Registratie: Juni 2005
  • Laatst online: 02:04

aex351

I am the one

-NMe- schreef op zondag 02 oktober 2005 @ 02:26:
Code hoort niet in je database...maar als het dan toch echt moet, dan is er inderdaad evil eval.

Maar nogmaals, code hoort niet in je database, dus ik waag het je ontwerp in twijfel te trekken.
Mee eens, mogelijk dat je via enige tutorials nog verder kan verdiepen in je structuur van je website. Zodat je een betere kijk hebt op wat php nou precies is in verband met bijvoorbeeld html.

< dit stukje webruimte is te huur >


Acties:
  • 0 Henk 'm!

  • njh
  • Registratie: Oktober 2004
  • Laatst online: 15-09 16:01
-NMe- schreef op zondag 02 oktober 2005 @ 02:26:
Code hoort niet in je database...maar als het dan toch echt moet, dan is er inderdaad evil eval.

Maar nogmaals, code hoort niet in je database, dus ik waag het je ontwerp in twijfel te trekken.
ik hoef niet perse code in mijn database op te slaan,
maar ik weet even niet een andere oplossing.

nu kan ik dmv een corresponderend id veld in de db, een code terug geven.
op die manier heb ik dus 1 file die alles doet (ipv mijn oude situatie waar ik 20php files heb)

ik heb bijvoorbeeld een shoutbox gecode,
als ik die nu wil laten zien in het divje, dan moet die code daar wel uitgevoerd worden.
ok misschien kan ik hem includen in het divje, maar dan heb ik nog steeds minimale php code die toch nog uit de db moet komen.

ik ga (na slaapie doen) wel even kijken of ik er met eval() uitkom.

kritiek is altijd welkom

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

PHP:
1
2
3
4
5
6
7
8
9
$query = mysql_query("
   SELECT *
   FROM `tabel`
   WHERE `id` = 3
");

if ($row = mysql_fetch_assoc($query)) {
   echo '<div><strong>' . $row['name'] . '</strong>: ' . $row['message'] . '</div>';
}

Ik zie eigenlijk niet waarom je voor zoiets simpels als een shoutbox code in code wil gebruiken? Er staat data in je database, en die haal je op in een variabele. Die kun je vervolgens zonder problemen afdrukken, en ik vraag me dus af waar het aspect "code in code" om de hoek komt? :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • njh
  • Registratie: Oktober 2004
  • Laatst online: 15-09 16:01
-NMe- schreef op zondag 02 oktober 2005 @ 02:51:
PHP:
1
2
3
4
5
6
7
8
9
$query = mysql_query("
   SELECT *
   FROM `tabel`
   WHERE `id` = 3
");

if ($row = mysql_fetch_assoc($query)) {
   echo '<div><strong>' . $row['name'] . '</strong>: ' . $row['message'] . '</div>';
}

Ik zie eigenlijk niet waarom je voor zoiets simpels als een shoutbox code in code wil gebruiken? Er staat data in je database, en die haal je op in een variabele. Die kun je vervolgens zonder problemen afdrukken, en ik vraag me dus af waar het aspect "code in code" om de hoek komt? :)
omdat mijn site meer heeft dan alleen een shoutbox ;)

ik heb rechts onderin de site wel een kleine shoutbox die alleen de laatste 5 messages geeft, maar ik wil de mensen ook de mogelijkheid bieden om hem echt te openen zodat je alles ziet etc.

kijk voor mijn contact page werkt dit principe super, aangezien de content dan alleen maar html is (text).

ik kan moeilijk alle php scripts die ik ooit heb gescript in de hoofdcode zetten, de output in een var gooien en die dan, als er om gevraagt is, laten zien.

ik wil een beheerbare site die gewoon duidelijk is opgebouwt.

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Nooit van includes gehoord?

Vooralsnog heb ik nog steeds niks vreemds gehoord waardoor "code in code" nodig is voor je ontwerp. ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • njh
  • Registratie: Oktober 2004
  • Laatst online: 15-09 16:01
-NMe- schreef op zondag 02 oktober 2005 @ 03:03:
Nooit van includes gehoord?

Vooralsnog heb ik nog steeds niks vreemds gehoord waardoor "code in code" nodig is voor je ontwerp. ;)
punt is dat een include ook php is.
dus als de user op shoutbox heeft geklikt, ik de var shoutbox als pageid mee geef, en dan?
ik wil dus die shoutbox zien, ik kijk in de db wat er naast staat en return die code in de div.
als ik nu een include wil doen in die div weet ik A: niet wat ik moet includen, en B: een include is ook php, en kan dus ook al niet

nog niet convinced he? dacht ik al :P
heb mijn best gedaan

Acties:
  • 0 Henk 'm!

  • aex351
  • Registratie: Juni 2005
  • Laatst online: 02:04

aex351

I am the one

jan401 schreef op zondag 02 oktober 2005 @ 03:08:
[...]

punt is dat een include ook php is.
dus als de user op shoutbox heeft geklikt, ik de var shoutbox als pageid mee geef, en dan?
ik wil dus die shoutbox zien, ik kijk in de db wat er naast en return die code in de div.
als ik nu een include wil doen in die div weet ik A: niet wat ik moet includen, en B: een include is ook php, en kan dus ook al niet

nog niet convinced he? dacht ik al :P
heb mijn best gedaan
Dat kan zonder probleem hoor, include is gewoon een bestand in een bestand zetten (server sided) . Waarom je nou steeds met de suggestie code in code komt is mij een raadsel aangezien je shoutbox script gewoon een losse script is dat je implenteerd in de div waar jij het in wilt hebben en het overige code ergens anders.

PHP:
1
2
3
4
<html><head><title>test</title></head><body>
<div id="divnummer1> <?php /*php code hier */ ?>  </div>
<div id="divnummer2> <?php /*shout box hier */ ?> </div>
</body></html>

[ Voor 19% gewijzigd door aex351 op 02-10-2005 03:19 ]

< dit stukje webruimte is te huur >


Acties:
  • 0 Henk 'm!

  • njh
  • Registratie: Oktober 2004
  • Laatst online: 15-09 16:01
aex351 schreef op zondag 02 oktober 2005 @ 03:12:
[...]


Dat kan zonder probleem hoor, include is gewoon een bestand in een bestand zetten (server sided) . Waarom je nou steeds met de suggestie code in code komt is mij een raadsel aangezien je shoutbox script gewoon een losse script is dat je implenteerd in de div waar jij het in wilt hebben en het overige code ergens anders.
hoe kan ik nou iets includen als ik op een universele manier een pagina wil identificeren.
ik kan NIET in de db zetten include blabla, ik kan ook niet hardcoded een include doen.
kortom ik zie niet in hoe ik dan wel moet includen.

ik zou alleen ipv van de print $content een include kunnen doen (dus niet weergeven wat de db retour geeft)
maar dan heb ik dus ongeacht wat ik intik als pageid altijd dezelfde include.

misschien snap je beter wat ik qua code in mijn ontwerp wil bouwen als de temp site ziet:
http://netwerk.homeunix.org/
(alleen home, about us en news bevat nu wat, waarbij news mijn test ding is met eval etc)

Acties:
  • 0 Henk 'm!

  • aex351
  • Registratie: Juni 2005
  • Laatst online: 02:04

aex351

I am the one

Echt wijzer word ik er ook niet op, wat is dat toch met dat database gedoe. Ben je nog steeds van plan om je code daarin op te slaan ?

edit: misschien kan je wat meer inhoudelijke voorbeelden geven over de structuur van je website zoals die nu is, en je visie erop.

[ Voor 38% gewijzigd door aex351 op 02-10-2005 03:23 ]

< dit stukje webruimte is te huur >


Acties:
  • 0 Henk 'm!

  • njh
  • Registratie: Oktober 2004
  • Laatst online: 15-09 16:01
aex351 schreef op zondag 02 oktober 2005 @ 03:20:
Echt wijzer word ik er ook niet op, wat is dat toch met dat database gedoe. Ben je nog steeds van plan om je code daarin op te slaan ?
omdat ik heel veel met databases doe, ik heb een knowledge base en dat soort dingen, als ik nu articles, shouts, news etc allemaal in een db kan zetten, gaat het mooi uniform.

over die div met <? blabla ?>, dat heb ik al toegepast in de shoutbox rechtsonderin, dat is geen probleem.

maar ik kan niet in mijn middelste een div een include doen, dan heb ik namelijk bij elke pagina die shoutbox (als de include daarheen verwijst)

edit:
as you wish:

ik heb een index.php, deze bevat de website zoals je deze nu ziet gemaakt in html met een stylesheet en een aantal divjes.
ik gebruik 1div die in het midden naar beneden loopt om de requested page weer te geven.
elke onderdeel van de site roep ik aan middels de var $pageid.

in mijn database heb ik een verzameling van die namen (oa: home, about & news)
in het 2e veld heb ik de ruimte om de pagina op te slaan (veelal is dit text opgemaakt met html, maar soms kan dit ook php zijn)

ik heb dus 1 query die op de database een query loslaat ( * where `pageid` = "$pageid" )
dat resultaat stop ik in $content.

in het divje waar ik het net over had, voer ik dit uit:
code:
1
2
3
4
5
<?

print $content;

?>


werkt lekker snel, de pagina hoeft niet helemaal opnieuw te laden etc.
visie = een beheerbare site die makkelijk aan te passen is (centrale index, dat is nu gelukt) en op 1 plek alle code/artikelen

hoop dat dit wat verduidelijkt

[ Voor 43% gewijzigd door njh op 02-10-2005 03:34 ]


Acties:
  • 0 Henk 'm!

  • aex351
  • Registratie: Juni 2005
  • Laatst online: 02:04

aex351

I am the one

Ik gebruik een database voor opslag van data, niet voor code. code maak ik in de php bestanden zelf.

[ Voor 29% gewijzigd door aex351 op 02-10-2005 03:29 ]

< dit stukje webruimte is te huur >


Acties:
  • 0 Henk 'm!

  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

Zover ik kan zien hebben al die pagina's dezelfde layout met andere tekst. Dat is zo absurd makkelijk (en redelijk fatsoenlijk) met Smarty te doen dat elke andere poging eigenlijk lachwekkend is.

All my posts are provided as-is. They come with NO WARRANTY at all.


Acties:
  • 0 Henk 'm!

  • njh
  • Registratie: Oktober 2004
  • Laatst online: 15-09 16:01
CyBeR schreef op zondag 02 oktober 2005 @ 03:34:
Zover ik kan zien hebben al die pagina's dezelfde layout met andere tekst. Dat is zo absurd makkelijk (en redelijk fatsoenlijk) met Smarty te doen dat elke andere poging eigenlijk lachwekkend is.
kijk he, ik prog graag in php, en waarom zou ik het niet zelf maken? omdat het tijd besparend is? nee, ik leer hier zoveel meer van dan simpelweg een paar configs aan te passen.
tot nu toe al mijn code zelf geschreven, en dat wil ik nog even vol houden.

Acties:
  • 0 Henk 'm!

  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

jan401 schreef op zondag 02 oktober 2005 @ 03:39:
[...]
ik leer hier zoveel meer van dan simpelweg een paar configs aan te passen.
Dat betwijfel ik eigenlijk, gezien wat je plannen zijn :)

Smarty is overigens niet 'een paar configs aanpassen'. Smarty is een template engine. Die poept niets uit zonder dat je zelf de code ervoor geschreven hebt. Alleen maakt 't je het wat makkelijker om die code een beetje onderhoudbaar te houden.

All my posts are provided as-is. They come with NO WARRANTY at all.


Acties:
  • 0 Henk 'm!

  • njh
  • Registratie: Oktober 2004
  • Laatst online: 15-09 16:01
CyBeR schreef op zondag 02 oktober 2005 @ 03:43:
[...]


Dat betwijfel ik eigenlijk, gezien wat je plannen zijn :)

Smarty is overigens niet 'een paar configs aanpassen'. Smarty is een template engine. Die poept niets uit zonder dat je zelf de code ervoor geschreven hebt. Alleen maakt 't je het wat makkelijker om die code een beetje onderhoudbaar te houden.
ik leer hier van in de zin van: ik bouw iets wat ik nog niet eerder op deze manier heb gemaakt.

ok ik had even snel rond gekeken op smarty, maar ik wil dit gewoon zelf maken.
ik kan als forum ook phpbb gebruiken, maar ik heb ondertussen zelf al 1 gemaakt.

moraal: alles wat ik kan bedenken zal ongetwijfeld al een keer gemaakt zijn, dat houd nog niet in dat ik het niet moet gaan maken omdat ik er toch niet van leer.

ik ga nu echt slapen en morgen test ik wel verder

Acties:
  • 0 Henk 'm!

  • Priet
  • Registratie: Januari 2001
  • Laatst online: 21:17

Priet

To boldly do what no one has..

Ga nou toch eecht niet PHP code in je database stoppen, daar is dat ding niet voor bedoeld!

Dé oplossing hiervoor is gebruik maken van include():

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<!-- HTML -->
<div>
<?php
switch ($pageid) {
    case "home":
        include("home.php");
    break;
    case "hardware":
        include("hardware.php");
    break;
    case "contact":
        include("contact.php");
    break;
}
?>
<!-- HTML -->


Wat is hierop tegen? Je kan alles afhandelen via je index.php en je kunt aan de hand van ?pageid de juiste pagina tonen. Precies wat jij wilt toch?

"If you see a light at the end of a wormhole, it's probably a photon torpedo!"


Acties:
  • 0 Henk 'm!

  • spone
  • Registratie: Mei 2002
  • Niet online
Geef op deze manier mee welke pagina je wil: http://ssfgs/blaat.php?pagina=test

Doe vervolgens verderop in je pagina:

$pagina = $_GET['pagina'];

en weer verderop in je div:

<div id="shoutbox_of_whatever"><?php if ($pagina == "shoutbox") include("shoutbox.php"); ?></div>

Veel succes! ;)

i5-14600K | 32GB DDR5-6000 | RTX 5070 - MacBook Pro M1 Pro 14" 16/512


Acties:
  • 0 Henk 'm!

  • njh
  • Registratie: Oktober 2004
  • Laatst online: 15-09 16:01
Priet schreef op zondag 02 oktober 2005 @ 09:15:
Ga nou toch eecht niet PHP code in je database stoppen, daar is dat ding niet voor bedoeld!

Dé oplossing hiervoor is gebruik maken van include():

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<!-- HTML -->
<div>
<?php
switch ($pageid) {
    case "home":
        include("home.php");
    break;
    case "hardware":
        include("hardware.php");
    break;
    case "contact":
        include("contact.php");
    break;
}
?>
<!-- HTML -->


Wat is hierop tegen? Je kan alles afhandelen via je index.php en je kunt aan de hand van ?pageid de juiste pagina tonen. Precies wat jij wilt toch?
ja ik denk dat jullie gelijk hebben, dat code niet in een db hoort.

Ik ga nu gewoon voor elke pagina waar ik php wil includen een case maken, de andere pagina's vraag ik op uit de db:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
<!-- HTML -->
<div>
<?php
switch ($pageid) {
    case "shoutbox":
        include("shoutbox.php");
    break;
    default:
        print $content;
}
?>
<!-- HTML -->


dit werkt :)
bedankt voor de input

[ Voor 10% gewijzigd door njh op 02-10-2005 11:46 ]


Acties:
  • 0 Henk 'm!

  • spone
  • Registratie: Mei 2002
  • Niet online
jan401 schreef op zondag 02 oktober 2005 @ 11:44:
[...]

dit werkt :)
bedankt voor de input
Gewoon niet zo eigenwijs zijn :Y)

i5-14600K | 32GB DDR5-6000 | RTX 5070 - MacBook Pro M1 Pro 14" 16/512


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

CyBeR schreef op zondag 02 oktober 2005 @ 03:34:
Zover ik kan zien hebben al die pagina's dezelfde layout met andere tekst. Dat is zo absurd makkelijk (en redelijk fatsoenlijk) met Smarty te doen dat elke andere poging eigenlijk lachwekkend is.
Wat je nu over Smarty zegt, geldt ook over PHP. En dan bedoel ik deze keer niet dat PHP van zichzelf al een template engine is; ik bedoel in dit geval dat een paar regeltjes PHP - zoals hierboven ook te zien is - precies doen wat de topicstarter wil. Lijkt me dan ook redelijk vaag om alleen voor dit over te stappen op Smarty templates. ;)
spone schreef op zondag 02 oktober 2005 @ 11:53:
Gewoon niet zo eigenwijs zijn :Y)
Gewoon niet zo achteraf natrappen. ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

-NMe- schreef op zondag 02 oktober 2005 @ 13:11:
[...]

Wat je nu over Smarty zegt, geldt ook over PHP. En dan bedoel ik deze keer niet dat PHP van zichzelf al een template engine is; ik bedoel in dit geval dat een paar regeltjes PHP - zoals hierboven ook te zien is - precies doen wat de topicstarter wil. Lijkt me dan ook redelijk vaag om alleen voor dit over te stappen op Smarty templates. ;)
Mja ok, natuurlijk. Maar voor wat ik van de site zag was 't een prima kandidaat voor een template engine als Smarty :)

All my posts are provided as-is. They come with NO WARRANTY at all.


Acties:
  • 0 Henk 'm!

  • njh
  • Registratie: Oktober 2004
  • Laatst online: 15-09 16:01
CyBeR schreef op zondag 02 oktober 2005 @ 13:12:
[...]


Mja ok, natuurlijk. Maar voor wat ik van de site zag was 't een prima kandidaat voor een template engine als Smarty :)
maakt niet uit, ik kijk ook graag naar alternatieven hoor.
Het werkt nu, dus ik kan weer verder

edit:
toch ook nog even bedanken voor de snelle replies op het toch al wat late tijdstip ;)

[ Voor 14% gewijzigd door njh op 02-10-2005 13:35 ]


Acties:
  • 0 Henk 'm!

  • spone
  • Registratie: Mei 2002
  • Niet online
-NMe- schreef op zondag 02 oktober 2005 @ 13:11:[...]

Gewoon niet zo achteraf natrappen. ;)
Waarschijnlijk hebben jij en ik een interpretatieverschil wat betreft de " :Y) "

:)

i5-14600K | 32GB DDR5-6000 | RTX 5070 - MacBook Pro M1 Pro 14" 16/512

Pagina: 1