Можно ли использовать проверку PHP перед отправкой формы и обновлением страницы? - PullRequest
0 голосов
/ 29 февраля 2012

Я создал форму регистрации пользователя с использованием PHP, пароль должен быть введен и введен снова, чтобы убедиться, что они совпадают. У меня есть мои условные проверки, которые запускаются при отправке формы, если они терпят неудачу, форма перезагружается пустой для заполнения пользователем. Я хотел сделать проверку в реальном времени по паролю и поля repeatPassword, так что если они были оба введены и не соответствуют предупреждению, отображаемому мгновенно, а не после того, как вся форма была заполнена и отправлена.

Я пытался сделать это, используя только PHP, раньше я использовал JavaScript, но я хочу сделать все это на PHP, так как думаю, что это будет лучше и надежнее.

Вот код, который у меня есть для моего условия проверки формы:

$firstname=$_POST['fName'];
$surname=$_POST['sName'];
$email=$_POST['emailad'];
$password= md5($_POST['password']);
$repeatpassword= md5($_POST['repeatPassword']);
$secretquestion=$_POST['sQuestion'];
$secretanswer=$_POST['sAnswer'];
$address1=$_POST['address1'];
$address2=$_POST['address2'];
$address3=$_POST['address3'];
$address4=$_POST['address4'];
$city=$_POST['city'];
$postcode=$_POST['postcode'];
$phone=$_POST['phone'];
$mobile=$_POST['mobile'];

if(!empty($password)
&& !empty($repeatpassword)
&& !empty($firstname)
&& !empty($surname)
&& !empty($email)
&& ($repeatpassword == $password)
&& !empty($secretquestion)
&& !empty($secretanswer)
&& !empty($address1)
&& !empty($city)
&& !empty($postcode)
&& !empty($phone))
 {


$reg =true;
$sql = "INSERT INTO cryptuser (firstname,surname,email,password, secretq, secreta,
                               address1,address2,address3,address4,city,postcode,phone,mobile)
        VALUES     ('$firstname','$surname','$email','$password','$secretquestion','$secretquestion',
            '$address1','$address2','$address3','$address4','$city','$postcode','$phone','$mobile')"; 

У меня был написан код, который я удалил, потому что он определенно был неправильным, но я пытался выполнить функцию PHP, если поля пароля и repeatPassword не пусты, проверьте, что оба значения одинаковы, если они ничего не делают, иначе отобразить текст предупреждения.

Я чувствовал, что это сработает, но я все еще пытаюсь привыкнуть к php, являющемуся языком на стороне сервера.

Любой совет будет оценен.

Ответы [ 3 ]

4 голосов
/ 29 февраля 2012

Во-первых, в PHP не будет «лучше и надежнее», чем в Javascript. Оба языка полны по Тьюрингу, и вы мало что можете сделать в одной области, а в другой - нет. Вы ограничены только своими способностями кодера.

Тем не менее, если вы хотите выполнить проверку в PHP перед отправкой формы, вам придется каким-то образом передавать данные на сервер. Конечно, этот процесс очень похож на отправку формы ...

Одним из способов может быть наличие JS, который извлекает информацию из формы и отправляет AJAX-запрос на сервер. Если сервер говорит «ОК», то JS устанавливает местоположение клиента для новой страницы (так как сервер уже получил все содержимое как часть процесса проверки, вам не нужно повторно их POST).

Продолжая, ваш код проверки, как вы написали его выше, является очень плохой идеей . См. этот комикс для быстрого и приличного объяснения, почему (http://bobby -tables.com , кажется, не работает) - представьте, как бы выглядел запрос SQL, если бы вы как $_POST['fName'].

1 голос
/ 29 февраля 2012

PHP будет работать только на сервере, а не в браузере. Используйте JavaScript для проверки на стороне клиента. Сохраните проверку на стороне сервера и добавьте защиту от внедрения SQL. Если вы не знаете, что это такое, поищите его в Google и посмотрите на функцию PHP * mysql_escape_string().

0 голосов
/ 29 февраля 2012

ДА!Существуют случаи, когда вы хотите выполнить проверку на стороне сервера, а также на стороне клиента, хотя в большинстве случаев вам нужно выполнять только на стороне клиента ДО отправки, а затем на стороне клиента при отправке.Если вам нужно как до, так и после отправить быструю поисковую игру в Google me , этот симпатичный учебник

и, как всегда, я рекомендую использовать jQuery validate с функциейсравнить два пароля

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