Сравнивая пользовательский ввод с сохраненными данными из базы данных и спрашивая, что делать, если они не совпадают?

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

Сценарий таков:
Пользователь проверяет. Они начинают заполнять форму. Затем они вспоминают, что у них уже есть учетная запись в компании, или замечают уведомление «войти» вверху, а затем входят в систему.
Теперь, когда пользователь вошел в систему, мы хотим заполнить форму для возвращающегося клиента, чтобы ускорить процесс, но мы не хотим перезаписывать то, что пользователь уже набрал. Поэтому нам нужно сделать несколько сопоставлений на полях, а затем спросить, хочет ли пользователь изменить или сохранить. Также мы не хотим подсказать пользователю, если нет никакой разницы.

Сначала я взял все не пустые поля в комбинированную строку и использовал strcasecmp() сравнить его с равной строкой из базы данных. Но оказывается, что php не думает, что «y» и «Y» — это одна и та же буква, поэтому это приводит к несоответствию. Кроме того, поскольку это норвежский сайт, использование нордических символов (например, «æ ø å») делает это довольно трудным.

Любые идеи о том, как это может быть достигнуто хорошим способом?

1

Решение

Я думаю, что самый простой способ — это html локальное хранилище, так что если пользователь заполняет форму, то браузер будет хранить данные до завершения формы, например stackoverflow. Если по какой-то причине страница была отменена или по какой-либо другой причине закрыта, вы можете просто получить эти данные и снова заполните форму этими данными, чтобы не тратить время. Это очень хорошая методика, которую вы можете хранить на локальном компьютере до 5 МБ без каких-либо вызовов на стороне сервера.

для более подробной информации см. это

html5 локальное хранилище

Локальное хранилище

0

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

Когда вы берете свои не пустые поля в комбинированную строку

$_SESSION['checkoutForm_fields'] = $combinedFieldNames; // forexample comma seperated or json_encoded()
$_SESSION['checkoutForm_value'] = md5($combinedString);
// After login complete and you fetch the old values from DB
// get the $_SESSION['checkoutForm_fields'] value and gather the values of these fields from DB lets say $combinedStringFromDB;
if ($_SESSION['checkoutForm_value'] != md5($combinedStringFromDB)) {
// Do what ever you want.
}
0