login  Naam:   Wachtwoord: 
Registreer je!
 Forum

HTML en PHP in MySQL

Offline arneman - 01/07/2009 23:58
Avatar van arnemanNieuw lid Ik heb volgende code opgeslaan in MySQL

Citaat:
<p>Dit is een echo</p>
<?php
highlight_string(<?php echo 'test';?>)
?>


Als resultaat krijg ik dit:

Citaat:
<?php echo 'test';?>


De HTML wordt uitgevoerd, de PHP half. Hiermee bedoel ik dat de jusite gegevens getoond worden, maar de kleuren uit de highlight_string veranderen niet.

Iemand een beter voorstel?

13 antwoorden

Gesponsorde links
Offline SvenP - 02/07/2009 00:03 (laatste wijziging 02/07/2009 00:04)
Avatar van SvenP PHP interesse php uitvoeren vanuit mysql gaat helaas niet. (voor zover ik weet)
en, volgens mij mis je quotjes in the highlight_string functie.

wat je zou kunnen doen is iets met preg_replace of str_replace..
maar weet ik zo ff niet. (ben moe)
Offline Bart - 02/07/2009 00:06
Avatar van Bart PHP expert Als je phpinfo(); in een bestandje zet en je roept deze aan, staan de volgende settings dan ook zo:
  1. highlight.bg #FFFFFF #FFFFFF
  2. highlight.comment #FF8000 #FF8000
  3. highlight.default #0000BB #0000BB
  4. highlight.html #000000 #000000
  5. highlight.keyword #007700 #007700
  6. highlight.string #DD0000 #DD0000
Offline arneman - 02/07/2009 00:14
Avatar van arneman Nieuw lid De highlight op zich werkt in PHP, maar niet als ik hem vanuit MySQL inlaadt.
Offline jaronneke - 02/07/2009 08:17
Avatar van jaronneke MySQL interesse
  1. <?php
  2. ?>
Offline Flex1986 - 02/07/2009 08:52
Avatar van Flex1986 Gouden medaille

Senior Member
PHP.net: eval

Hiermee kan je code uitvoeren wat je ophaalt uit bijvoorbeeld een database. Als je het in eerste instantie ophaalt dan is het een string die niet als PHP geparst gaat worden dit om beveiligingsredenen.

Let wel op dat dit niet bepaald veilig is als er user-input plaats vindt.
Offline ArieMedia - 02/07/2009 08:53
Avatar van ArieMedia Gouden medaille

PHP ver gevorderde
arneman schreef:
De highlight op zich werkt in PHP, maar niet als ik hem vanuit MySQL inlaadt.
PHP.net: eval dan wel, (niet dat dit veilig is)
Offline Bart - 02/07/2009 08:55 (laatste wijziging 02/07/2009 09:02)
Avatar van Bart PHP expert Arie2Zero, lees nou eens een keer? Je ziet toch dat Flex al aangeeft:
Flex1986 schreef:
Let wel op dat dit niet bepaald veilig is als er user-input plaats vindt.


Kan je niet gewoon via onderstaande stappenplan te werk gaan:
1. Je slaat de zooi op in de DB met htmlentities($userinput, ENT_QUOTES);
2. Dan haal je ze vervolgens weer uit de DB
3. De gegevens uit de DB haal je door html_entity_decode()
4. Je gebruikt dan highlight_string(//gedecodeerde_waarde_uit_db);
Offline ArieMedia - 02/07/2009 09:00
Avatar van ArieMedia Gouden medaille

PHP ver gevorderde
BartDongelmans schreef:
Arie2Zero, lees nou eens een keer? Je ziet toch dat Flex al aangeeft:
[..quote..]
Als je kijkt naar de tijd tussen de posts zie je dat hier 1 minuut verschil in zit. Rara hoe komt het dat ik hetzelfde antwoord geef?  
Offline Flex1986 - 02/07/2009 10:27
Avatar van Flex1986 Gouden medaille

Senior Member
Als het puur om het higlighten van tekst gaat dan kan je beter de highlight uitvoeren voordat je het opslaat. Zo ben je er zekerder van dat er geen kwaadaardige scripts gedraait kunnen worden.
Offline Ontani - 02/07/2009 10:29
Avatar van Ontani Gouden medailleGouden medailleGouden medailleGouden medaille

-1
Blijf een beetje ontopic en reageer meteen wanneer je de pagina geopend hebt.

@TS: normaal wordt er gewoonweg geen php of html rechtstreeks in mysql geplaatst en al zeker niet rechstreeks vanuit mysql uitgevoerd.

Ben je zeker dat er geen andere mogelijkheid is voor wat je wil bereiken?
Offline Martijn - 02/07/2009 10:30 (laatste wijziging 02/07/2009 10:31)
Avatar van Martijn Crew PHP kan aan mij liggen, maar dit is toch gewoon hardstikke fout:
  1. <?php
  2. highlight_string(<?php echo 'test';?>)
  3. ?>

je opent php, en dan inde functie open je het nog is?

Gewoon

  1. <?php
  2. ?>
Offline Flex1986 - 02/07/2009 10:34 (laatste wijziging 02/07/2009 10:36)
Avatar van Flex1986 Gouden medaille

Senior Member
Klopt inderdaad niet helemaal er moet volgens mij dit van gemaakt worden.

  1. <?php
  2. highlight_string("<?php echo 'test';?>")
  3. ?>


Dan krijg je een gehighlighte php code net zoals Geshi dat doet voor veel talen.

Edit: Fixed Typo
Offline Ontani - 02/07/2009 10:36
Avatar van Ontani Gouden medailleGouden medailleGouden medailleGouden medaille

-1
mja, als die code dan nog eens in mysql staat ga je die nog door PHP.net: eval moeten laten lopen
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.237s