Idézőjelet tartalmazó alapérték megadása űrlap elemnek
Hali!
Mostanában csináltam néhány barátomnak egy blogmotort, php és mysql alapon. A bejegyzések beírásához egy javascriptben megírt html edtirot használtam, ami innen letölthető:http://www.interactivetools.com/products/htmlarea/
Ez eddig szép és jó, de van egy kis problémám, bár találtam is rá megoldást, de az kicsit bonyolítja a helyzetet.
Arról lenne szó, hogy ha elküldöd az új bejegyzés űrlapot, akkor bejön egy ellenőrző oldal, ami megmutatja a bejegyzést. Innen lehet változtatni (ekkor visszamegy az editorhoz), menteni (ekkor bekerül az adatbázisba, de nem lesz aktív), és elküldeni (ekkor is adatbázis, de meg is jelenik).
Itt van pl. az elküldés gomb, ekkor az oldal megkapja újra a változókat.Az lenne a kérdésem, hogy hogyan lehetne megoldani, hogy a ' karaktert is értelmezze, és ott ne szakítsa meg az átvitelt (hiszen az inputban a ' karakterig megy az értelmezés). Cseréljem le ereg_replace-el még a kiírás előtt? Vagy egyszerűen tegyem be egy temp táblába mysql-ben, és csak az id-jét küldjem vissza, ha változtatni kell? Azért is gond, mert a régi hozzászólásokat is az előbbi editorban lehet megváltoztatni.
Remélem érthető a problémám!
Üdv
BL
■ Mostanában csináltam néhány barátomnak egy blogmotort, php és mysql alapon. A bejegyzések beírásához egy javascriptben megírt html edtirot használtam, ami innen letölthető:http://www.interactivetools.com/products/htmlarea/
Ez eddig szép és jó, de van egy kis problémám, bár találtam is rá megoldást, de az kicsit bonyolítja a helyzetet.
Arról lenne szó, hogy ha elküldöd az új bejegyzés űrlapot, akkor bejön egy ellenőrző oldal, ami megmutatja a bejegyzést. Innen lehet változtatni (ekkor visszamegy az editorhoz), menteni (ekkor bekerül az adatbázisba, de nem lesz aktív), és elküldeni (ekkor is adatbázis, de meg is jelenik).
Itt van pl. az elküldés gomb, ekkor az oldal megkapja újra a változókat.
<form name=send action="<?php echo $PHP_SELF; ?>" method="post">
<td valign=top align=center><input type=submit value="Elküldés"></td>
<input type=hidden name=comm value="send"></td>
<input type=hidden name=submit value="1">
<input type=hidden name=title value='<?php echo $title; ?>'>
<input type=hidden name=blog_bev value='<?php echo $blog_bev; ?>'>
<input type=hidden name=blog_mess value='<?php echo $blog_mess; ?>'>
<input type=hidden name=author value='<?php echo $author; ?>'>
<input type=hidden name=categ value='<?php echo $categ; ?>'>
<input type=hidden name=year value='<?php echo $year; ?>'>
<input type=hidden name=honap value='<?php echo $honap; ?>'>
<input type=hidden name=nap value='<?php echo $nap; ?>'>
Remélem érthető a problémám!
Üdv
BL
addslashes/stripslashes
Először is, hol "szakad meg" az átvitel?
Gondolom a MySQL-be szigorú ellenőrzések után mented csak le a szövegeket, mert ha nem, akkor kitünő felületet szolgáltatsz az XSS illetve SQL Injection támadásoknak(erre utalna hozzászólásom címe).
Javasolt egyébként csak az ID-vel operálni, és a kiemenetbe csak akkor tenni bele a szöveget, amikor és ahol az szereksztésre kerül(azaz a HTMLArea által használt textarea-ba). Ezzel egyrészt megspórolsz egy csomó felesleges adat forgalmat a szerver és a böngésző között, másrészt magadnak (és a szervernek) is megspórolsz egy csomó munkát, amit a htmlspecialchars / htmlentities fügvények használata jelentene.
Ha továbbra is érdekel, hogyan tedd bele, a fenti két link ad támpontot.
--
NP
re
Üdv
BL
Kellenek az idézőjelek
Én alapból a PHP segítségével jelezném ezeket, mondjuk így:
üdv:
mefi
http://mefi.be