2017-08-29 99 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在这里没有得到任何价值: