Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php $\u POST未检索数据?_Php_Mysql - Fatal编程技术网

Php $\u POST未检索数据?

Php $\u POST未检索数据?,php,mysql,Php,Mysql,我刚刚开始使用php和html,我正在创建一个供个人使用的小游戏。总之,我写了一个脚本,您只需输入数据创建一个帐户,然后提交: 我可能做错了什么?您在PHP中使用的是name=username,而不是username1 $username1 = $_POST['username']; $password1 = $_POST['password']; 类型也错误。您在$\u POST中访问的名称错误 $username1 = $_POST ['username']; $password1 =

我刚刚开始使用php和html,我正在创建一个供个人使用的小游戏。总之,我写了一个脚本,您只需输入数据创建一个帐户,然后提交:

我可能做错了什么?

您在PHP中使用的是name=username,而不是username1

$username1 = $_POST['username'];
$password1 = $_POST['password'];

类型也错误。

您在$\u POST中访问的名称错误

$username1 = $_POST ['username'];
$password1 = $_POST ['password'];

输入标记中的类型应为文本:

Username: <input type='text' name='username'> <br> 
更改此项:

 $username1 = $_POST ['username1'];
 $password1 = $_POST ['password1'];
进入这个

 $username1 = $_POST['username'];
 $password1 = $_POST['password'];
HTML表单输入称为“username”和“password”,这些名称被传递给$\u POST变量

现在,您不需要清理数据库输入。尝试创建一个名为bobby'的用户;删除表成员;-。确保备份成员表。扰流器:它会把你的桌子弄掉

有关如何防止这种情况的更多信息,请参见

没有输入类型=用户名。您应该使用的是输入类型=文本

其次,HTML表单中没有名称属性设置为username1或password1的元素。我希望你已经注意到了。因此,相应地修改PHP文件

即使在这之后,你也会面临很多错误。这是因为在执行MySQL查询之前,您需要实际连接到数据库

所以读一点,然后再试试这个


干杯

除了表单的结束标记外,您发布的代码中没有错误。我复制了相同的代码,并且工作得很好。我改变的是

<html>

<head>
<title>Althaf</title>
</head>

<body bgcolor="gray">
<b>Welcome to <i>html</i></b><br>
<?php include 'header.php';
?> 
<br>
<br>
<br>
<table border="1" align="center" cellpadding='25'>
<tr>
<td align='middle'>
<form method='POST' action='insertuser.php' align= 'right'>
Username: <input type='username' name='username'> <br> 
Password: <input type='password' name='password'> <br>
Confirm Password: <input type='Password'> <br>
Email: <input type='username'> <br>
<input type='submit' name='submit' align = 'center'>

</td>
</tr>
</table>

    </form><!-- Here was the missing tag-->
<table align='right'>
<tr>
<td>
<image src='stillneedimage(square).jpg'>
</td>
</tr>
</table>


<table align='left'>
<tr>
<td>
<image src='stillneedimage(square).jpg'>
</td>
</tr>
</table>



</body>
</html>
在insertuser.php中

<?php


$username1 = $_POST ['username'];
$password1 = $_POST ['password'];


echo $username1;
echo $password1;


?>

我要去田里。因此,数据库连接php中可能还会出现更多错误。

为了避免表单中出现问题,请添加-tag并更改为type='text'。type属性表示元素的类型,而不是元素的名称。你有名字属性

<table border="1" align="center" cellpadding='25'>
<tr>
<td align='middle'>
<form method='POST' action='insertuser.php' align= 'right'>
Username: <input type='text' name='username'> <br> 
Password: <input type='text' name='password'> <br>
Confirm Password: <input type='text' name='confirmPassword'> <br> <!-- changed name -->
Email: <input type='text' name='username'> <br>
<input type='submit' name='submit' align = 'center'>
</form> <!--added here -->
</td>
</tr>
</table>
查看insertuser.php

