2012-03-20 97 views
0

我有用於在表格中發送它的文本框,文本區域和PHP代碼。當我試圖提交表單時,它變得空白,甚至其他部分也不起作用。我無法插入文本區域值

代碼 -

<form action="" method="post" class="niceform"> 

<fieldset>       

    <dl><dd>&nbsp;</dd></dl> 
    <dl> 
    <dt> 
     <label for="service">Service Name:</label> 
    </dt> 
     <dd><input type="text" name="service_name" id="" size="39" /></dd> 
    </dl> 

    <dl> 
     <dt><label for="comments">Comments:</label></dt> 
     <dd> 
     <textarea name="comments" id="comments" rows="5" cols="36"></textarea> 
     </dd> 
    </dl> 

    <dl class="submit"> 
     <input type="submit" name="submit" id="submit" value="Submit" /> 
     <br /> 
     <br /> 
    </dl> 

    <?php 

     $service_name = $_POST['service_name']; 
     $comment = $_POST['comments']; 
     mysql_connect("localhost","root",""); 
     mysql_select_db("easylaw"); 

     $query = "INSERT INTO service_cat VALUES('','$service_name','$comment')"; 
     mysql_query($query); 
     $result = mysql_affected_rows(); 
     if($result==1) 
     { 
    ?> 
      <div class="valid_box">Your Record Submitted. </div> 
    <?php 
     } 
     else 
     { 
     ?> 
      <div class="warning_box">Something is Wrong.</div> 
     } 
     <?php 
     ?>    

     </fieldset> 

     </form> 

任何機構可以告訴我什麼都可以,這樣它不會,並沒有什麼太出了問題..

謝謝:)

+0

什麼是在$ _ POST的內容?後續代碼var_dump($ _ POST); – 2012-03-20 12:27:10

+5

http://bobby-tables.com/ – Quentin 2012-03-20 12:28:20

+0

您的腳本容易受到通過SQL注入篡改數據庫的攻擊。請在'$ service_name = mysql_real_escape_string($ _ POST ['service_name']);' – 2012-03-20 12:29:18

回答

1
<div class="warning_box">Something is Wrong.</div> 

應be

<div class="warning_box">Something is Wrong.</div><?php 

及以下

<?php 

必須刪除。

+0

是它的工作現在.. 對不起,這mistake..will檢查從下一次。 – 2012-03-20 12:42:09

0

註釋字段在你的數據庫中有什麼樣的列型?這應該是varchar或(long | medium)文本。

將此更改爲:mysql_query($sql);mysql_query($sql) or die(mysql_error());以產生某種錯誤消息,從而使調試更容易!

此外,你的腳本是容易的SQL注入;使用mysql_real_escape_string()函數轉義用戶輸入。或者使用像PDO這樣的數據庫抽象層。

雖然你沒有義務列出列名,但我建議無論如何。這是mysql insert-statement的全部語法。

INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE] 
[INTO] tbl_name [(col_name,...)] 
{VALUES | VALUE} ({expr | DEFAULT},...),(...),... 
[ ON DUPLICATE KEY UPDATE 
    col_name=expr 
    [, col_name=expr] ... ] 
+0

我已經用它作爲「長文本」。指列類型是LONGTEXT。 – 2012-03-20 12:34:37

0

使用此代碼,當您提交表單,如果-else

if($result==1) 
{ 
    echo"<div class='valid_box'>Your Record Submitted. </div>"; 
} 
else 
{ 
    echo"<div class='warning_box'>Something is Wrong.</div>"; 
}