【问题标题】:php unexpected T_IS_NOT_EQUAL error [closed]php意外的T_IS_NOT_EQUAL错误[关闭]
【发布时间】:2011-06-03 08:54:43
【问题描述】:

我正在尝试制作一个接受密码文本并从数据库中删除相关数据的 php 脚本。加载脚本时出现此错误

语法错误,第 4 行 /home2/krisindi/public_html/deletead.php 中的意外 T_IS_NOT_EQUAL

    <?php
$password = $_POST["password"];

if ( $password ) != 0 )
        {
                $id = $data->select ("Classified", "AdID", array ("Password => ($password)));
                $data->delete ( "AdExtraField" , array ( "AdID" => intval ( $id["AdID"] ) ) ) ;
                $data->delete ( "Classified" , array ( "Password" => ( $password ) ) ) ;
                exec ( "chmod ../media/ 777" ) ;

                $image_file = "../media/cls_".$id["AdID"]."_520.jpg" ;
                if ( file_exists ( $image_file ) )
                        unlink ( $image_file ) ;

                for ( $i = 1 ; $i <= 5 ; $i++ )
                {
                        $image_file = "../media/cls_".$id["AdID"]."_".$i."_520.jpg" ;
                        if ( file_exists ( $image_file ) )
                                unlink ( $image_file ) ;
                }

                exec ( "chmod ../media/ 755" ) ;

                $_SESSION["str_system_message"] = "Classified deleted successfully." ;
        }

?>

<html>
<head>
<title>Personal INFO</title>
</head>
<body>
<form method="post" action="<?php echo $PHP_SELF;?>">
Password:<input type="text" size="12" maxlength="12" name="password">:<br />
<input type="submit" value="submit" name="submit"><br />
</form><br />

【问题讨论】:

    标签: php mysql


    【解决方案1】:

    第 4 行:

        <?php
    $password = $_POST["password"];
    
    if ( $password ) != 0 )
                   ^
                   Mismatched parenthesis
    

    更新

    鉴于该问题获得了反对票,我将改进我的答案以使其更具普遍性。当您的 PHP 代码甚至不是有效的 PHP 代码(通常是因为拼写错误)时,您会收到 语法错误。在这种情况下,代码甚至不会开始运行。应用于当前情况,第一个结论是脚本尝试完成什么并不重要,因为它永远不会运行,直到您修复语法错误。

    现在,错误是什么意思。我们来分析一下:

    语法错误,意外 T_IS_NOT_EQUAL 在 /home2/krisindi/public_html/deletead.php 在第 4 行

    一点一滴:

    语法错误,

    PHP 无效。脚本无法执行。

    意外的 T_IS_NOT_EQUAL

    如果找到了T_IS_NOT_EQUAL 令牌。用简单的英语来说,这意味着它在一个意想不到的地方发现了一个!= 运算符。

    在 /home2/krisindi/public_html/deletead.php 第 4 行

    这是检测到错误的确切文件和行号。这并不意味着错误存在,但它是一个很好的明星。如果您的编辑器无法显示行号,请切换到更好的编辑器。

    现在,让我们看看第 4 行:

    if ( $password ) != 0 )
                     ^
                     T_IS_NOT_EQUAL
    

    这是 T_IS_NOT_EQUAL 令牌。为什么会出乎意料?因为一旦你关闭了if() 构造,你必须要么用{ 打开一个块,要么输入一个有效的PHP 语句。没有有效的 PHP 语句可以以 != 开头,因此出现错误。

    【讨论】:

    • 这不是你的答案,你的答案是正确的,现在更新更棒了。这是关于问题本身,粘贴一段代码并说“这是我的代码,请修复它”不是属于这里的问题,特别是如果这是一个应该已经被抓住的明显问题在 IDE 级别。对我来说,这看起来像 OP 并没有费心自己寻找问题。
    • @Bobby 我实际上的目的是让 question 更普遍,而不是答案。无论如何,我同意你的看法。
    • 哦,我明白了,如果我弄错了,对不起。
    【解决方案2】:

    @krisdigitx:第 6 行

    $id = $data->select("Classified", "AdID", array("Password => ($password)));
    

    缺少"

    $id = $data->select("Classified", "AdID", array("Password" => ($password)));
    

    【讨论】:

      猜你喜欢
      • 2015-02-18
      • 2012-11-13
      • 2014-09-04
      • 1970-01-01
      • 1970-01-01
      • 2012-10-30
      • 1970-01-01
      • 2013-10-02
      相关资源
      最近更新 更多