我一直在尝试获取 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/