Php 如何通过包含URL来访问类?
我有点卡住了 在继续之前,我想分享一些脚本。我有一个PHP类文件,如下所示: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
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>