我正在为一个学校项目开发一个非常简单的CMS系统,而且我遇到了一些麻烦。
现在,我的网页设置如下:
我为用户创建的每个网页都可以访问 - 在顶部和底部,我分别有一个include_once(header.php)和include_once(footer.php)。这些包含应该是加载的任何页面的顶部和底部。
在我的header.php中,我有这个,以及其他杂项HTML:
require_once('php/constants.php');
require_once("php/functions.php");
?>
对于constants.php - 包含我能想到的每一个定义的常量,因为我宁愿在这里改变一个常量,而不是在我的代码中搜索,以找到我可以在别处找到的很多实例。
对于Functions.php - 包含我为在此CMS上使用而创建的每个函数。包含我使用PHPMailer的电子邮件功能,使用MeekroDB进行数据库交互的注册和登录。
这就是问题所在。
在我有帐户注册的页面上,有一些与此相关的内容
//get the username, password, first/last name, and send it to register function.
$firstName = $_POST['first_name'];
$lastName = $_POST['last_name'];
$password = $_POST['password'];
$email_address = $_POST['email_address'];
//register the user. where register() is in functions.php
if(register($email_address, $password, $firstName, $lastName))
{
echo "REGISTRATION SUCCESSFUL";
}
else
{
echo "REGISTRATION UNSUCCESSFUL";
}在我的functions.php文件中,我使用MeekroDB提及的使用的DB :: QUERY分配来声明我的数据库信息。
//MeekroDB - Used for database CRUDding
require_once("php/meekrodb.php");
DB::$user = 'root'; //yes i'll change this later
DB::$password = ''; //this too
DB::$dbName ="testDB";在实际的注册功能,我有这样的:
function register($email, $password, $firstName, $lastName)
{
//check to see if the user already exists
//poll the DB to see if the email is already in there.
$results = DB::QUERY("SELECT email FROM users WHERE email = %s", $email);
//if there is a row in the DB with this email...
if(DB::count() >= 1)
{
return false;
}
else
{
//lets prepare the user for insertion into the database.
$username = $firstName . '_' . $lastName;
//generate a salt for database insertion and password hashing
$salt = hash('sha512', uniqid(mt_rand(1, mt_getrandmax()), true));
$password = hash('sha512', $password . $salt);
//create the insert statement array for insertion.
$insertionArray =
array(
'username' => $username,
'password' => $password,
'email' => $email,
'salt' => $salt,
'isAdmin' => 0
);
//insert the new user into the database.
DB::INSERT('users', $insertionArray);
//Send a registration email to the new user.
//Send an email to the user stating they've registered.
$mailer = createMailer();
//set the contents of the email
$mailer->MsgHTML(generateEmail_Registration($username));
//set the destination address
$mailer->AddAddress($email, $firstName . ' ' . $lastName);
if($mailer->Send())
{
return true;
}
else
{
return false;
}
}
}对我而言,这应该起作用。
然而:
每当我尝试运行register()函数时,我最终都会得到大量涉及MeekroDB的错误,而且我不能100%确定如何解决它们(无论是INCLUDE问题还是meekroDB问题?)
这是我得到的错误。
Warning: mysqli::set_charset(): invalid object or resource mysqli in D:\xampp\htdocs\finalproject\php\meekrodb.php on line 186
Warning: MeekroDB::get(): Property access is not allowed yet in D:\xampp\htdocs\finalproject\php\meekrodb.php on line 188
Warning: mysqli::real_escape_string(): invalid object or resource mysqli in D:\xampp\htdocs\finalproject\php\meekrodb.php on line 496
Warning: mysqli::query(): invalid object or resource mysqli in D:\xampp\htdocs\finalproject\php\meekrodb.php on line 628
Warning: MeekroDB::queryHelper(): Property access is not allowed yet in D:\xampp\htdocs\finalproject\php\meekrodb.php on line 662
Warning: MeekroDB::queryHelper(): Property access is not allowed yet in D:\xampp\htdocs\finalproject\php\meekrodb.php on line 663
Warning: mysqli::real_escape_string(): invalid object or resource mysqli in D:\xampp\htdocs\finalproject\php\meekrodb.php on line 496
Warning: mysqli::real_escape_string(): invalid object or resource mysqli in D:\xampp\htdocs\finalproject\php\meekrodb.php on line 496
Warning: mysqli::real_escape_string(): invalid object or resource mysqli in D:\xampp\htdocs\finalproject\php\meekrodb.php on line 496
Warning: mysqli::real_escape_string(): invalid object or resource mysqli in D:\xampp\htdocs\finalproject\php\meekrodb.php on line 496
Warning: mysqli::query(): invalid object or resource mysqli in D:\xampp\htdocs\finalproject\php\meekrodb.php on line 628
Warning: MeekroDB::queryHelper(): Property access is not allowed yet in D:\xampp\htdocs\finalproject\php\meekrodb.php on line 662
Warning: MeekroDB::queryHelper(): Property access is not allowed yet in D:\xampp\htdocs\finalproject\php\meekrodb.php on line 663
REGISTRATION UNSUCCESSFUL //of course.我认为这与我包括我的各种PHP文件的方式有关,并且反过来以某种方式扰乱了我的MeekroDB连接。
如果你们需要更多的信息,请告诉我,但我想我已经把所有东西都弄到桌子上了。
我不经常在这里发帖,所以如果我错过了某种地方的礼节,我会提前道歉。
谢谢! :)