2013-04-16 61 views
0

我一直在通過我的代碼嘗試查找錯誤,但我還沒有成功。你能找到邏輯/語法錯誤

下面顯示的是我輸入和更新文件的片段。

modifyform.php

    <li id="li_1" > 
     <label class="description" for="servername">Server Name </label> 
     <div> 
      <input id="element_1" name="Servername" class="element text medium" type="text" maxlength="255" value="<?php echo $person['servername']; ?>"/> 
     </div><p class="guidelines" id="guide_1"><small>Enter your server name here NOT your server address.</small></p> 
     </li>  <li id="li_2" > 
     <label class="description" for="Serveraddress">Server Address </label> 
     <div> 
      <input id="element_2" name="Serveraddress" class="element text medium" type="text" maxlength="255" value="<?php echo $person['serveraddress']; ?>"/> 
     </div><p class="guidelines" id="guide_2"><small>This will the DNS name of your server</small></p> 
     </li>  <li id="li_3" > 
     <label class="description" for="Portnumber">PortNumber </label> 
     <div> 
      <input id="element_3" name="Portnumber" class="element text medium" type="text" maxlength="255" value="<?php echo $person['portnumber']; ?>"/> 
     </div><p class="guidelines" id="guide_3"><small>This will be the port your server is using.</small></p> 

     <label class="description" for="Status">Server Status </label> 
       <div> 
      <input id="element_4" name="Status" class="element text medium" type="text" maxlength="255" value="<?php echo $person['status']; ?>"/> 
     </div><p class="guidelines" id="guide_4"><small> Display your Server Status</small></p> 

     </li>  <li id="li_4" > 
     <label class="description" for="Description">Server Description </label> 
     <div> 
      <textarea id="element_5" name="Description" class="element textarea medium" value ="<?php echo $person['description']; ?>"></textarea> 
     </div><p class="guidelines" id="guide_5"><small>Enter server description/rules here.</small></p> 
     </li> 

        <li class="buttons"> 
       <input type="hidden" name="id" value="<?php echo $_GET['id']; ?>" /> 

       <input id="saveForm" class="button_text" type="submit" name="submit" value="Modify" /> 
     </li> 
      </ul> 
     </form> 
     <div id="footer"> 
     </div> 
    </div> 

    </body>- 
</html> 

modifyame.php

<?php 


mysql_connect("localhost", "user", "password") or die (mysql_error()); 
#echo "Connected to MYSQL "; 
mysql_select_db("starforg_search") or die (mysql_error()); 
#echo "Connected to Data Base"; 
/*$query = "SELECT * FROM table WHERE userId='{$user_id}'"; 
$result = mysql_query ($query) or die (mysql_error());*/ 

    if(!isset($_POST['submit'])) { 
    $q = "SELECT * FROM addserverame WHERE ID = $_GET[id] AND userId='{$user_id}'"; 
    $result = mysql_query ($q); 
    $person = mysql_fetch_array ($result); 
    } 

    ?> 



<? 

if(isset($_POST['submit'])) { 
    $u = "UPDATE addserverame SET `servername`='$_POST[Servername]', `serveraddress`='$_POST[Serveraddress]', `portnumber`='$_POST[Portnumber]', `status`='$_POST[Status]', `description`='$_POST[Description]', WHERE ID = $_POST[id] AND userId='{$user_id}'"; 
    mysql_query($u) or die (mysql_error()); 
    echo "Server Info Has Been Modified"; 
} 
?> 

問題區域 更新和呼應服務器名,serveraddress和端口號字段是細然而呼應/更新說明和狀態字段不起作用。

我已經看過表格名稱多次,我承認他們是正確的。

這使我相信語法錯誤可能是罪魁禍首。

感謝您的時間

+0

回聲$ u和查找錯誤 –

+2

調試自己的代碼!這不是一個問題。 –

+0

另外,逃避你的'$ _POST'變種,你不想要一個討厭的注射。 – Dave

回答

4

有您UPDATE語句語法錯誤。在WHERE子句之前,您應該刪除額外的,

UPDATE addserverame 
SET `servername`='$_POST[Servername]', 
    `serveraddress`='$_POST[Serveraddress]', 
    `portnumber`='$_POST[Portnumber]', 
    `status`='$_POST[Status]', 
    `description`='$_POST[Description]', -- <<=== REMOVE extra comma HERE 
WHERE ID = $_POST[id] AND 
     userId='{$user_id}' 

使它成爲一種排列代碼的習慣,因此可以很容易地發現語法錯誤錯誤。


作爲旁註,查詢是用SQL Injection脆弱,如果變量的值(小號)從外部來了。請看下面的文章,瞭解如何防止它。通過使用PreparedStatements你可以擺脫使用單引號圍繞值。

+0

非常感謝,它總是擁有第二雙眼睛。當定時器用完時,我會給你正確的答案。 – BenniMcBeno

+0

不客氣':D'但是嘿,請也閱讀關於'sql注入'.. –

+1

你打算解決這個問題後,我解決了這個問題,再次感謝 – BenniMcBeno