Witam, mam taki problem, posiadam działający i sprawdzony skrypt w php, chciałbym go przerobić tak żeby logowanie odbywało się bez przeładowania strony czyli w ajaxie, niestety po wielu próbach to logowanie nie działa mi. Poniżej zamieszczam działający skrypt w php oraz moje próby z ajaxem. Dopiero zaczynam przygodę z ajaxem więc mogą tam być rażące błędy oraz spowodowane wieloma próbami i zmianami.
Skrypt w php
<?php
if(empty($_SESSION["zalogowany"]))$_SESSION["zalogowany"]=0;
require("connection.php");
connection();
function ShowLogin($komunikat=""){
echo "<form action='logowanie.php' method='post'>"; echo "<div id='sprzedaj_tekst'>Logowanie</div>"; echo "<div id='sprzedaj_tekst'>Login:</div>"; echo "<input type='text' name='login'/>"; echo "<div id='sprzedaj_tekst' >Hasło:</div>"; echo "<input type='password' name='haslo'/><br />"; echo "<input name='szukaj3' type='submit' id='szukaj3' value='Zaloguj'/>"; }
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
</head>
<body>
<div id="container">
<?php
if($_GET["wyloguj"]=="tak"){$_SESSION["zalogowany"]=0;echo "Zostałeś wylogowany z serwisu";}
if($_SESSION["zalogowany"]!=1){
if(!empty($_POST["login"]) && !empty($_POST["haslo"])){ echo "Zalogowano poprawnie. <a href='index.php'>Przejdź na stronę główną. </a>"; $_SESSION['login']=$_POST['login'];
$_SESSION["zalogowany"]=1;
}
else echo ShowLogin
("Podano złe dane!!!"); }
else ShowLogin();
}
else{
?>
<?php
}
?>
<?php
if($_SESSION["zalogowany"]==0
){echo " "; } else {
?>
<br />Tresc po zalogowaniu
<?php
}
?>
</div>
</body>
</html>
W ajax
<?php
if(empty($_SESSION["zalogowany"]))$_SESSION["zalogowany"]=0; echo $_SESSION['zalogowany']; require("connection.php");
connection();
function ShowLogin($komunikat=""){
echo "<input type='text' id='login' />"; echo "<input type='text' id='haslo' />"; echo "<input type='button' value='Wyślij' onclick='pobierzDane();' id='bWyslij' />"; }
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Ajax</title>
<script type="text/javascript">
function getXMLHttpRequestObject()
{
try{
return new XMLHttpRequest();
}
catch(e){
try{
return new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e){
return false;
}
}
}
function pobierzDane()
{
if(XMLHttpRequestObject){
var div = document.getElementById("warstwaDanych");
var przyciskEl = document.getElementById("bWyslij");
var login = document.getElementById("login").value;
var haslo = document.getElementById("haslo").value;
przyciskEl.disabled = true;
XMLHttpRequestObject.open("POST", "index.php");
XMLHttpRequestObject.setRequestHeader(
'Content-Type', 'application/x-www-form-urlencoded');
XMLHttpRequestObject.onreadystatechange = function()
{
if (XMLHttpRequestObject.readyState == 4){
if(XMLHttpRequestObject.status == 200){
var tekst = XMLHttpRequestObject.responseText;
login = unescape(login);
haslo = unescape(haslo);
tekst = "Dane odebrane z serwera: " + login + haslo;
div.innerHTML = tekst;
}
przyciskEl.disabled = false;
}
}
login = escape(login);
haslo = escape(haslo);
XMLHttpRequestObject.send("tekst=" + tekst);
}
}
var XMLHttpRequestObject = getXMLHttpRequestObject();
</script>
</head>
<body>
<div></div>
<div id="warstwaDanych">
<?php if($_GET["wyloguj"]=="tak"){$_SESSION["zalogowany"]=0;echo "Zostałeś wylogowany z serwisu";}
if($_SESSION["zalogowany"]!=1){
if(!empty($_POST["login"]) && !empty($_POST["haslo"])){ echo "Zalogowano poprawnie. <a href='index.php'>Przejdź na stronę główną. </a>"; $_SESSION['login']=$_POST['login'];
$_SESSION["zalogowany"]=1;
}
else echo ShowLogin
("Podano złe dane!!!"); }
else ShowLogin();
}
else{
?>
<?php
}
?>
<?php
if($_SESSION["zalogowany"]==0
){echo " "; } else {
?>
<br />Tresc po zalogowaniu
<?php
}
?>
Tutaj pojawi się odpowiedź serwera...
</div>
</body>
</html>