<?php
include_once "mysqlconnecter.php";
$username1 = $_POST ['username'];
$password1 = $_POST ['password'];

mysql_query("INSERT INTO members Values ('','$username1','$password1','' ") or
     die('could not insert member, please try again');
?>
我注意到一些事情。第一个是memberID用户的qutoes?我猜这是,INt可能是自动递增的,在这种情况下,您根本不需要包含该字段。其次,您在实际的insert语句中漏掉了一个括号

<?php
include_once "mysqlconnecter.php";
$username1 = $_POST ['username'];
$password1 = $_POST ['password'];

mysql_query("INSERT INTO members Values ('$username1','$password1','')") or
     die('could not insert member, please try again');
?>
也许最重要的部分是您必须清理数据,以便不需要的数据不会进入数据库。您可以做和应该做的最简单的检查是至少检查元素是否已分配:

<?php
include_once "mysqlconnecter.php";
$username1 = $_POST ['username'];
$password1 = $_POST ['password'];

if (isset($username1) && isset($password1)) { //Execute query only if username and password are given/exists
  /* PUT IN CODE HERE 
    for sanizting username and password with certain rules
    and comparing field password with confirmPassword
  */
    mysql_query("INSERT INTO members Values ('$username1','$password1','')") or
     die('could not insert member, please try again');
}
?>
这样你就不应该得到你所描述的那些错误。如果您不这样做,confirmPassword字段是无用的,那么还要检查confirmPassword和password的值,看看它们是否相等


我真的建议您从mysql_*函数切换到PDO或mysqli,因为mysql_*函数已被弃用,这意味着这些函数在将来将无法工作。

您是否将输入字段的类型更改为text/password?@FireRaven101关闭您的表单,原因之一是。可能使用include_once mysqlconnecter.php进行连接。但是,我同意OP需要阅读和研究很多东西。我包括了连接到数据库mysqlconnecter.php的页面。首先,您忘记关闭了。它不在您的代码中,或者您是否遗漏了它?仅此一点就会给您带来问题。这些只是通知,将数据插入表中并不是问题。。。你能和我们分享mysql_错误的输出吗。我认为您的表定义可能有问题。另外,您有一个流浪的@tanaydin-是的,它只是警告,但警告也有其原因。在这种情况下,如果这些索引未定义,则数据库的执行将失败,或者在最佳情况下无法按预期工作。您确实应该在表单的实际单元格中包含end form标记,并且类型属性不正确。
<table border="1" align="center" cellpadding='25'>
<tr>
<td align='middle'>
<form method='POST' action='insertuser.php' align= 'right'>
Username: <input type='text' name='username'> <br> 
Password: <input type='text' name='password'> <br>
Confirm Password: <input type='text' name='confirmPassword'> <br> <!-- changed name -->
Email: <input type='text' name='username'> <br>
<input type='submit' name='submit' align = 'center'>
</form> <!--added here -->
</td>
</tr>
</table>
<?php
include_once "mysqlconnecter.php";
$username1 = $_POST ['username'];
$password1 = $_POST ['password'];

mysql_query("INSERT INTO members Values ('','$username1','$password1','' ") or
     die('could not insert member, please try again');
?>
<?php
include_once "mysqlconnecter.php";
$username1 = $_POST ['username'];
$password1 = $_POST ['password'];

mysql_query("INSERT INTO members Values ('$username1','$password1','')") or
     die('could not insert member, please try again');
?>
<?php
include_once "mysqlconnecter.php";
$username1 = $_POST ['username'];
$password1 = $_POST ['password'];

if (isset($username1) && isset($password1)) { //Execute query only if username and password are given/exists
  /* PUT IN CODE HERE 
    for sanizting username and password with certain rules
    and comparing field password with confirmPassword
  */
    mysql_query("INSERT INTO members Values ('$username1','$password1','')") or
     die('could not insert member, please try again');
}
?>