Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何通过包含URL来访问类?_Php - Fatal编程技术网

Php 如何通过包含URL来访问类?

Php 如何通过包含URL来访问类?,php,Php,我有点卡住了 在继续之前,我想分享一些脚本。我有一个PHP类文件,如下所示: <?php class db { private $dbn; private $port; private $uname; private $pwd; private $dbname; function __construct(){ /* $this -> dbn ='localhost'; $this -> port ='3306

我有点卡住了

在继续之前,我想分享一些脚本。我有一个PHP类文件,如下所示:

<?php

class db

{

private $dbn;    
private $port;    
private $uname;    
private $pwd;    
private $dbname;



function __construct(){

   /*  $this -> dbn ='localhost';    
    $this -> port ='3306';    
    $this -> uname = 'root';    
    $this -> pwd = '';    
    $this-> dbname = 'allindiacakes';*/



 /*  $this -> dbn ='localhost';    
    $this -> port ='3306';    
    $this -> uname = 'rombagif_floret';    
    $this -> pwd = 'Ashoke3';    
    $this-> dbname = 'rombagif_floret';*/        

     $this -> dbn ='localhost';    
    $this -> port ='3306';    
    $this -> uname = 'root';    
    $this -> pwd = '';    
    $this-> dbname = 'rombagif_floret';

}



public function getdbn(){

    return $this->dbn;    
}   

public function getPort(){

    return $this->port;    
}   

public function getUname(){

    return $this->uname;    
}



public function getPwd(){

    return $this->pwd;
}   

public function getDbName(){

    return $this->dbname;    
}      

public function getConnection(){

    $con ="'" .  $this->dbn . "','" . $this->uname . "','" . $this->pwd ."'";    
    echo $con;    
    return $con;    
}    
}    
?>
但是当我打电话时
http://localhost/crack/
,我发现以下错误

致命错误:在第12行的
C:\xampp\htdocs\crack\index.php
中找不到类“db”


您的include现在通过服务器运行;摆脱本地主机,改用文件系统路径。

来自php文档:

如果在PHP中启用了“URL包含包装器”,则可以指定该文件 要使用URL(通过HTTP或其他支持的包装器)包含,请参阅 支持的协议和包装器(用于协议列表),而不是 本地路径名。如果目标服务器将目标文件解释为PHP 代码中,可以使用URL请求将变量传递到包含的文件 与HTTP GET一起使用的字符串。严格来说,这并不相同 包括该文件并使其继承父文件的 可变范围;脚本实际上正在远程服务器上运行 然后,结果将被包含到本地脚本中

注意:PHP4.3.0之前的Windows版本的PHP不支持访问 即使启用了allow\u url\u fopen,也可以通过此功能访问远程文件

特别是说“脚本实际上正在远程服务器上运行,然后结果将包含在本地脚本中”的部分。您的变量和类对象定义不会被回显(很好!),因此它们不会包含在您自己的脚本中

正如其他人所说的,不要包含URL中的文件,因为URL会被解析然后被包含。您需要基于本地路径或相对路径进行包含,以便包含php代码本身

如果要包含来自不同域的文件,就像它位于同一域路径中一样。您可以创建指向系统上其他目录的符号链接()。这将允许您在本地包含该目录中的文件


有关如何在远程URL上使用include的示例;你可以看看这个问题(),TS想要包含一个远程(已经解析的)头文件。

应该是目录路径,而不是URI。当我尝试这种shenanigan
include'http://localhost/rambagifts/logMeAdmin/functions/include/dbn.php';。我认为您必须阅读从另一个远程url获取的phpits中包含的手册…………嗯。。。你是说你的应用程序不在同一台服务器上吗?不要使用远程文件包含,因为它容易受到外部代码注入的攻击。使用绝对路径,如
C:/xampp/htdocs/rambagifts/logMeAdmin/functions/include/dbn.php
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title></title>
    </head>
    <body>

        <?php 

          include 'http://localhost/rambagifts/logMeAdmin/functions/include/dbn.php'; 
          $d = new db();
          $dbname = $d->getdbn();
          echo $dbname;

        ?>

    </body>
</html>