Member 13925461 Ответов: 1

У меня есть проблема в приведенном ниже коде


Каждый Раз, Когда Я Открываю Свою Страницу, Я Сталкиваюсь С Этой Ошибкой.

Неопределенный индекс: мобильный в C:\xampp\htdocs\Church\views\CreateAccount.php на линии 4

Что я уже пробовал:

<?php
включить '../dbcon.php';
session_start();
$mobile = mysqli_real_escape_string($con, $_SESSION['mobile']);
$результат =@mysqli_query($Con, то"выберите memberid из числа членов которой mobilenumber='$мобильного'");
$идентификатор = '';
while ($row = mysqli_fetch_array($result)){
$id = $row["memberid"];
}
?>




<title>Создать учетную запись





Новый Идентификатор Пользователя



Новый Пароль



Подтвердите Пароль



<?php
if(isset($_POST['create'])) {
$имя пользователя = mysqli_real_escape_string($кон, $_POST, где['id_пользователя']);
$pwd = mysqli_real_escape_string($con, $_POST['pwd']);
$role = "участник";
$запрос = "вставить в учетные записи(имя пользователя,memberid,пароль,роль) значения('$имя пользователя', с$ID,'$фрд','$роль')";
if (mysqli_query($con, $query)) {
заголовок("Location:../Login.php");
} еще {
Эхо '$(\'#предупреждение\').в формате HTML (\в'<div с классом="оповещение оповещение-оповещение об опасности-могут уволить"&ГТ;произошла ошибка пожалуйста попробуйте еще раз или имя пользователя уже существует&ЛТ;/дел&ГТ;\'); ';
}
}
?>


проверка функции() {
ВАР фрд = документ.метода getElementById('инвалидов').значение;
var cpwd = document.getElementById('cpwd').value;
если(pwd != cpwd)
{
ВАР а = $('#предупреждение').HTML-код (в'<div с классом="предупреждение-опасность предупреждение предупреждение-могут уволить"&ГТ;несоответствие паролей&ЛТ;/дел&ГТ;');
$('#pwd').сосредоточить();
setInterval(функция(){
$('#предупреждение').код HTML(");
}, 3000);
$('#frm').submit(функция (e) {
е.метод preventDefault();
возвращать false;
})
}
еще
{
$('#frm').submit(функция (ev) {
эВ.подать();
})
}
}

ZurdoDev

1. пожалуйста, обновите свой заголовок до чего-то релевантного.
2. Я не занимаюсь PHP, но казалось бы, что $_SESSION['мобильный'] не установлена.

Richard MacCutchan

В HTML-таблице или таблице сеансов нет элемента с именем "мобильный".

Richard MacCutchan

Вы же понимаете, что хранение паролей в открытом виде-это огромная дыра в системе безопасности.

Richard Deeming

Ну, это не похоже на то, что PHP имеет какие-либо встроенные методы, чтобы помочь вам сделать правильную вещь, не так ли?

О, подожди:
PHP: password_hash[^]
РНР: функцию password_verify[^]

:)

1 Ответов

Рейтинг:
8

Patrice T

Используйте отладчик, чтобы убедиться, что $_SESSION['mobile'] существовать.

$query = "INSERT INTO accounts(username,memberid,password,role) values('$username',$id,'$pwd','$role')";

Не решение вашего вопроса, а еще одна проблема, которая у вас есть.
Никогда не создавайте SQL-запрос путем объединения строк. Рано или поздно вы сделаете это с помощью пользовательских вводов, и это откроет дверь к уязвимости под названием "SQL-инъекция", она опасна для вашей базы данных и подвержена ошибкам.
Одна кавычка в имени - и ваша программа выйдет из строя. Если пользователь вводит имя, например "Брайан О'Коннер", может привести к сбою вашего приложения, это уязвимость SQL-инъекции, и сбой-это наименьшая из проблем, вредоносный пользовательский ввод, и он продвигается к командам SQL со всеми учетными данными.
SQL-инъекция - Википедия[^]
SQL-инъекция[^]
Атаки SQL-инъекций на примере[^]
PHP: SQL-инъекция - руководство пользователя[^]
Шпаргалка по предотвращению инъекций SQL - OWASP[^]
Как я могу объяснить SQL-инъекцию без технического жаргона? - Обмен Стеками Информационной Безопасности[^]