我一直在尝试调试我的PHP脚本,并将问题缩小到一行
include "../classes.php";
在我文件的顶部team_manager.php
,您可以在下面看到它。
themes
my_theme
js
management
team_manager.php
project_manager.php
classes.php
footer.php
functions.php
我的路径不正确吗?还是内容可能有问题classes.php
?如果包含的文件可能有问题,则下面是文件,让我知道是否有什么立即被发现是错误的。
<?php
final class MySqlInfo
{
const DBNAME = 'somedb';
const USER = 'someuser';
const PSSWD = 'somepassword';
const TEAMTABLENAME = 'sometablename';
public function getUser ( )
{
return self::USER;
}
public function getPassword ( )
{
return self::PSSWD;
}
}
final class MethodResult
{
public $succeeded;
public $message;
public MethodResult ( $succeededInit = NULL, $messageInit = NULL )
{
this->$succeeded = $succeededInit;
this->$message = $messageInit;
}
}
final class MySite
{
const ROOTURL = 'http://asite.com/subsite';
function getRootUrl()
{
return self::ROOTURL;
}
}
final class TeamManager
{
private $dbcon;
public function TeamManager ( )
{
$dbcon = mysqli_connect('localhost', MySqlInfo.getUser(), MySqlInfo::getPassword());
$dbcon->select_db(MySqlInfo::DBNAME);
// need to add error handling here
}
final public class TeamMember
{
public $name; // team member name
public $title; // team member title
public $bio; // team member bio
public $sord; // team member sort order
public $picfn; // team member profile picture file name
}
public function addMember ( TeamMember $M )
{
if ($this->$dbcon->connect_error)
{
return new MethodResult(false, 'Not connected to database');
}
$q = "INSERT INTO " . MySqlInfo::TEAMTABLENAME . " (" . implode( ',' array($M->name, $M->title, $M->bio, $M->sord, $M->picfn) ) . ") VALUES ('" . implode('\',\'', array($_POST['fullname'], $_POST['title'], $_POST['bio'], $_POST['sord'], $targetFileName)) . "')";
// ^ query for inserting member M to the database
if (!mysqli_query(this->$dbcon, $q))
{
return new MethodResult(false, 'Query to insert new team member failed');
}
return new MethodResult(true, 'Successfully added new member' . $M->name);
}
}
?>
include()
万一找不到要包含的文件,可能会导致错误。就这么简单。因此,在包含文件之前,必须确保该文件存在。另外,切勿使用像这样的相对路径../script.php
,因为它们会带来许多问题。一个主要问题是,由于安全原因,某些托管服务提供商不允许相对路径。
因此,要确保可以包含该文件,只需检查其是否存在:
<?php
// dirname(__FILE__) returns an absolute path of the current script
// which is being executed
$file = dirname(__FILE__) . '/script.php';
if (is_file($file)) {
include($file);
} else {
echo 'File does not exist';
}
另外,我看到您在编写代码时还是过时的。您可能想看看PSR-FIG标准。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句