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
  1. <?php
  2. session_register("zalogowany");
  3.  
  4. if(empty($_SESSION["zalogowany"]))$_SESSION["zalogowany"]=0;
  5.  
  6. require("connection.php");
  7. connection();
  8.  
  9. function ShowLogin($komunikat=""){
  10. echo "$komunikat<br>";
  11. echo "<form action='logowanie.php' method='post'>";
  12. echo "<div id='sprzedaj_tekst'>Logowanie</div>";
  13. echo "<div id='sprzedaj_tekst'>Login:</div>";
  14. echo "<input type='text' name='login'/>";
  15. echo "<div id='sprzedaj_tekst' >Hasło:</div>";
  16. echo "<input type='password' name='haslo'/><br />";
  17. echo "<input name='szukaj3' type='submit' id='szukaj3' value='Zaloguj'/>";
  18. echo "</form>";
  19. }
  20.  
  21. ?>
  22.  
  23. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  24. <html xmlns="http://www.w3.org/1999/xhtml">
  25. <head>
  26. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  27. <title></title>
  28. </head>
  29.  
  30. <body>
  31. <div id="container">
  32. <?php
  33. if($_GET["wyloguj"]=="tak"){$_SESSION["zalogowany"]=0;echo "Zostałeś wylogowany z serwisu";}
  34. if($_SESSION["zalogowany"]!=1){
  35. if(!empty($_POST["login"]) && !empty($_POST["haslo"])){
  36. if(mysql_num_rows(mysql_query("select * from logowanie where login = '".htmlspecialchars($_POST["login"])."' AND haslo = '".htmlspecialchars($_POST["haslo"])."' "))){
  37. echo "Zalogowano poprawnie. <a href='index.php'>Przejdź na stronę główną. </a>";
  38. $_SESSION['login']=$_POST['login'];
  39. $_SESSION["zalogowany"]=1;
  40.  
  41. }
  42. else echo ShowLogin("Podano złe dane!!!");
  43. }
  44. else ShowLogin();
  45. }
  46. else{
  47. ?>
  48.  
  49. <?php
  50. }
  51. ?>
  52.  
  53. <?php
  54. if($_SESSION["zalogowany"]==0){echo " "; }
  55. else {
  56. ?>
  57. <br />Tresc po zalogowaniu
  58. <?php
  59. }
  60. ?>
  61. </div>
  62. </body>
  63. </html>


W ajax
  1. <?php
  2. session_register("zalogowany");
  3.  
  4. if(empty($_SESSION["zalogowany"]))$_SESSION["zalogowany"]=0;
  5. echo $_SESSION['zalogowany'];
  6. require("connection.php");
  7. connection();
  8.  
  9. function ShowLogin($komunikat=""){
  10. echo "$komunikat<br>";
  11. echo "<input type='text' id='login' />";
  12. echo "<input type='text' id='haslo' />";
  13. echo "<input type='button' value='Wyślij' onclick='pobierzDane();' id='bWyslij' />";
  14. }
  15. ?>
  16. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
  17. <html>
  18. <head>
  19. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  20. <title>Ajax</title>
  21. <script type="text/javascript">
  22.  
  23. function getXMLHttpRequestObject()
  24. {
  25. try{
  26. return new XMLHttpRequest();
  27. }
  28. catch(e){
  29. try{
  30. return new ActiveXObject("Microsoft.XMLHTTP");
  31. }
  32. catch(e){
  33. return false;
  34. }
  35. }
  36. }
  37.  
  38. function pobierzDane()
  39. {
  40. if(XMLHttpRequestObject){
  41. var div = document.getElementById("warstwaDanych");
  42. var przyciskEl = document.getElementById("bWyslij");
  43. var login = document.getElementById("login").value;
  44. var haslo = document.getElementById("haslo").value;
  45.  
  46. przyciskEl.disabled = true;
  47. XMLHttpRequestObject.open("POST", "index.php");
  48. XMLHttpRequestObject.setRequestHeader(
  49. 'Content-Type', 'application/x-www-form-urlencoded');
  50.  
  51. XMLHttpRequestObject.onreadystatechange = function()
  52. {
  53. if (XMLHttpRequestObject.readyState == 4){
  54. if(XMLHttpRequestObject.status == 200){
  55. var tekst = XMLHttpRequestObject.responseText;
  56. login = unescape(login);
  57. haslo = unescape(haslo);
  58. tekst = "Dane odebrane z serwera: " + login + haslo;
  59. div.innerHTML = tekst;
  60. }
  61. przyciskEl.disabled = false;
  62. }
  63. }
  64. login = escape(login);
  65. haslo = escape(haslo);
  66. XMLHttpRequestObject.send("tekst=" + tekst);
  67. }
  68. }
  69.  
  70. var XMLHttpRequestObject = getXMLHttpRequestObject();
  71.  
  72. </script>
  73. </head>
  74. <body>
  75. <div></div>
  76. <div id="warstwaDanych">
  77. <?php if($_GET["wyloguj"]=="tak"){$_SESSION["zalogowany"]=0;echo "Zostałeś wylogowany z serwisu";}
  78. if($_SESSION["zalogowany"]!=1){
  79. if(!empty($_POST["login"]) && !empty($_POST["haslo"])){
  80. if(mysql_num_rows(mysql_query("select * from logowanie where login = '".htmlspecialchars($_POST["login"])."' AND haslo = '".htmlspecialchars($_POST["haslo"])."' "))){
  81. echo "Zalogowano poprawnie. <a href='index.php'>Przejdź na stronę główną. </a>";
  82. $_SESSION['login']=$_POST['login'];
  83. $_SESSION["zalogowany"]=1;
  84. }
  85. else echo ShowLogin("Podano złe dane!!!");
  86. }
  87. else ShowLogin();
  88. }
  89. else{
  90. ?>
  91.  
  92. <?php
  93. }
  94. ?>
  95.  
  96. <?php
  97. if($_SESSION["zalogowany"]==0){echo " "; }
  98. else {
  99. ?>
  100. <br />Tresc po zalogowaniu
  101. <?php
  102. }
  103. ?>
  104. Tutaj pojawi się odpowiedź serwera...
  105.  
  106. </div>
  107. </body>
  108. </html>
  109.