2009-12-01 66 views
0

我在godaddy上使用heredocs作爲php/mysql插入語句。但是,當調用該函數時,頁面會正確刷新,但數據不會被插入到數據庫中,也不會顯示錯誤。我已經使用MAMP在本地進行了測試,當文件上傳到服務器時,它不起作用。有沒有人在godaddy之前有過這個問題?以下是我的插入語句和表單。在GoDaddy上插入PHP/MySql

=================================

if ($ax == "new") { 

    $sql=<<<SQL 

      INSERT INTO college (member_id, name, date_entered, date_completed, degree, professor, method, friends, memory_1) 
      VALUES  (
         '{$_SESSION['SESS_MEMBER_ID']}', 
         '{$_GET['name']}', 
         '{$_GET['date_entered']}', 
         '{$_GET['date_completed']}', 
         '{$_GET['degree']}', 
         '{$_GET['professor']}', 
         '{$_GET['method']}', 
         '{$_GET['friends']}', 
         '{$_GET['memory_1']}' 
         ) 

SQL;

echo $sql; exit; 

    if(mysql_query($sql) or die ("Insert failed." . mysql_error())); 

    header("Location: education.php"); 
} 

=====================

<form action="<?= $_SERVER["PHP_SELF"];?>" method="post"> 
     <input type="hidden" name="ax" value="new"> 
    Institution<br><input type="text" name="name" /><br> 
    Date Entered<br><input id="entered" type='text' name="date_entered" /><br> 


    Date Completed<br><input id="completed" type='text' name="date_completed" /><br> 
    Degree(s) Earned<br><input type="text" name="degree" /><br> 
    Favorite Professor <br><input type="text" name="professor" /><br> 
    Method of Study<br><select name="method" WIDTH="155" STYLE="width: 155px"> 
    <option value="Classroom">Classroom</option> 
    <option value="Online">Online</option> 
    </select><br> 
    Friends<br><input type="text" name="friends" /><br> 
    <br><br> 
    Favorite Memory 
    <br> 
    <textarea cols="50" rows="4" name="memory_1"></textarea> 
    <br> 
    <input type="submit" name="submit" value="submit" class="ui-button ui-state-default ui-corner-all"/> 
    </form> 

=============== ====

感謝您的幫助!

回答

3

您的形式發送POST爲:

<form action="<?= $_SERVER["PHP_SELF"];?>" method="post"> 

這意味着你將收到的數據,在PHP端,在$_POST超全局變量。


但是你的代碼使用$ _GET。 (這應該是填充只有當你確定在您的形式usgin action="get"

所以,在你的PHP腳本,你應該使用$_POST,而不是$_GET


另外,作爲旁註:您的腳本尖叫SQL Injection:在將數據注入SQL查詢之前,您必須先轉義數據! 關於這方面,你可以看看mysql_real_escape_string

+0

帕斯卡...感謝您的回覆。我應該提到我嘗試使用$ _GET,$ _POST和$ _REQUEST。這些都沒有奏效。 – Travis 2009-12-01 14:53:48

0

這原來是來自php.ini文件的註冊全局問題。它的工作瓦特/註冊關閉斧頭標誌全局看起來像

if ($ax == "new") 

應該

if ($post['ax'] = "new") 
0

我最近使用GoDaddy的服務類似的問題。確保並登錄到您的主機方案和FTP。選擇該頁面所在的文件夾,並確保隱私選項是繼承和正確設置。如果不是這樣,你可以在不工作並且沒有真正的代碼原因的情況下得到同樣的問題。每次您在網絡上使用FTP管理器時都需要重置。使用FileZilla上傳您編輯的文件似乎不會引發問題。