2014-09-29 91 views
-3

我已經閱讀了jQuery和JavaScript中有關PHP和mysql後臺的幾個教程。我知道這個PHP的一部分將工作(或者如果它不會然後我可以解決它比likley更多),但問題在於我對jquery的知識極其有限。所以希望這裏的某個人能夠對我的(可能是非常明顯的)錯誤在哪裏我會非常感激。在創建jQuery + PHP + MySQL聊天室時出現問題

此外:我不是在尋找一個人來告訴我什麼是需要做的,只是朝着正確的方向發展,因爲我找不到任何有用的東西。

主頁:

<?php 
include 'connect.php'; 
session_start(); 

include 'include/notloggedin.php'; 
?> 
<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="windows-1252"> 
    <title>zyrnith</title> 
    <link href="stylesheets/all.css" rel="stylesheet" type="text/css"/> 
    <link href="stylesheets/game.css" rel="stylesheet" type="text/css"/> 
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"> 
       function scTop(){ 
    $("#messages").animate({scrollTop:$("#messages")[0].scrollHeight}); 
    } 
    function load_new_stuff(){ 
    localStorage['lpid']=$(".messagerow:last").attr("title"); 
    $("#messages").load("include/messages.php",function(){ 
     if(localStorage['lpid']!=$(".messagerow:last").attr("title")){ 
     scTop(); 
     } 
    }); 
    } 
    $(document).ready(function(){ 
    scTop(); 
    }); 
    $('#chatbox').keydown(function() { 
    if (event.keyCode == 13) { 
     val=$(this).find("#chatbox").val(); 
     if (val != ""){ 
     $.post("include/sendchat.php",{message:val},function(){ 
     load_new_stuff(); 
     }); 
     } 
     return false; 
    }) 
    }); 


    $(document).ready(function() 
    { 
     setInterval(load_new_stuff(), 1000); 
    }); 
    </script> 
</head> 
<body> 
    <div id="everything"> 
     <div style="width:200px; float: left;"> 
      test 
     </div> 
     <div id="chat"> 
      <div id="messages"> 
      <?php 
       include 'include/messages.php'; 
      ?> 
      </div> 
      <form id="chatform"> 
       <input type="text" id="chatbox" maxlength="150" name="message" /> 
      </form> 
     </div> 
     <div style="float: right; text-align: right; width:200px;"> 
      <?php echo $_SESSION['username']; ?> 
      <br /> 
      <a style="height: 150px; padding-right: 5px; font-variant: small-caps;" href="logout.php">Logout</a> 
     </div> 
    </div> 
</body> 
</html> 

sendchat.php:

<?php 
include("connect.php"); 
if(!isset($_SESSION['userid']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH'])=='xmlhttprequest'){ 
die("<script>window.location.reload()</script>"); 
} 
if(isset($_SESSION['userid']) && isset($_POST['message'])) 
{ 
$message=htmlspecialchars($_POST['message']); 
if($message){ 
    mysql_query("INSERT INTO chat (user,message) VALUES ('$_SESSION['userid']','$message')") or die(mysql_error()); 
} 
} 
?> 

你需要讓我知道,我可以更新任何相關信息。

文件結構:

  • 包括
    • messages.php
    • notloggedin.php
    • sendchat.php
  • changelog.txt
  • connect.php
  • error.php
  • chat.php
  • 的index.php
  • 的login.php
  • logout.php
  • register.php

未捕獲的SyntaxError:意外的令牌) - 線路33

+1

請問是什麼問題?你得到什麼錯誤? – 2014-09-29 19:41:27

+0

什麼都沒有發生,沒有錯誤。只是重新加載頁面,沒有新的數據庫條目,沒有錯誤,什麼都沒有。 – xzero121 2014-09-29 19:43:24

+0

javascript控制檯是否提供任何見解? – 2014-09-29 19:44:01

回答

0

如果您可以從您正在使用的瀏覽器共享Javascript控制檯,可以顯示有關問題的一些見解。如果您是新手,請使用以下命令來顯示控制檯:

在Chrome和Mac上: cmd + option(alt)+ I 將打開控制檯。選擇最後一個選項,在該窗口上的控制檯。

此外,在您錯過的代碼的開始處,不確定是否在複製代碼時錯過了。

<?php 

在服務器端,您可以檢查與php相關的錯誤。

error.log 
+0

在嘗試發送消息控制檯時使用opera(基於chrome)保持清晰。 – xzero121 2014-09-29 20:01:46

+0

發佈服務器端錯誤。找到「Error.log」文件在你有相同的文件夾的PHP。嘗試Chorme和Firefox。 – 2014-09-29 20:06:28

+0

我無權訪問服務器的該部分。在鉻上也沒有錯誤。 – xzero121 2014-09-29 20:08:55

0
function scTop(){ 
     $("#messages").animate({scrollTop:$("#messages")[0].scrollHeight}); 
    } 
    function load_new_stuff(){ 
     localStorage['lpid']=$(".messagerow:last").attr("title"); 
     $("#messages").load("include/messages.php",function(){ 
      if(localStorage['lpid']!=$(".messagerow:last").attr("title")){ 
       scTop(); 
      } 
     }); 
    } 
    $(document).ready(function(){ 
     scTop(); 
    }); 
    $('#chatbox').keydown(function() { 
     if (event.keyCode == 13) { 
      val=$(this).find("#chatbox").val(); 
      if (val !== ""){ 
       $.post("include/sendchat.php",{message:val},function(){ 
        load_new_stuff(); 
       });}}}); 


    $(document).ready(function() 
    { 
     setInterval(load_new_stuff(), 1000); 
    });