私は学校のプロジェクト用の非常に単純な CMS システムに取り組んでいますが、少し問題があります。
現在、私のウェブページは次のように設定されています。
- ユーザーがアクセスできる作成したすべての Web ページ - 上部と下部に、それぞれ include_once(header.php) と include_once(footer.php) があります。これらには、読み込まれるページの上部と下部が含まれます。
私のheader.phpには、他のさまざまなHTMLとともにこれがあります:
<?php
require_once('php/constants.php');
require_once("php/functions.php");
?>
constants.php の場合 - 考えられるすべての定義済み定数が含まれています。コードを検索して他の場所にある可能性のある多くのインスタンスを見つけるよりも、ここで 1 つの定数を変更したいからです。
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 接続が何らかの形でバグを発生させています。
もっと情報が必要な場合は、私に知らせてください。しかし、私はほとんどすべてをテーブルに載せたと思います。
ここにはあまり投稿しないので、どこかで何らかのエチケットを見逃していた場合は、事前にお詫び申し上げます。
ありがとう!:)