未定义索引PHP
我一直在尝试获取HTML/PHP格式的表单,以将其处理到numyspace服务器上的mysql/phpmyadmin表中,但由于未知原因,我收到以下错误消息未定义索引PHP,php,mysql,html,forms,Php,Mysql,Html,Forms,我一直在尝试获取HTML/PHP格式的表单,以将其处理到numyspace服务器上的mysql/phpmyadmin表中,但由于未知原因,我收到以下错误消息 RegisterUserProcess.php <?php include ("connection.inc.php"); connect(); $username = $_POST['Username']; $firstName = $_POST['Forename'];
RegisterUserProcess.php
<?php
include ("connection.inc.php");
connect();
$username = $_POST['Username'];
$firstName = $_POST['Forename'];
$lastName = $_POST['Surname'];
$address = $_POST['Address'];
$postCode = $_POST['PostCode'];
$emailAddress = $_POST['EmailAddress'];
$password = $_POST['Password'];
$termsConditions = $_POST['DateOfCreation'];
$sql="INSERT INTO User (Username, Forename, Surname, Address, PostCode, EmailAddress, Password, DateOfCreation)
VALUES ('$username', '$firstName', '$lastName', '$address', '$postCode', '$emailAddress', '$password', '$termsConditions')";
mysql_query($sql);
print("Thank You " +$firstName+" "+$lastName + " You Have Successfully Created An Account!");
echo $sql;
?>
注意:未定义索引:中的用户名
/var/www/vhosts/numyspace.co.uk/web_users/home/~unn_w11034582/public_html/CaseProject/registerUserProcess.php
第14行
注意:未定义索引:中的名字
/var/www/vhosts/numyspace.co.uk/web_users/home/~unn_w11034582/public_html/CaseProject/registerUserProcess.php
第15行
注意:未定义索引:中的姓氏
/var/www/vhosts/numyspace.co.uk/web_users/home/~unn_w11034582/public_html/CaseProject/registerUserProcess.php
第16行
注意:未定义索引:中的地址
/var/www/vhosts/numyspace.co.uk/web_users/home/~unn_w11034582/public_html/CaseProject/registerUserProcess.php
第17行
注意:未定义索引:中的邮政编码
/var/www/vhosts/numyspace.co.uk/web_users/home/~unn_w11034582/public_html/CaseProject/registerUserProcess.php
第18行
注意:未定义索引:中的EmailAddress
/var/www/vhosts/numyspace.co.uk/web_users/home/~unn_w11034582/public_html/CaseProject/registerUserProcess.php
第19行
注意:未定义索引:中的密码
/var/www/vhosts/numyspace.co.uk/web_users/home/~unn_w11034582/public_html/CaseProject/registerUserProcess.php
第20行
注意:未定义索引:中的创建日期
/var/www/vhosts/numyspace.co.uk/web_users/home/~unn_w11034582/public_html/CaseProject/registerUserProcess.php
第21行0插入用户(用户名、姓名、姓氏、地址、,
邮政编码、电子邮件地址、密码、创建日期)值(“”、“”、“”、,
'','','','','')
当它显示Insert into User()
User是数据库中我希望插入信息的表。(所有的拼写和大写字母都在正确的位置)我不确定为什么所有的值都是空的,因为它看起来好像没有从提供的单元格中收集信息
任何帮助提示或指点都将非常合适,谢谢各位
DateOfCreation是我在atm上搞砸的东西,可能应该去掉它,因为它试图将“我接受条款和条件”复选框转换为时间戳,以存储用户最初创建帐户的日期。代码处于早期阶段,不包含任何验证,因此,任何时候都可以提供代码,如果需要的话,只需谷歌搜索错误消息,似乎有很多不同类型的错误消息
RegisterUserProcess.php
<?php
include ("connection.inc.php");
connect();
$username = $_POST['Username'];
$firstName = $_POST['Forename'];
$lastName = $_POST['Surname'];
$address = $_POST['Address'];
$postCode = $_POST['PostCode'];
$emailAddress = $_POST['EmailAddress'];
$password = $_POST['Password'];
$termsConditions = $_POST['DateOfCreation'];
$sql="INSERT INTO User (Username, Forename, Surname, Address, PostCode, EmailAddress, Password, DateOfCreation)
VALUES ('$username', '$firstName', '$lastName', '$address', '$postCode', '$emailAddress', '$password', '$termsConditions')";
mysql_query($sql);
print("Thank You " +$firstName+" "+$lastName + " You Have Successfully Created An Account!");
echo $sql;
?>
RegisterUserProcess.php
在没有看到一些代码的情况下,我无法确定,但很可能您应该将所有出现的$Username
更改为$\u POST['Username']
(如果您使用带有HTTP POST方法的表单),或者$\u GET['Username']
(如果数据来自URL)
Username只是一个例子,当然。您需要在标记周围添加一个isset条件(或类似的效果)
参考更新的问题后更新,您需要将代码更改为以下内容(对每个变量执行此操作)
$\u POST
键区分大小写-您应该将用户名
更改为用户名
,名字
更改为名字
。。。在php代码中添加,以匹配表单字段的名称。您应该添加下面列出的更改
注意:$\u POST['someelement']区分大小写
RegisterUserProcess.php
<?php
include ("connection.inc.php");
connect();
$username = $_POST['username'];
$firstName = $_POST['firstname'];
$lastName = $_POST['lastname'];
$address = $_POST['address'];
$postCode = $_POST['postCode'];
$emailAddress = $_POST['emailAddress'];
$password = $_POST['password'];
?>
你的代码需要很多修改。这是一个建议。如果在同一个脚本中执行代码,那么应该使用isset
例如:如果(isset($_请求['submit']))
{
一些代码。。。
}
其他的
{
html表单。。。
}
因此,在伪代码中,可以这样写:如果勾选了复选框,那么就标记日期?嗨,格雷姆,对于上面的评论,是的,正确!您得到的问题更通用,实际上,PHP已经弃用了register globals(您可以手动重新启用它,但从实践和编码标准的角度来看,它不是很好)。您还应该通过转义例程传递变量,以删除潜在的破坏性注入。类似于
mysql\u real\u escape\u string($var)
。我将研究什么是真正的escape,以及如何使用它。听起来有点让人难以理解,我需要再次掌握这个概念,因为我已经有几年没有接触过web,并且把它与java混为一谈了。感谢您的帮助help@michaelotoole这个问题与globals无关-问题中提供的通知说明了一切:“未定义索引”。这是正确的行为,因为没有名为Username
,Forename
,…您所说的Username-Forename-姓氏都是phpmyadmin中mysql表中字段的正确名称。真的不明白iv在$Username=$\u POST['Username'上哪里出错了“$username是我的文本字段,$\u POST['username']是phpmyadmin数据库中的行?如果是,那么大小写是正确的?谢谢。$username
是您的变量,$\u POST['username']
是从表单中收到的值(字段名:username
)。这些值与您的数据库无关。iv给定我的文本区域的名称/id,例如username、firstName..我是否需要清除我的RegisterUser2.php页面上的变量?类似username=get.username?或者我又在想java了吗?您的表单字段名称也是$\u POST
数组的键。因为它们都是大小写因此,您无法获取$\u POST['Username']
的值,因为表单中没有名为Username
的字段。
if (isset($_POST['Username'])) {
$username = $_POST['Username'];
}
<?php
include ("connection.inc.php");
connect();
$username = $_POST['username'];
$firstName = $_POST['firstname'];
$lastName = $_POST['lastname'];
$address = $_POST['address'];
$postCode = $_POST['postCode'];
$emailAddress = $_POST['emailAddress'];
$password = $_POST['password'];
$termsConditions = $_POST['dateOfCreation'];
$sql="INSERT INTO User (Username, Forename, Surname, Address, PostCode, EmailAddress, Password, DateOfCreation)
VALUES ('$username', '$firstName', '$lastName', '$address', '$postCode', '$emailAddress', '$password', 'now()')";
mysql_query($sql);
echo "Thank You $firstName $lastName You Have Successfully Created An Account!";
echo $sql;