在创建jquery + PHP + MySQL聊天室时遇到问题

时间:2014-09-29 19:36:13

标签: javascript php jquery mysql

我已经在jquery和JavaScript中使用PHP和mysql的后端阅读了有关Chartrooms的几个教程。我知道这部分的php部分会起作用(或者如果它不会,那么我可以解决它比likley更多)然而问题在于我对jquery的极其有限的知识。所以希望这里的某个人可以对我的(可能非常明显的)错误在哪里发表一些见解我会非常感激。

此外:我不是在寻找一个人向我展示需要做什么,只是向正确的方向发展,因为我找不到任何实际有用的东西。

主页:

<?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

Uncaught SyntaxError:意外的令牌) - 第33行

2 个答案:

答案 0 :(得分:0)

如果您可以从正在使用的浏览器共享Javascript控制台,则可以显示问题所在的一些见解。如果您是开发人员的新手,请使用以下内容显示控制台:

在Chrome和Mac上:     cmd +选项(alt)+我 将打开控制台。选择最后一个选项,该窗口上的控制台。

此外,在您错过的代码的开头,不确定您在复制代码时是否错过了。

<?php

在服务器端,您可以检查与php相关的错误。

error.log

答案 1 :(得分: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);
    });