获取数据无法通过

时间:2017-08-29 18:03:24

标签: php html

这是我的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表单中的输出仍为空白。

修改 不知道我为什么两次定义变量!拿出一个但仍然是同样的问题

4 个答案:

答案 0 :(得分:2)

要考虑的事情很少:

  1. 您的html表单应该是.php文件

  2. 您的表单需要方法=&#39; get&#39;,<input type='hidden' name='id' value="<?php if(isset($_GET['id'])){echo $_GET['id'];}?>">

  3. 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>";