2017-08-29 137 views
-1

拉動這是我的HTML表單:獲取數據未通過

<form action='buddy_update.php'> 
    <input type='text' name='buddy1' required='' placeholder='Player ID/E-mail'> 
    <input type='hidden' name='id' value=''%".$id."%''> 
    <input type='submit' value='Request Buddy #1!'> 
    </form> 

這是我在buddy_update

<?php 
include 'credentials.php'; 
$id=$_GET['id']; 
$buddy1=$_GET['buddy1']; 

// Create connection 
$conn = mysqli_connect($servername, $username, $password, $dbname); 
// Check connection 
if (!$conn) { 
    die("Connection failed: " . mysqli_connect_error()); 
} 

$id=$_GET['id']; 
$buddy1=$_GET['buddy1']; 

$sql = "UPDATE buddy SET buddy1_id = '".$buddy1."' WHERE main_player = '".$id."'"; 

if (mysqli_query($conn, $sql)) { 
echo $id; 
    echo $buddy1; 
} else { 
    echo "Error: " . $sql . "<br>" . mysqli_error($conn); 
} 

mysqli_close($conn); 
?> 

$ buddy1 PHP來通過精絕,但$ id不。

對於它的價值,我也將value =''更改爲HTML表單上的純文本輸入,但它仍然無效。 PHP表單中的輸出仍然是空白的。

編輯 不知道爲什麼我定義了兩次變量!取出一個,但仍然是相同的問題

+0

檢查是否有任何錯誤通過啓用PHP錯誤:https://stackoverflow.com/a/21429652/881032 - 也是你的代碼是非常脆弱的。查看[本文](https://www.wordfence.com/learn/how-to-prevent-sql-injection-attacks/)瞭解更多信息。 – lumio

+0

如果你打開開發工具,在你的網絡標籤中,當你提交表單時,你能檢查你確實發送了正確的數據嗎?因爲現在看起來輸入值只是空的'input value ='''。此外,您的代碼非常容易受到SQL注入的影響,非常不安全。 – Giedrius

+0

是的,我知道這是我要解決的問題列表中的下一個!歡呼,我會看看現在的PHP錯誤。我沒有得到任何在我的錯誤日誌中,但想到它。 –

回答

2

有幾件事需要考慮上面的$ id:

  1. HTML表單應該在PHP文件

  2. 您的表單需要有method ='get',<form action='buddy_update.php' method='GET'>

  3. <input type='hidden' name='id' value="<?php if(isset($_GET['id'])){echo $_GET['id'];}?>">如果你收到此GET variable`

+0

感謝您的幫助。仍然沒有工作,但它顯然是一個問題,我沒有把它放在這裏我猜。奇怪的是,我的所有其他形式都遵循這個完美的結構。 :s –

+0

@JamesV從哪裏獲得$ id的頁面上的HTML表單? –

+0

我剛修好了!這就是這個問題,整個語句在If和else之間,如果是數組。變量需要在不同的地方定義。奇怪我沒有看到一個未定義的變量錯誤?謝謝你的幫助,雖然我真的很感激它。 –

0

您的代碼無法訪問$ id值。 你爲什麼不試試這個

<input type='hidden' name='id' value='<?php echo $id ?>'> 

假設你定義了這個說法

+0

謝謝我做了這個,但不幸的是仍然沒有工作 –

+0

我假設你有一些其他問題。我複製了你的代碼,並且它爲我工作。祝你好運 – Erhan

-1

看來你已經在php.Since $ ID狀態定義的變量是在PHP中定義的形式。 所以你可以嘗試一些東西來取代你的代碼像下面的代碼

echo "<form action='buddy_update.php'> 
    <input type='text' name='buddy1' required='' placeholder='Player ID/E-mail'> 
    <input type='hidden' name='id' value='".$id."'> 
    <input type='submit' value='Request Buddy #1!'> 
    </form>"; 
+0

你提供的代碼是無效的(嘗試一下,你會明白我的意思)。 – cybermonkey

+0

我改正了它現在檢查 – Mike

0

你必須確保輸入(隱藏)總是有一個值。 否則會引發無效索引錯誤。 $ id在這裏沒有得到任何價值: