这是我的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
<?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绝对不错,但是$ id没有。
为了它的价值,我也改变了价值=&#39;&#39;在HTML表单上的纯文本输入,它仍然无法正常工作。 PHP表单中的输出仍为空白。
修改 不知道我为什么两次定义变量!拿出一个但仍然是同样的问题
答案 0 :(得分:2)
要考虑的事情很少:
您的html表单应该是.php文件
您的表单需要方法=&#39; get&#39;,<input type='hidden' name='id' value="<?php if(isset($_GET['id'])){echo $_GET['id'];}?>">
mysql> set global sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
mysql> set session sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
以防您获得此GET变量
答案 1 :(得分:0)
您的代码无法访问$ id值。 你为什么不试试这个
<input type='hidden' name='id' value='<?php echo $id ?>'>
假设您在此语句上方定义$ id
答案 2 :(得分:0)
您必须确保输入(隐藏)始终具有值。 否则会抛出无效的索引错误。 $ id在这里没有得到任何价值:
答案 3 :(得分:-1)
似乎你已经在php中定义了表单。因为$ 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>";