2013-05-17 44 views
0

我正在製作一個迷你社交網絡類型的網站,在那裏人們可以提交問題/聊天的事情到一個PHP頁面,它將數據添加到數據庫,然後從數據庫獲取所有數據並將其放入它自己的div在頁面上顯示所有評論。唯一的問題是,人們正在提交混淆頁面的標籤,我想知道是否有方法在特定的div中禁用<>標籤?下面是代碼爲部分seciton:如何使HTML不在特定的div中呈現?

$q=mysql_query("SELECT * FROM posts WHERE user='$u' ORDER BY date DESC"); 
    ?> 
    <div class="posts"> 
    <?php 
    if(mysql_num_rows($q)<1) 
    { 
    echo "{$u} has not submitted any updates yet."; 
    } else { 
    while($row=mysql_fetch_array($q)) 
    { 
    $com=$row['post']; 
    ?> 
    <div class="comment"> 
    <p><?php echo $com; ?></p> 
      <div class="user_post"> 

       <a href="/user.php?u=<?php echo $u; ?>" class="usersname"><p class="comtext"><?php echo $u; ?></p><img src="/user/Coby/background.png" style="display:block; width:50px; margin-top:-20px; height: auto !important; background-image: url('<?php echo $avatar; ?>'); background-size: cover;" ></img></a></div> 
    </div> 
    <?php 
    } 
    } 
    if($isOwner=="yes") { ?> 
    <form action="post.php" method="post"> 
    <input type="hidden" name="user" value="<?php echo $u; ?>" /> 
    <textarea placeholder="Write on your Corner!" name="comment"></textarea> 
    <input type="submit" value="Post!" name="submit" /> 
    </form> 
    <?php } ?> 
    </div> 

    </div> 
+0

你或許應該看看像UBB代碼 –

+2

你可以使用'strip_tags'或'htmlentities'改造數據到瀏覽器可能顯示的東西 –

+0

您正在使用[an **過時的**數據庫API](http://stackoverflow.com/q/12859942/19068),並應使用[現代替換](http:// php達網絡/手動/ EN/mysqlinfo.api.choosing.php)。你可能也容易受到[SQL注入攻擊](http://bobby-tables.com/)**,現代的API會更容易[防衛](http://stackoverflow.com/questions/) 60174/best-way-to-prevent-sql -injection-in-php)自己從。 – Quentin

回答

-1

要麼你過濾<>當他們進入他們,或者你篩選它們(如使用jQuery),而渲染。或者你逃脫他們。

+0

用客戶端代碼過濾它們不會起作用,它們將在JavaScript可以做任何事情之前進行解析。這將使該網站容易受到XSS攻擊,並且是可怕的建議。 – Quentin

+0

因此,我會在提交表單時逃避/過濾它們。 – GarfieldKlon

+0

你永遠不知道用戶是否有JavaScript激活。你甚至不知道它是真正的用戶還是機器人。你需要在服務器端解析輸入,當它已經被提交。 – Voitcus

0
while($row=mysql_fetch_array($q)) 
    { 
    $com = htmlspecialchars($row['post']); 
    ?> 
0

最好的辦法是:

$com = htmlspecialchars($row['post'], ENT_QUOTES, 'UTF-8'); 

這裏是鏈接Documentation