הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   עזרה ב- Ckeditor (https://hosts.co.il/forums/showthread.php?t=92481)

Jonathan Zeierman 30-09-11 20:11

עזרה ב- Ckeditor
 
שלום לכולם,
לאחרונה אני משתמש מ-ckeditor שילבתי אותו באתר כאשר הוא מכניס מידע ל-DB.
אך כשאני פולט את המידע הוא פולט לי גם תגי HTML לדוגמא:
PHP קוד:

<html> <head> <title></title> </head> <body> <pכאן תהיה כתבה על עמוד הבית...</p> </body> </html

איך ניתן להעלים?
יוני.

Haimz 30-09-11 20:25

תראה לנו את הקוד, אולי זה משהו שעשית בקוד

Jonathan Zeierman 30-09-11 20:44

ככה אני מציג את מה שהכנסתי למסד:
PHP קוד:

<?php
require ('admin/includes/PHP/db_connect.php'); //Requiring A Db Config File.
####################################################################################################
$query "SELECT main_text FROM index_page";                                                        ##
$result mysql_query($query)    or die("Mysql Getting The Next Error:" mysql_error());          ##
####################################################################################################
if ($row mysql_fetch_array($result))
{
        echo 
''.$row['main_text'].'';
}
mysql_close($db_connection); //Closing The Db Connection.
?>

ככה אני מעדכן:

PHP קוד:


        
function pages ()
        {
            echo 
'<html dir="rtl">
            <head>
            <title>עריכת עמודי תוכן</title>
            <meta http-equiv="Content-Language" content="he">
            <meta http-equiv="Content-Type" content="text/html; charset=windows-1255">
            <link href="includes/CSS/default.css" rel="stylesheet" type="text/css">
            </head>
            <body>
            <div class="navigation"><div><a href="index.php">ראשי</a> <img src="images/nav.gif">עריכת עמודי תוכן</div><div style="margin:5px"></div><table cellpadding="0" cellspacing="0" width="100%">
            <tr>
            <td align="right" class="nav_title">עריכת<font style="color:black;font-size:12px">(עמודי תוכן)</font></td>
            <td align="left" style="font-size:11px"><span style="padding-right:5px"><a href="javascript:history.go(-1)"><img src="images/up_level.gif"> חזור אחורה</a></span> <a href="editor.php?page=pages"><img src="images/refresh.gif"> רענן דף זה</a></td></tr>
            </table></div>
            <div class="DASKTOP">
            <fieldset>
            <legend>עריכת עמודי תוכן</legend>
            <div style="padding:10px">
            </div>
            </fieldset>
            <aligan=right>
            <table>
            <tr>
            <th>שם העמוד</th>
            <th>כתובת</th>
            <th>תבנית</th>
            <th>פעולות</th>        
            <th>נוסף</th>
            </tr>
            <tr>
            <td height="30px">&nbsp;&nbsp;עמוד ראשי&nbsp;&nbsp;</td>
            <td height="30px">&nbsp;&nbsp;http://net-power.co.il/demo_cms/index.php&nbsp;&nbsp;</td>
            <td height="30px">&nbsp;&nbsp;index&nbsp;&nbsp;</td>
            <td height="30px">
            &nbsp;&nbsp;
            <a href="editor.php?page=pages&act=edit_index"><img src="images/edit.gif" alt="" width="20px" height="20px" /> ערוך</a>
            &nbsp;&nbsp;-&nbsp;&nbsp;
            <a href="############"><img src="images/delete.gif" alt="" width="20px" height="20px" /> מחק</a>
            &nbsp;&nbsp;
            </td>        
            <td height="30px">&nbsp;&nbsp;נערך לאחרונה&nbsp;&nbsp;</td>
            </tr>        
            <tr>
            <td height="30px">&nbsp;&nbsp;צור קשר&nbsp;&nbsp;</td>
            <td height="30px">&nbsp;&nbsp;http://net-power.co.il/demo_cms/contact.php&nbsp;&nbsp;</td>
            <td height="30px">&nbsp;&nbsp;contact&nbsp;&nbsp;</td>
            <td height="30px">
            &nbsp;&nbsp;
            <a href="#############"><img src="images/edit.gif" alt="" width="20px" height="20px" /> ערוך</a>
            &nbsp;&nbsp;-&nbsp;&nbsp;
            <a href="#############"><img src="images/delete.gif" alt="" width="20px" height="20px" /> מחק</a>
            &nbsp;&nbsp;
            </td>        
            <td height="30px">&nbsp;&nbsp;נערך לאחרונה&nbsp;&nbsp;</td>
            </tr>        
            </table>
            </body>
            </html>'
;
            if (
$_GET['act'] == 'edit_index')
            {
                echo 
'<fieldset>
                <legend>עריכת דף ראשי</legend>
                <div style="padding:10px">
                </div>
                </fieldset>'
;
                echo 
"    <script type='text/javascript' src='ckeditor/ckeditor.js'></script>
                <script src='ckeditor/_samples/sample.js' type='text/javascript'></script>
                <link href='ckeditor/_samples/sample.css' rel='stylesheet' type='text/css' />
                <form action='' method='post'>
                <table>
                <tr>
                <td><gb>כותרת ראשית:</gb></td>
                <td><input type=text name='head1_title' value=''></td>
                </tr>
                <tr>
                <td><gb>כותרת משנית:</gb></td>
                <td><input type=text name='head2_title' value=''></td>
                </tr>
                <tr>
                <td><gb>כותרת לכתבה:</gb></td>
                <td><input type=text name='head3_title' value=''></td>
                </tr>
                </table>
                <p><label for='editor1'></label><br />
                <textarea cols='80' id='editor1' name='editor1' rows='10'></textarea>
                <script type='text/javascript'>
                CKEDITOR.replace( 'editor1',
                {
                    fullPage : true
                });
                </script></p>
                <table>
                <tr>
                <td><gb>כתובת לתמונה:</gb></td>
                <td><input type=text name='picture' value=''></td>
                </tr>
                </table>
                <input type='submit' value='Submit' name='index_page_update' />
                </form>"
;
                if (isset(
$_POST['index_page_update']))
                {
                    
################################################################################################
                    ##                             Require A DB Connection File.                                      ##
                    ################################################################################################
                    
require ('includes/PHP/db_connect.php');                                                      ##
                    ################################################################################################
                    ##                                        Variables.                                              ##
                    ################################################################################################
                    
$head1_title mysql_real_escape_string(htmlspecialchars($_POST['head1_title']));              ##
                    
$head2_title mysql_real_escape_string(htmlspecialchars($_POST['head2_title']));              ##
                    
$head3_title mysql_real_escape_string(htmlspecialchars($_POST['head3_title']));              ##
                    
$main_text mysql_real_escape_string(htmlspecialchars($_POST['editor1']));                      ##
                    
$picture mysql_real_escape_string(htmlspecialchars($_POST['picture']));                        ##
                    
$id mysql_real_escape_string(htmlspecialchars(0));                                          ##
                    ################################################################################################
                    ##echo '<meta http-equiv="Refresh" content="0; URL=index.php?page=Administrators">';              ##
                    ################################################################################################
                    ##                                    Update A Sql Table.                                          ##
                    ##############################################################################################################################################################################################################
                    
$query = ("UPDATE index_page SET head1_title='".$head1_title."' ,head2_title='".$head2_title."' ,head3_title='".$head3_title."' ,main_text='".$main_text."' ,picture='".$picture."' WHERE id='".$id."'");    ##
                    
$result mysql_query($query)    or die("Mysql Getting The Next Error:" mysql_error());                                                                                                                      ##
                    
mysql_close($db_connection); //Closing The Db Connection.                                                                                                                                                      ##
                    ##############################################################################################################################################################################################################
                
}
            }
        } 


IgalSt 30-09-11 21:02

זה בהגדרה של ה-ckeditor.
עליך להגדיר את fullPage ל-false

Jonathan Zeierman 30-09-11 21:04

איפה אני מגדיר את ההגדרה?

Jonathan Zeierman 30-09-11 21:20

אוקיי מצאתי איפה להוריד את זה בדף fullpage.html
אך נתתי לו false ולא משתנה דבר...
PHP קוד:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!--
Copyright (c2003-2010CKSource Frederico KnabbenAll rights reserved.
For 
licensingsee LICENSE.html or http://ckeditor.com/license
-->
<
html xmlns="http://www.w3.org/1999/xhtml">
<
head>
    <
title>Full Page Editing CKEditor Sample</title>
    <
meta content="text/html; charset=utf-8" http-equiv="content-type" />
    <
script type="text/javascript" src="../ckeditor.js"></script>
    <script src="sample.js" type="text/javascript"></script>
    <link href="sample.css" rel="stylesheet" type="text/css" />
</head>
<body>
    <h1>
        CKEditor Sample
    </h1>
    <!-- This <div> holds alert messages to be display in the sample page. -->
    <div id="alerts">
        <noscript>
            <p>
                <strong>CKEditor requires JavaScript to run</strong>. In a browser with no JavaScript
                support, like yours, you should still see the contents (HTML data) and you should
                be able to edit it normally, without a rich editor interface.
            </p>
        </noscript>
    </div>
    <form action="sample_posteddata.php" method="post">
        <p>
            In this sample the editor is configured to edit entire HTML pages, from the &lt;html&gt;
            tag to &lt;/html&gt;.</p>
        <p>
            <label for="editor1">
                Editor 1:</label><br />
            <textarea cols="80" id="editor1" name="editor1" rows="10">&lt;html&gt;&lt;head&gt;&lt;title&gt;CKEditor Sample&lt;/title&gt;&lt;/head&gt;&lt;body&gt;&lt;p&gt;This is some &lt;strong&gt;sample text&lt;/strong&gt;. You are using &lt;a href="http://ckeditor.com/"&gt;CKEditor&lt;/a&gt;.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</textarea>
            <script type="text/javascript">
            //<![CDATA[

                CKEDITOR.replace( 'editor1',
                    {
                        fullPage : false
                    });

            //]]>
            </script>
        </p>
        <p>
            <input type="submit" value="Submit" />
        </p>
    </form>
    <div id="footer">
        <hr />
        <p>
            CKEditor - The text editor for Internet - <a href="http://ckeditor.com/">http://ckeditor.com</a>
        </p>
        <p id="copy">
            Copyright &copy; 2003-2010, <a href="http://cksource.com/">CKSource</a> - Frederico
            Knabben. All rights reserved.
        </p>
    </div>
</body>
</html> 


בניה 30-09-11 22:47

אתה עושה לו htmlspecialchars לפני ההכנסה זה הופך את כל הסימנים המיוחדים לסימול HTML שלהם.
תעשה הצג מקור ותראה על מה אני מדבר.
במידה והתוכן הזה ערך רק על ידי איש צוות אתר אתה לא צריך לדאוג מXSS.
במידה ואתה רוצה לתת לכל משתמש להשתמש בעורך כזה אתה צריך לסנן את הHTML עם משהו כמו
http://htmlpurifier.org/
ולתת רק לתגיות ספציפיות לעבור.

Haimz 30-09-11 23:04

כשעשית בעדכון:
HTML קוד:

<script type='text/javascript'>
                CKEDITOR.replace( 'editor1',
                {
                    fullPage : true
                });
                </script>

תחליף ל
HTML קוד:

<script type='text/javascript'>
                CKEDITOR.replace( 'editor1');
                </script>

ואם זה לא יפעל, תעשה ככה: (בשליפה)
PHP קוד:

preg_match("#<body>(.*)</body>#ies"$row['main_text'], $body);
echo 
$body[1]; 


Jonathan Zeierman 01-10-11 11:06

תודה לכולם על העזרה הצלחתי ב-2 דרכים...
1. עשיתי false בדף הנכון ועבד.
2. השתמשתי בדרך שבניה נתן לי והורדתי סינון XSS.
תודה.

בניה 01-10-11 11:14

אני רוצה לחדד משהו, כשאתה מדפיס את הSTRING הזה אל תוך הTEXTAREA של העורך מומלץ לעשות HTMLSPECIALCHARS(למרות שהוא יכול לאכול את זה גם בלי זה אם לא תהיה שם תגית סגירה של TEXTAREA או תגיד שבורה) אבל ככה נכון לעבוד.


כל הזמנים הם GMT +2. הזמן כעת הוא 08:24.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