www.WebTips.pl: Ajax .post problem z połączeniem - www.WebTips.pl

Skocz do zawartości


Strona 1 z 1

Ajax .post problem z połączeniem

#1 Użytkownik nie jest zalogowany   attimo 

  • Nowicjusz
  • Grupa Użytkownik
  • Postów 1
  • Rejestracja 13 mar 10

Napisano 13 marzec 2010 - 11:24

Witam,

Mam problem z połączeniem z bazą poprzez ajaxa metodą post. kod wygląda tak:
<?php
if($_POST)
{
	$login = $_POST['username'];
	$password = $_POST['password'];
	
	$polaczenie = mysql_connect('', '', '') or die("brak polaczenia: ".mysql_error());
	$baza = mysql_select_db('test',$polaczenie) or exit("nie wybrano bazy, blad". mysql_error());
	mysql_query("SET NAMES utf8");
	mysql_query("SET CHARACTER_SET utf8_polish_ci");
		
	if (mysql_num_rows(mysql_query("SELECT login, password FROM c WHERE login = '".$login."' && password = '".$password."'")) > 0)
	{
		header("Location: dashboard.php");
		exit;
	}
	else
	{
		$errorMessage = "Złe dane";
	}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  <title> Strona gwna </title>
  
<script type='text/javascript' src='jquery-1.3.2.min.js'></script>

<script>
	$(document).ready(function() {
		$('#errorConsole').hide();
	  $('form[name=loginForm]').submit(function() {
		$.post('ajaxx.php',{username: $('[name=username]').val(),
			password: $('[name=password]').val()},
			function(data) {
			  if(data.success)
			  {
				  location.href=data.redirect;
			  }	  								
			  else
			  {
				  $('#errorConsole').html(data.message).fadeIn();
			  }																			   
      		}, 'json');					   					 
		return false;
		});
	});
</script>
	
<link rel="stylesheet" href=" style.css " type="text/css">
</head>
<body>
<?php echo $errorMessage?>

<div id='errorConsole'></div>
<form method='post' action='/ajax.php' name='loginForm'>
Username:<br />
<input type='text' name='username'/><br />
Password:<br />
<input type='password' name='password'/><br />
<input type='submit' value='login' />
</form>
</body>
</html>


I kod obsługujący wysłane zmienne:
<?php require('lacz.php');?>
<?php
if($_POST)
{ 
	$login = htmlspecialchars($_POST["username"]);
	$password = htmlspecialchars($_POST["password"]);
	
	if (mysql_num_rows(mysql_query("SELECT login, password FROM c WHERE login = '".$login."' && password = '".$password."'")) > 0) 
		{
			$data['success'] = true;
			$data['redirect'] = 'dashboard.php';
		}
		else
		{
			$data['success'] = false;
			$data['message'] = "zly login lub haslo";
		}
		echo json_encode($data);
}
?>


Niestety po kliknięciu w przycisk nic się nie dzieje natomiast gdy dam w warunku np. if(htmlspecialchars($_POST["password"]) == 'test') <= czyli sprawdze jakąś ustaloną wartość to działa poprawnie, ale jak tylko dodam ten drugi to automatycznie przestaje działać. Nie mam pojęcia dlaczego.
0


Strona 1 z 1

Odpowiedzi do tego tematu

#2 Użytkownik nie jest zalogowany   Code Hunter 

  • Wyjadacz
  • PipPipPipPipPip
  • Grupa Użytkownik
  • Postów 932
  • Rejestracja 22 lut 07
  • MiejscowośćTarnobrzeg

Napisano 14 marzec 2010 - 01:31

Może kod zwraca jakieś błędy PHP i przez to zawartość zwracana przez plik nie jest poprawnymi danymi JSONa? Sprawdź dokładnie, co zwraca plik przez AJAX albo Firebugiem, albo zapisuj wszystko, co wyrzuca plik do innego pliku, zobacz plik z błędami PHP, możesz też sprawdzić w Konsoli błędów przeglądarki, jeśli JS otrzymuje błędne dane, które parsuje wyrzuca błąd, możesz jeszcze usuąć na końcu 'json' z post i w callbacku dać alert(data), wyświetli wszystko, co dostanie.
Nigdy nie będę umiał tyle, żebym nie mógł się nauczyć więcej.
Pomocy na gg udzielam tylko wtedy, gdy sam ją zaproponuję!!!
0

Strona 1 z 1


Szybka odpowiedź

  

Użytkownicy przeglądający ten temat: 1
0 użytkowników, 1 gości, 0 anonimowych