$ _Session [‘registrationError’] НЕ устанавливает ошибки для формы регистрации

Я пытаюсь создать registration.php форма.

  • Страница регистрации проверяет наличие «registrationError» и распечатывает его, иначе она печатает регистрационную форму.

  • Регистрационная форма принимает first name а также last name поля.

  • Если нажата кнопка отправки, она вызывает:
    onClick="registrationValidator();"

Вот форма в registration.php страница

  <?php  session_start(); require_once 'inc/functions.php';

if(sessionCheck('registrationError')) { //If session variable is set and not null

foreach ($_Session['registrationError'] as $assoc) {
echo $assoc;
}
} else {  ?>

<form class="registrationBox" method="post">
<div id="profileInfo">
<label class="label">First Name </label><br />
<input type="text" name="memberFirstName"><br />
<label class="label">Last Name </label><br />
<input type="text" name="memberLastName"><br />
<input type="submit" name="submit" value="submit" onClick="registrationValidator();">
</div>
</form>
<?php } ?>
  • Далее registrationValidator() который в functions.phpпроверяет, является ли submit кнопка установлена, если нет, она устанавливает $_Session['registrationError'], но если задано submit, проверяется, first name а также last name установлены, если там также установлено, что делает «некоторый» запрос, ELSE $_Session['registrationError'] установлено.

Вот функция registrationValidator() на странице functions.php.

/********** Registration Validator **********/

function registrationValidator() {

// Escape form fields from SLQ injections.
$mFirstName = escape($_POST['memberFirstName']);
$mLastName = escape($_POST['memberLastName']);
$submit = escape($_POST['submit']);

if(isset($submit)) {
if(isset($mFirstName)) {
doSLQ();

} else {
$_Session['registrationError'] = 'Name field not set';
} if(isset($password)) {
doSLQ();
} else {
$_Session['registrationError'] = 'Password field is not set';
}

} else {
$_Session['registrationError'] = 'Did not submit';
}

}

Дополнительно, вот sessionCheck() функция, которая проверяет, установлен ли сеанс, если он установлен.

/********** Perform Session Check **********/
// takes a string as an argument and checks id a session variable with that string as its name has a value assigned to it
function sessionCheck($sessionVariable) {
// checks if there is a session variable with the same name as the argument string
if(isset($_SESSION[$sessionVariable])) {
// if there is a session variable with the same name as the argument string, return true as the output of this function
return true;
}   else {
// if there is not a session variable with the same name as the argument string, return false as the output of this function
return false;
}
}

Я знаю что $_Session['registrationError'] не устанавливается по какой-то причине, потому что, когда я НЕ ввожу имя и / или фамилию, ошибка не выводится поверх registration.php стр. Я не понимаю почему? Есть идеи?

0

Решение

Я думаю, что вы немного запутались, когда пользователь нажал кнопку отправки, событие события onclick сработает и попытается вызвать JavaScript registrationValidator (), этот метод не существует в JavaScript.

Когда пользователь нажимает кнопку отправки, он выполняет поиск JavaScript registrationValidator () и не вызывает метод registrationValidator () сервера (PHP).

Метод registrationValidator () никогда не будет вызываться, поэтому сессия пуста и не устанавливается ни разу.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]