2012-06-08 33 views
-7

我已經開始學習PHP。 $_POST變量在某些文件中工作,我甚至可以將通過$_POST獲取的數據發佈到數據庫。

奇怪的是,$_POST不能在少數文件中工作。我的意思是它的不一致。

下面是HTML:

<html> 
<title></title> 
<head> 
</head> 
<body> 
<form method="POST" action="addemail.php"> 
<label for="firstname">First name:</label> 
<input type="text" id="firstname" name="firstname" /><br /> 
<label for="lastname">Last name:</label> 
<input type="text" id="lastname" name="lastname" /><br /> 
<label for="email">Email:</label> 
<input type="text" id="email" name="email" /><br /> 
<input type="submit" name="submit" value="Submit" /> 
</form> 
</body> 
</html> 

並在下面的PHP代碼:

<html> 
<body> 

<?php 
    $first_name = $_POST['firstname']; 
    $last_name = $_POST['lastname']; 
    $email = $_POST['email']; 

    print($first_name); 

    $dcf = mysqli_connect('localhost','uname','XXX','elvis_store') 
       or die('Error connecting to MYSQL Server.'); 

    $query = "INSERT INTO email_list (first_name, last_name, email) " . 
        "VALUES ('$first_name', '$last_name', '$email')"; 

    $result = mysqli_query($dcf, $query); 

    mysqli_close($dcf); 

?> 

</body> 
</html> 

任何指針來克服這個問題將有很大的幫助。

+7

你可以顯示'$ _POST'不起作用的地方嗎?我最好的猜測會是一些錯字! –

+0

也許你在這幾個文件中用

'而不是'post'? –

+0

這意味着你再次犯同樣的錯誤,並指責PHP – Rinzler

回答

-3

您必須檢查HTML文件中您要發佈的字段的名稱,這可能是因爲您的字段名稱在HTML文件中存在問題,請仔細查看。

1

$ _POST不應該有任何一致性問題。這可能是很多事情:

可能的代碼錯誤

  1. 你拼錯一個鍵名

  2. 確保您實際設置值

  3. 也許你逝去的一些變量通過URL www.example.com?var=x(GET),然後嘗試引用$_POST['var']而不是$_GET['var']

  4. 也許你沒有實際發佈到頁面。如果你是從表單提交確保method屬性設置爲POST(方法=「POST」)

我敢肯定有許多其他的可能性(如您的開發環境),但它是不可能的$_POST不一致。我需要在你的最後看到更多的代碼。

可能的環境/用法錯誤

  1. 確保WAMP開始(並不總是自動啓動)

  2. 確保您通過http://localhost/path/file.php訪問你的頁面,而不是試圖打開它直接從它的文件夾即C:\path\file.php。它必須通過Apache運行。

ie這是否只是$_POST不起作用?如果您在腳本中輸入<?php echo "TEST"; ?>,請將其回顯爲TEST

+0

我複製了工作文件,重新命名並修剪了一些不必要的行。而已。沒有編譯錯誤,但仍然不起作用。 – luckyluke

+1

@luckyluke我加了一些建議。我想讓你把'print($ first_name)'這個行改成''print(「name:$ first_name);'它是否打印出任何東西?我猜測'name:'甚至不會打印出來 ' –

+0

Yess kenny它甚至沒有打印任何東西 – luckyluke