ugrás a tartalomhoz

Idézőjelet tartalmazó alapérték megadása űrlap elemnek

breakline · 2006. Jan. 9. (H), 17.16
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.
    <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; ?>'>
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
 
1

addslashes/stripslashes

Nagy Péter · 2006. Jan. 9. (H), 17.35
Szia!

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
2

re

breakline · 2006. Jan. 9. (H), 19.02
Köszönöm a segítséged, én is valahogy így gondoltam. Az ellenőrzés csak kevés dologra terjed ki, mivel eleve csak bejelentkezés esetén lehet elérni az admin lapokat, és csak 3-4 szerkesztő van, ők pedig nem akarnák a saját oldalukat "támadni" (remélem :) )

Üdv
BL
3

Kellenek az idézőjelek

mefi · 2006. Jan. 9. (H), 20.05
<input type=hidden name=nap value='<?php echo $nap; ?>'>
Így ne használd a html tageket, egyrészt mert nem hivatalos, másrészt mert gondod lehet vele.

Én alapból a PHP segítségével jelezném ezeket, mondjuk így:

echo('<input type="hidden" name="nap" value="'.$nap.'">');
Ha pedig a PHP-ban, két ' jel közötti tartalomba szeretnél elhelyzni ' jelet, akkor így tedd: \'


üdv:
mefi
http://mefi.be