PHP Halen uit je MySql Database

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Sander Spijk

Sander Spijk

27/02/2007 11:20:00
Quote Anchor link
Ik ben een website aan het maken (soort CMS) waarbij ik de content van een pagina opsla in een database en deze er, afhankelijk van de url van de pagina, met $_GET (index.php?page=home&lan=nl) uithaal.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php $newquery = "SELECT * FROM sna_menu WHERE name = '".$_GET['page']."'";
$newresult = mysql_query($newquery) or die ("FOUT: " .mysql_error());
while (list($id, $ord, $name, $title, $level, $sub, $url, $nl, $en) =
mysql_fetch_row($newresult)){
echo $nl ; }
?>


In deze pagina's staat echter PHP script en deze worden weergegeven als tekst en niet verder verwerkt. Weet iemand hoe dit komt en hoe ik het zo krijg dat de scripts gewoon verwerkt worden alsof ze in de php pagina staan.
 
PHP hulp

PHP hulp

16/11/2024 15:56:53
 
- SanThe -

- SanThe -

27/02/2007 11:23:00
Quote Anchor link
Kijk eens bij eval().
 
Sander Spijk

Sander Spijk

27/02/2007 11:31:00
Quote Anchor link
Dit lijkt inderdaad wat ik nodig heb, maar kom er niet helemaal uit:

Ik heb nu de volgende script:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php $newpartyquery = "SELECT * FROM sna_menu WHERE name = '".$_GET['page']."'";
$newpartyresult = mysql_query($newpartyquery) or die ("FOUT: " .mysql_error());
while (list($id, $ord, $name, $title, $level, $sub, $url, $nl, $en) =
mysql_fetch_row($newpartyresult)){
eval("\$nl = $nl2;");
echo $nl2 ; } ?>


Maar krijg daarmee de volgende foutmelding:

Parse error: syntax error, unexpected ';' in C:\Program Files (x86)\xampp\htdocs\sna\index.php(145) : eval()'d code on line 1
 
Sander Spijk

Sander Spijk

27/02/2007 11:36:00
Quote Anchor link
Kan dit komen doordat de string niet alleen php, maar ook tekst en HTML bevat?
 
- SanThe -

- SanThe -

27/02/2007 12:13:00
Quote Anchor link
Moet dit niet andersom?
eval("\$nl = $nl2;");

dus
eval("\$nl2 = $nl;");
echo $nl2;
 
Sander Spijk

Sander Spijk

27/02/2007 12:25:00
Quote Anchor link
Krijg nu een andere foutmelding:

Parse error: syntax error, unexpected T_LNUMBER in C:\Program Files (x86)\xampp\htdocs\sna\index.php(145) : eval()'d code on line 1
 
- SanThe -

- SanThe -

27/02/2007 12:29:00
Quote Anchor link
Tja, dan zal je die code na moeten gaan zien.
 
Sander Spijk

Sander Spijk

27/02/2007 18:03:00
Quote Anchor link
De oplossing was dus heel simpel...
Omdat je de eval() aanroept vanuit php raakt de server in de war met de tags van HTML en PHP.
Een oplossing hiervoor is het beeindigen van PHP bij het aanroepen en het daarna dus weer openen, hiervoor het volgende gewijzigde script:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php $newquery = "SELECT * FROM sna_menu WHERE name = '".$_GET['page']."'";
$newresult = mysql_query($newquery) or die ("FOUT: " .mysql_error());
while (list($id, $ord, $name, $title, $level, $sub, $url, $nl, $en) =
mysql_fetch_row($newresult)){
eval('?>
' . $nl . '
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php ');    } ?>


Waarin je in deze regel kunt zien dat php eerst afgesloten wordt, daarna begint de evaluatie van het PHP gedeelte uit de Database en daarna wordt PHP weer geopend:

eval('?>' . $nl . '
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php ');
 
Sander Spijk

Sander Spijk

27/02/2007 18:04:00
Quote Anchor link
En zo te zien heeft deze website ook moeite met het principe, maar het werkt bij mij goed...
 
Elwin - Fratsloos

Elwin - Fratsloos

27/02/2007 18:53:00
Quote Anchor link
Ik denk dat dat komt omdat je code in de DB begint met < ?php (aan elkaar vast). Dat kan dus niet... je kan niet PHP openen in PHP. Dus, als je dat en de ?> aan het einde weghaalt uit de code in je DB, hoef je waarschijnlijk niet zo'n gare eval() te bakken.

Elwin
 
Sander Spijk

Sander Spijk

27/02/2007 19:37:00
Quote Anchor link
Wat je zegt klopt wel, maar als je eerst een stuk HTML hebt dan loopt ie ook niet zoals het hoort....
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.