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

在PHP页面中遇到一个错误,在我做一些微小的更改之前,该页面工作正常

毛镜
2023-03-14

在PHP页面中遇到一个错误,在我做一些微小的更改之前,该页面工作正常。

错误原因是:$type=(int)$\u POST['type'];

错误是:语法错误,意外”(T_ENCAPSED_AND_WHITESPACE),期望标识符(T_STRING)或变量(T_VARIABLE)或数字(T_NUM_STRING)

完整代码如下。

<?php
require_once '../library/config.php';
require_once '../library/functions.php';


$action = isset($_GET['action']) ? $_GET['action'] : '';

switch ($action) {

    case 'search' :
        search();
        break;

    default :
        // if action is not defined or unknown
        // move to main user page
        header('Location: index.php');
}


/*
search() function used to search hadrware, software with user given criteria.

*/`

function search()
{
    $type = $_POST['type'];
    $name = $_POST['name'];


    $hsql = "SELECT a.hostname, a.username, a.cpumodel, a.servicetag, a.monitormodel, a.phonext
             FROM assets a WHERE a.username LIKE '%$name%' ";

    $ssql = "SELECT a.hostname, a.username, a.cpumodel, a.servicetag, a.monitormodel, a.phonext
             FROM assets a WHERE a.username LIKE '%$name%' ";        

    $data = array();
    if($type == 1){
        $result = dbQuery($hsql);
        if(dbNumRows($result) == 0) {
            header('Location: ../view.php?v=search&error=' . urlencode('No Hardware Found. Please try Again.'));    
        }else {
            while($row = dbFetchAssoc($result)){
                extract($row);
                $data[] = array('hname'       => $hname, 'uname'         => $uname, 'cmodel'         => $cmodel, 'stag'          => $stag, 'mmodel'          => $mmodel, 'pext'          => $pext);
            }
            $_SESSION [result_data] = $data;
            header('Location: ../search');              
        }//else
    }
    else {

        $result = dbQuery($ssql);
        if(dbNumRows($result) == 0) {
            header('Location: ../view.php?v=search&error=' . urlencode('No Software Found. Please try Again.'));    
        }else {
            while($row = dbFetchAssoc($result)){
                extract($row);
                $data[] = array('hname'       => $hname,
                              'uname'         => $uname,
                              'cmodel'         => $cmodel,
                              'stag'          => $stag,
                              'mmodel'          => $mmodel
                              'pext'          => $pext);
            }
            $_SESSION[result_data] = $data;
            header('Location: ../search');              
        }

    }endif;

}

?>

共有3个答案

暴才俊
2023-03-14

您的评论尚未关闭。

在最后一个卷曲括号之前加上结尾*/

如果您不想对所有代码进行注释,请删除在函数search()之后打开的/*

谷梁卓
2023-03-14

函数上方的注释在结束注释标记后有一个反勾号。这就是你问题的原因。

如果您删除此反勾,那么您将解决问题。它仍然无法工作,因为您给出的代码中还有一个编译错误,这是由于第64行末尾缺少逗号造成的。如果你也修复了这个问题,那么程序就会运行,你会发现还有额外的逻辑错误和安全问题(但是我会让你自己去发现)。

金何平
2023-03-14

问题出在你的评论之后。你打开了一个backtick(很可能是无意中),但没有关闭它。只要把它取下来,它就会再次工作。你甚至可以在突出显示中看到它。

/*
search() function used to search hadrware, software with user given criteria.

*/`

/* ^ there it is */

我还想指出,您的代码可能存在sql注入漏洞。例如:

    $type = $_POST['type'];
$name = $_POST['name'];


$hsql = "SELECT a.hostname, a.username, a.cpumodel, a.servicetag, a.monitormodel, a.phonext
         FROM assets a WHERE a.username LIKE '%$name%' ";

$ssql = "SELECT a.hostname, a.username, a.cpumodel, a.servicetag, a.monitormodel, a.phonext
         FROM assets a WHERE a.username LIKE '%$name%' "; 
 类似资料:
  • 早些时候,我部署了我的页面的一个新版本,安装了一个服务工作者,该服务工作者应该只在安装时缓存一个脱机页面,如果服务工作者由于脱机而无法获取文档,则应重定向到此缓存的脱机页面。 现在有些东西没有按预期工作,有时服务人员会显示脱机页面,尽管他不应该显示。因此我感到恐慌,因为我找不到问题,部署了一个新版本,该版本应该注销所有服务人员。我希望每件事都能对每个人都起作用。 但是,当我想到这些问题时,我感到震

  • 本文向大家介绍如何判断用户正在操作页面?当页面一个小时没有操作时跳转到指定页面如何做?相关面试题,主要包含被问及如何判断用户正在操作页面?当页面一个小时没有操作时跳转到指定页面如何做?时的应答技巧和注意事项,需要的朋友参考一下 监听mousemove事件。当一段时间没有触发mousemove时,即认定用户没有操作页面

  • 我正在看YouTube的Flutter教程。我来到了Firebase部分。然而,我在这部分得到了一个错误。我得到一个错误,即使我键入相同的。我想我得到了这样一个错误,因为有Flutter语言的更新。对不起,我的英语不好。提前谢谢你帮助我。 错误图像: 主要的飞奔 signup_screen.dart

  • 问题内容: 我正在尝试将var从jQuery传递到PHP。 经过研究,我发现最常见的建议是使用Ajax 进行此操作,并使用PHP存储post var。 我的PHP技能相当不错,但是我的JavaScript技能却不能说同样的话。 这是我正在做的,但似乎根本不起作用: 问题答案:

  • 我是一个新手,在做这项任务时遇到了障碍。遇到了一个PHP错误 严重性:通知 消息:未定义的属性:CI_加载程序::$db 文件名:views/templateadmin。php 电话号码:311 回溯: 文件:C:\xampp\htdocs\website\application\views\templateadmin。php行:311函数:\u错误\u处理程序 文件:C:\xampp\htdoc

  • 问题内容: 好的,我设置了一个会话…但是现在如何在其他页面上使用它呢? 我试着做 问题答案: 如果您的PHP设置清晰(会话写正常)并且cookie通常发送到浏览器(并保留了),则您应该可以执行以下操作 在第一页上: 在第二页上: 请注意,在发送任何输出之前,必须先调用session_start(),因此,如果必须在会话_start中使用@,它可能会隐藏警告。 由于这些是警告,如果给定的示例不起作用