Gå til innhold

*Løst* Html/php parses, noe som er uønsket


Anbefalte innlegg

Skrevet (endret)

Jeg har et selvlaget CMS med en eksternside hvor nyheter er publiseres og et adm.system for å legge inn saker osv.

 

I nyhetssakene kan man legge inn bl.a. tittel, ingress, brødtekst. Så vil jeg utvide med et felt som heter php. Det skal være et felt som jeg kan hive inn et php-script, feks et påmeldingsskjema/form som bruker mail().

 

I databasen har jeg feltet for php-snutter satt typen text.

 

Så kommer problemet. Når jeg i admsystemet limer inn en phpsnutt, feks:

PHP
<?php

if (isset($_REQUEST['email'])) {

$email $_REQUEST['email'] ; 

$subject $_REQUEST['subject'] ;

$message $_REQUEST['message'] ;

mail"[email protected]""Subject: $subject, $message, From $email" );

echo " <font color='red'>Din melding er sent</font>"; }

else { echo "

<form method='post' action=''>

E-postadresse: <input name='email' type='text' />

Ditt navn: <input name='subject' type='text' />

<textarea name='message' style='width:100%;' rows='14'></textarea>

<input type='submit' value ='Send'/>

<hr size='1' noshade color='black'>"; }

?>

 

Når jeg i adm.sytemet skal prøve å redigere saken spretter bla. knappen frem. <input type='submit' value ='Send'/> blir tolket som html (logisk i grunn...).

 

Så spørsmålet er hvordan kan jeg få hentet inn php-snutten i et texarea som ren tekst uten at den parses som html.

 

Slik hentes php-snutten inn i adm.systemet:

<textarea name="php"><? echo $php; ?></textarea>

Endret av SparKnekt
Videoannonse
Annonse
Skrevet (endret)

Problemet ditt er nok at du har </textarea> i teksten og dermed så lukker du tekst feltet og resten blir parset.

Endret av Shadows0
Skrevet

Det var ikke værre nei... Takk skal du ha!

 

Klar for neste nøtt?

Når jeg skal vise nyheten så vil jeg jo at php-snutten skal slå til/parses, men da blir det krøll. Legger med et bilde på hvordan det bil seende ut.

 

post-94098-1176138841_thumb.jpg

 

Slik skrives php-koden ut:

PHP
<?php if ($php != ''){ ?>

<p class="brodtekst"><? echo $php?></p>

<?php ?>

 

$php starter jo med <?php så da blir det dobbeltkrøll i utskrivningen, eller?

post-94098-1176139104_thumb.jpg

Skrevet
eller.. vent litt.. den SKULLE ikke vises men virke?

8343459[/snapback]

Dette er for den eksterne siden hvor nyheten vises og bildet er screenshot av visningen av nyheten..

PHP-snuttes skal altså virke, men så vises det feil, bl.a. "; } ?> blir skrevet ut på slutten som du ser i bildet.

Skrevet
Slik skrives php-koden ut:

PHP
<?php if ($php != ''){ ?>

<p class="brodtekst"><? echo $php?></p>

<?php ?>

8343447[/snapback]

 

Du vil at php koden i $php skal evaluerest som vanlig php kode?

 

prøv med eval()

Skrevet

Kan komme med et lettere eksempel.

 

Dette ligger lagret som ren tekst i databasen:

<?php echo 'Hei'; ?>

 

Når jeg skal hente det ut så legges dette i en variabel $php

Så skal det skrives ut:

<? echo $php; ?>

 

Ingenting kommer ut

Skrevet

<?php

$lol = 'loool';

$php = "<?php echo \"Dette er $lol\"; ?>";

 

?>

 

<?php

$php = str_replace('<'.'?php','<'.'?',$php);

eval('?'.'>'.trim($php).'<'.'?');

?>

Skrevet

Operamannen slo til igjen. Tusen takk for hjelpen!

 

La bare inn dette, så funke det:

 

<?php

$php = str_replace('<'.'?php','<'.'?',$php);

eval('?'.'>'.trim($php).'<'.'?');

?>

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...