Неопределенный индекс PHP - PullRequest
2 голосов
/ 12 марта 2012

Я пытался получить форму в HTML / PHP для обработки в таблицу mysql / phpmyadmin, которая находится на сервере numyspace, но по неизвестным мне причинам я получаю следующее сообщение об ошибке.

Примечание: неопределенный индекс: имя пользователя в /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

Примечание: неопределенный индекс: PostCode в /var/www/vhosts/numyspace.co.uk/web_users/home/~unn_w11034582/public_html/CaseProject/registerUserProcess.php по линии 18

Примечание: неопределенный индекс: адрес электронной почты в /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

Примечание: неопределенный индекс: DateOfCreation in /var/www/vhosts/numyspace.co.uk/web_users/home/~unn_w11034582/public_html/CaseProject/registerUserProcess.php on line 21 0 INSERT INTO User (Имя пользователя, Имя, Фамилия, Адрес, PostCode, EmailAddress, Password, DateOfCreation) VALUES ('', '', '', '', '', '', '', '')

В том виде, в каком оно написано Вставить в пользователя () Пользователь - это моя таблица в базе данных, в которую я хотел бы вставить информацию. (все написания и заглавные буквы находятся в правильном месте) я не уверен, почему все значения являются пустыми, поскольку похоже, что он не собрал информацию из предоставленных ячеек.

Любые подсказки или подсказки были бы очень полезны, ребята DateOfCreation - это что-то, что я связываю с банкоматом, возможно, стоит убрать его, поскольку он пытается преобразовать флажок «Я принимаю условия и положения» в метку времени, чтобы сохранить дату, когда пользователь изначально создал учетную запись. Код находится на ранних стадиях и не содержит никакой проверки того, что когда-либо может предоставить код, если нужно, просто погуглил сообщение об ошибке, и кажется, что для этого сообщения об ошибке есть много разных типов.

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

Ответы [ 4 ]

1 голос
/ 12 марта 2012

Вы должны добавить эти изменения, перечисленные ниже

Примечание: $ _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'];

И вы никогда не указывали имя даты создания в вашей HTML-форме. Если вам нужна временная метка, вы должны изменить поле dateofcreation на timestamp и использовать 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

Например: if (isset ($ _ REQUEST ['submit']) { какой-то код ... } еще { HTML-форма ... }

0 голосов
/ 12 марта 2012

Вам нужно будет добавить условное обозначение isset вокруг ваших тегов (или что-то похожее на этот эффект)

if (isset($DateOfCreation)) {
  // logic here...
}

Обновленный после ссылки на ваш обновленный вопрос, вам нужно будет изменить свой код на приведенный ниже (сделайте это для каждой переменной)

if (isset($_POST['Username'])) { 
  $username = $_POST['Username'];
}
0 голосов
/ 12 марта 2012

$_POST ключи чувствительны к регистру - вы должны изменить Username на username, Forename на forename, ... в вашем php-коде, чтобы соответствовать именам полей формы.

0 голосов
/ 12 марта 2012

Не видя некоторого кода, я не могу быть уверен, но, скорее всего, вам следует изменить все ваши случаи с $Username на $_POST['Username'] (если вы используете форму с методом HTTP POST) или $_GET['Username'](если данные поступают с URL-адреса) - Username это просто пример, конечно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...