Форумы портала PHP.SU » Клиентская разработка » JavaScript & VBScript » как запретить отправку формы если такой файл существует в базе?

Страниц (1): [1]
 

1. daimon0482 - 12 Мая, 2017 - 23:08:00 - перейти к сообщению
здравствуйте есть такая проверка маила через ajax, проблема в том что при нажатие отправить форма всеравно отправляется на сервер даже если маил занят.

CODE (javascript):
скопировать код в буфер обмена
  1. $(function() {
  2.     // Email
  3.     $("#email").change(function(){
  4.         email = $("#email").val();
  5.        
  6.             $.ajax({
  7.                 url: "testingLoginEmail.php",
  8.                 type: "POST",
  9.                 data: "email=" + email,
  10.                 cache: false,          
  11.                 success: function(response){
  12.                     if(response == "no"){
  13.                         $("#email").next().hide().text(" этот email занят").fadeIn(400);
  14.                         $("#email").removeClass().addClass("inputRed");                
  15.                     }else{                  
  16.                         $("#email").removeClass().addClass("inputGreen");
  17.                         $("#email").next().text("");
  18.                     }                  
  19.                 }
  20.             });
  21.            
  22.            });
  23. });
2. teleoperator27 - 13 Мая, 2017 - 04:27:37 - перейти к сообщению
В данном случае смотреть надо содержимое файла testingLoginEmail.php
3. daimon0482 - 13 Мая, 2017 - 10:11:35 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. include_once "conectbd.php";
  3.  
  4. if(isset($_POST['email'])){
  5. $email = addslashes($_POST['email']);
  6. $email = htmlspecialchars($_POST['email']);
  7. $email = mysql_real_escape_string(trim($_POST['email']));
  8. $result = $mysqli->query("SELECT `email` FROM `users` WHERE `email` = '$email'");
  9. $myrow = mysqli_fetch_array($result);
  10. if($email == $myrow['email'])
  11. {
  12. echo "no";
  13. }
  14. else
  15. {
  16. echo"yes";
  17. }
  18. }
  19.  
  20. ?>
4. Vladimir Kheifets - 18 Мая, 2017 - 10:58:21 - перейти к сообщению
Вы предложили:

$email = addslashes($_POST['email']);
$email = htmlspecialchars($_POST['email']);
$email = mysql_real_escape_string(trim($_POST['email']));
$result = $mysqli->query("SELECT `email` FROM `users` WHERE `email` = '$email'");

Простите, а для чего нужны две стороки?
$email = addslashes($_POST['email']);
$email = htmlspecialchars($_POST['email']);

Будет присвоено только значение $email из третьей строки:
$email = mysql_real_escape_string(trim($_POST['email']));
5. 3d_killer - 18 Мая, 2017 - 11:15:14 - перейти к сообщению
в форме нужно сделать просто кнопку без submit
По нажатию зтой кнопки делать вашу проверку, если все ок делаем form.submit(); не ок, не делаем submit
(Добавление)
teleoperator27 этот файл тут пока что совсем не при чем
6. htmaker - 25 Августа, 2017 - 09:27:11 - перейти к сообщению
Посмотри в консоли браузера что отвечает скрипт при запросе, тогда поймешь проблема на стороне сервера или клиента.

 

Powered by ExBB FM 1.0 RC1