php - 未定义索引 PHP

标签 php mysql html forms

我一直在尝试获取 HTML/PHP 中的表单以处理到 numyspace 服务器上的 mysql/phpmyadmin 表中,但由于我自己不知道的原因,我收到以下错误消息。

Notice: Undefined index: Username in /var/www/vhosts/numyspace.co.uk/web_users/home/~unn_w11034582/public_html/CaseProject/registerUserProcess.php on line 14

Notice: Undefined index: Forename in /var/www/vhosts/numyspace.co.uk/web_users/home/~unn_w11034582/public_html/CaseProject/registerUserProcess.php on line 15

Notice: Undefined index: Surname in /var/www/vhosts/numyspace.co.uk/web_users/home/~unn_w11034582/public_html/CaseProject/registerUserProcess.php on line 16

Notice: Undefined index: Address in /var/www/vhosts/numyspace.co.uk/web_users/home/~unn_w11034582/public_html/CaseProject/registerUserProcess.php on line 17

Notice: Undefined index: PostCode in /var/www/vhosts/numyspace.co.uk/web_users/home/~unn_w11034582/public_html/CaseProject/registerUserProcess.php on line 18

Notice: Undefined index: EmailAddress in /var/www/vhosts/numyspace.co.uk/web_users/home/~unn_w11034582/public_html/CaseProject/registerUserProcess.php on line 19

Notice: Undefined index: Password in /var/www/vhosts/numyspace.co.uk/web_users/home/~unn_w11034582/public_html/CaseProject/registerUserProcess.php on line 20

Notice: Undefined index: DateOfCreation in /var/www/vhosts/numyspace.co.uk/web_users/home/~unn_w11034582/public_html/CaseProject/registerUserProcess.php on line 21 0INSERT INTO User (Username, Forename, Surname, Address, PostCode, EmailAddress, Password, DateOfCreation) VALUES ('', '', '', '', '', '', '', '')

正如它所说的插入用户 () 用户是我在数据库中的表,我希望将信息插入其中。 (所有拼写和大写都在正确的位置)我不确定为什么所有的值都是空白的,因为看起来它没有从提供的单元格中收集信息。

任何帮助提示或指示都将非常适用,谢谢大家 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;

?>

RegisterUser2.php

?>
<p><b><h3>Welcome User Please Register</h3></b></p>
    <form action="registerUserProcess.php" id="registerUserForm" method="post" name="registerUserForm">
    *Username:                  
    <input name="username" type="text" size="16" />
    (must contain 8-16 characters with at least 1 number)<br /><br />
    *First name: 
    <input name="firstName" type="text" size="20" />
    *Last name: 
    <input name="lastName" type="text" size="30" />
    <br /><br />
    *Address: 
    <input name="address" type="text" size="50" />
    <br /><br />
    *Post Code:
    <input type="text" name="postCode" size="8" /><br /><br />
    *Email Address: 
    <input name="emailAddress" type="text" size="50" /><br /><br />
    *Password: 
    <input name="password" type="password" size="16" />
    (must contain 8-16 characters with at least 1 number)<br /><br />
    *Confirm Password: 
    <input name="confirmPassword" type="password" size="16" /><br /><br />
    *Accept Terms & Conditions: 
    <input type="checkbox" name="termsConditions" value="yes" /><br /><br />

    <input type="reset" name="resetForm" value="Reset" id="resetForm" />
    <input type="submit" name="submitUser" value="Submit" id="submitUser" />
    </form>
<?php

最佳答案

您应该添加下面列出的这些更改

Note: $_POST['someelement'] is case-sensitive.

注册用户进程.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'];

而且您从未在 html 表单中指定输入名称 dateofcreation。如果您想要时间戳,您应该将 dateofcreation 字段更改为时间戳并在查询中使用 now()

    $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;

?>

并且您的代码需要大量更改。这是一个建议。如果您在同一个脚本中执行代码,那么您应该使用 isset

eg: if(isset($_REQUEST['submit']) { some code... } else { html form... }

关于php - 未定义索引 PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9670408/

相关文章:

html - 无法覆盖网页模板中的内联 CSS

html - 将组件放在搜索字段的一侧

javascript - 从 php 调用 Javascript 函数

php - 方法声明应与 PHP 中的父方法兼容

sql - 选择两列的最大值(重新访问)

c# - 未处理的异常 : MySql. Data.MySqlClient.MySqlException:键 'CC2-2012-04-10-201205' 的重复条目 'PRIMARY'

php - 本地 apache 服务器上的奇怪 memcache 行为

php - Laravel - 如何在没有小时的情况下获取列 created_at

mysql - 将准备好的语句的结果存储为 mysql 中的表?

javascript - jquery在html名称中递增数字=""