当前位置: 首页 > 知识库问答 >
问题:

解析错误:语法错误、意外T_VARIABLE、预期T_FUNCTION

柯河
2023-03-14

有人能告诉我我做错了什么吗?

我只想在特定房间上在线显示用户。

下面的代码是调用my online的函数。这是我的聊天记录。当我加载页面时,这个函数也会加载。

function whos_online() {
  if ( window.XMLHttpRequest ) {
    xmlhttp = new XMLHttpRequest();
  } else { 
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  }
  xmlhttp.open("GET", "online.php?room=<?php $_SESSION['room']?>", false);
  xmlhttp.send();
  document.getElementById("whos_online").innerHTML = xmlhttp.responseText; 
}

在线 的PHP

这是我网上的内容。php

<link rel="stylesheet" type="text/css" href="style.css" />
<?php

    session_start();
    include 'db.inc.php';

    class WhosOnline{
        $rn = $_GET['room'];
        protected $get_status_query = "SELECT * FROM `online_users` WHERE `room` = '{$rn}'";
        public function DisplayUsers(){
            $get_current_status = mysql_query( $this->get_status_query );
            if( mysql_num_rows( $get_current_status ) != 0 ) {
                while( $row_status = mysql_fetch_array( $get_current_status ) ) {
                    if( $_SESSION['username'] == true ) {
                        echo "<div class='online_margin'>
                                <b>".base64_decode($row_status['username'])."</b>
                              </div>
                              <hr style='border: 0; border-top: solid 1px #D8D8D8;margin: 5px 10px 5px 10px;' />";
                    }
                }
            }
        }
    }

    $Online = new WhosOnline;
    $Online->DisplayUsers();
?>

有什么帮助吗?

共有3个答案

阎经武
2023-03-14

好的,即使这给出了一个错误:

class WhosOnline{
    public $rn = $_GET['room'];
}

这也会产生一个错误:

$v = "Hi there";
class WhosOnline{
    public $rn = $v;
}

错误是因为您试图根据类定义中的另一个变量设置变量。您可以在构造函数中执行此操作。或者您可以基于CONSTANTS设置类成员(就像您对查询字符串所做的那样)。但是为什么不这样重写你的WhosOnline方法:

public function DisplayUsers(){
    $get_current_status = mysql_query(
        "SELECT * FROM `online_users` WHERE `room` = '" 
            . mysql_real_escape_string($_GET['room']) . "'");
    if(mysql_num_rows($get_current_status)!=0){
        while($row_status = mysql_fetch_array($get_current_status)){
            if($_SESSION['username']==true){
                echo "<div class='online_margin'>   <b>".base64_decode($row_status['username'])."</b></div><hr style='border: 0; border-top:  solid 1px #D8D8D8;margin: 5px 10px 5px 10px;' />";
            }
        }
    }
}

这也将删除任何潜在的错误,你可能与$this-

彭宏深
2023-03-14

你不能直接在类中初始化任何变量,试试这个

public $rn;
protected $get_status_query;

public __construct(){
      $this->rn = $_GET['room'];
      $this->get_status_query = "SELECT * FROM `online_users` WHERE `room` = '{$this->rn}'";
}
归鹤龄
2023-03-14
$rn = $_GET['room'];
protected $get_status_query = "SELECT * FROM `online_users` WHERE `room` =     '{$rn}'";

这是一个坏习惯,你现在就需要改掉。

protected function get_status_query($rn) {
  return "SELECT * FROM `online_users` WHERE `room` =     '". sanitize($rn) . "'";
};

sanitize()的实现留给了读者。

 类似资料:
  • 第22行是: 我不知道为什么我会得到这个,我已经检查了我的语法,所有似乎是正确的。它基本上不喜欢执行查询后的任何内容 编辑: 我明白这是容易SQL注入,但我这样做只是为了测试目的。

  • 当我试图将一个博客条目添加到我的数据库中时,我总是得到一个错误。我有一个简单的语法荧光笔,但它不显示什么地方不对劲。 错误:< code>PHP解析错误:语法错误,意外的T_OBJECT_OPERATOR,在第75行和第71行应为“)” 我的脚本:

  • 我在今年八月开发了一个laravel应用程序,当时运行良好。我现在试图运行该应用程序,它返回以下错误: 分析错误:语法错误,意外的T_类,应为T_字符串或T_变量,或D:\bkonme\artisan第31行中的“{”或“$” 第31行是这样的: 我的版本是,我在平台上使用。我有一些想法的发生,因为一些版本之间的冲突和,但我不知道如何解决这个问题,任何帮助?

  • 我正在使用Flash和PHP创建一个JPG。我让Flash和PHP在本地主机服务器上按预期工作。当我上传到服务器时,出现以下错误: 分析错误:语法错误,在/home/carlosrg/public\u html/mysubdomain/image中出现意外的“:”。php在线6 以及守则: 提前感谢您的时间。

  • 这是我正在开发的wordpress插件的代码。 我是插件开发新手,不知道为什么会出现这样的错误:

  • 问题内容: 我有这个行代码 在我的本地(WAMP)php 5.4.3上运行良好,但是当我将其托管在服务器cpanel上时,它将给出此错误 我服务器上的php版本是5.2.17 我没有发现任何问题,请帮忙 问题答案: 您需要运行PHP 5.4+才能使用速记数组