[php&mysql] textarea probleem

Pagina: 1
Acties:

  • Snow_King
  • Registratie: April 2001
  • Nu online

Snow_King

Konijn is stoer!

Topicstarter
Hoi,

Ik ben bezig met een website aan het maken, maar zit met een probleem.
De site haalt alle HTML uit een database (mysql) en dat verschijnt op de website.
Bij deze website hoort ook een admin, zodat de website zo overal vandaan kan worden veranderd.

Nu zit ik met het volgende, de HTML in de admin page wordt uit de database gehaald en in een textarea gezet, nu is er ook een contact pagina en daar wordt ook de tag </textarea> gebruikt en deze staat in de database.

Nu wordt dus deze tag dus in die textarea van de admin site gezet en nu wordt dus de </textarea> die uit de db komt aangezien als het einde van de textarea en niet de gene die in de admin page staat.

Hier even wat code, voor de mensen die het niet helemaal begrijpen (het is moeilijk uit te leggen)
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php

$result = mysql_query("SELECT * FROM page WHERE id='$page'");

while ( $row = mysql_fetch_array($result) ) {
    $item = $row["name"];
    $txt = $row["txt"];
    $id = $row["id"];

echo("
<form action='$PHP_SELF?id=$id' method='post'>
<table cellpadding='0' cellspacing='0' border='0' align='center' width='100%' height='98%'>
    <tr height='15'>
        <td><input type='txt' name='item' value='$item'></td>
    </tr>
    <tr valign='top'>
        <td><textarea  name='txt' rows='25' cols='50' wrap='virtual'>$txt</textarea></td>
    </tr>
    <tr valign='top'>
        <td><input type='submit' value='Verander!' name='change'></td>
    </tr>
</table>
</form>
");
}
?>


En stel dit staat in de DB
<form action='$PHP_SELF' method='post'>
<p>Hoi dit is de contact pagina</p>
<textarea></textarea>
<p>Klik op de verstuur button om het mailtje te versturen!</p>
<input type='submit' name='submit' value='Verstuur'>
</form>
Dan valt alles na </textarea> 'weg'

Iemand een idee om dit op te lossen?
Ik heb PHPMyAdmin al bestudeerd, maar in code vond ik niets wat ik kon gebruiken!

Verwijderd

Kan je niet je "eigen" HTML tags maken en in de database opslaan, en deze vertalen naar de originele tags als de bezoeker de site bezoekt?

vb.: [/textarea] ipv </textarea>

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 28-08 12:00

Janoz

Moderator Devschuur®

!litemod

Je moet gewoon eerst ff html_special_chars eroverheen halen. Als jij tussen je textarea tags een < hebt staan, is dat in je textarea gewoon een <.
edit:
door mijn html rechten werd de < sowieso al vervangen

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

Voordat je de data uit de database insert moet je de tekens < en > replacen voor < en >

Verwijderd

De oplossing van Janoz heeft is beter, anders weet ik al wat je volgende vraag is ;-)

  • Snow_King
  • Registratie: April 2001
  • Nu online

Snow_King

Konijn is stoer!

Topicstarter
Verwijderd schreef op 21 augustus 2002 @ 21:53:
De oplossing van Janoz heeft is beter, anders weet ik al wat je volgende vraag is ;-)
wat dan? >:)

ik heb de Janoz manier geprobeerd en het werkt!

ik weet wat je antwoord zou zijn, ik zou namelijk het tegenovergestelde moeten doen met de output op de mainpage

Verwijderd

Er zijn meer tekens die problemen veroorzaken en mijn antwoord was alleen in je voorbeeld een goed antwoord. Kijk maar eens na de specs van html_special_chars, Janoz zijn antwoord is dus beter en completer ;-)
Pagina: 1