未定义索引PHP

未定义索引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'];

我一直在尝试获取HTML/PHP格式的表单,以将其处理到numyspace服务器上的mysql/phpmyadmin表中,但由于未知原因,我收到以下错误消息

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;