Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Неправильно работает скрипт регистрации (https://javascript.ru/forum/events/63748-nepravilno-rabotaet-skript-registracii.html)

FaNaT_96 26.06.2016 22:15

Неправильно работает скрипт регистрации
 
Есть следующий скрипт регистрации, который проверяет доступность логина и эмейла. Если их в базе нет, то появляется надпись на зеленом фоне, а если есть, то на красном фоне. Только вот до сего момента скрипт работал, а теперь он постоянно выполняет блок else, то есть тот, где логин свободен. Независимо от того, свободный или занятый логин я ввожу.

$(document).ready(function()
{
	$("#login").blur(function()
	{
		
		if ($("#login").val().length > 0 )
		{
			
			$("#msgbox").removeClass().addClass('messagebox').text('Проверка...').fadeIn("slow");
			$.post("/copyright/php/user_availability.php",{ user_name:$(this).val() }, function(data)
			{
			  if(data=='no') 
			  {
				  
				$("#msgbox").fadeTo(200,0.1,function() 
				{ 
				  $(this).html('Логин занят').addClass('messageboxerror').fadeTo(900,1);
				});		
			  }
			  else
			  {
				 
				$("#msgbox").fadeTo(200,0.1,function()  
				{ 
				  $(this).html('Логин свободен').addClass('messageboxok').fadeTo(900,1);	
				});
			  }
					
			});
		}
		else
		{
			
			$("#msgbox").fadeOut(200,function()  
			{ 
			alert(data);
			  $(this).html('Логин свободен').removeClass('messageboxok');
			});
		}
	});

$("#email").blur(function()
{
	var pattern = /^([a-z0-9_\.-])+@[a-z0-9-]+\.([a-z]{2,4}\.)?[a-z]{2,4}$/i;
	if ($("#email").val().length > 0 && pattern.test($(this).val()))
	{
		$("#msgbox_email").removeClass().addClass('messagebox').text('Проверка...').fadeIn("slow");
		$.post("php/email_availability.php",{ email_name:$(this).val() } ,function(data)
		{
		  if(data=='no') 
		  {
			   
			$("#msgbox_email").fadeTo(200,0.1,function() 
			{ 
			  $(this).html('E-mail занят').addClass('messageboxerror').fadeTo(900,1);
			});	
			$('input[name=reg_action').attr('disabled',true);
		  }
		  else
		  {
			$("#msgbox_email").fadeTo(200,0.1,function()  
			{ 
			  $(this).html('E-mail свободен').addClass('messageboxok').fadeTo(900,1);	
			});
			$('input[name=reg_action').attr('disabled',false);
		  }
		});
	}
	else {
		$("#msgbox_email").fadeOut(200,function()  
			{ 
			  $(this).html('E-mail свободен').removeClass('messageboxok');
			});
	}	
});
});


$dbhost = "localhost"; // Хост
	$dbuser = "root"; // Имя пользователя
	$dbname = "copyright"; // Имя базы данных

	// Подключаемся к mysql серверу
	$link = mysql_connect($dbhost, $dbuser);
	mysql_set_charset("utf8");
	mysql_select_db($dbname, $link);
	$query = "SELECT * FROM users";
	$result = mysql_query($query, $link);
	
	// Цикл
	while($row = mysql_fetch_array($result)) {
		$existing_users[$row['log']] = $row['login'];
	}
	
	$user_name=$_POST['user_name'];
	
	 if (in_array($user_name, $existing_users))
      {
      //юзер недоступен
      echo "no";
      } 
      else
      {
      //доступен
      echo "yes";
      }
	  
	    mysql_close($link);


php проверку e-mail не включал сюда, т.к. по аналогии. В чем может быть ошибка?

FaNaT_96 26.06.2016 23:03

С проблемой разобрался, неправильно написал имя столбца в запросе к БД.

laimas 27.06.2016 01:29

Зачем получать всех пользователей, чтобы проверить только одного?


Часовой пояс GMT +3, время: 10:48.