Web サイトをコンピューターから 1and1 サーバーに転送した後、このエラーが発生しました。
直接関連しているかどうかはわかりませんが、次のエラーも表示されます。
致命的なエラー: 29 行目の /homepages/37/d153694643/htdocs/sites/mjbox/func/functions.php の非オブジェクトに対するメンバー関数 prepare() の呼び出し
1 と 1 のサーバーへの接続を別のファイルでテストしましたが、エラーはありません。
これが私のindex.phpのほとんどです
//Check if the user is logged in
loggedin();
//Check if the submit button has been clicked first
if ( isset( $_POST['submit'] ) ){
//Check if user exists on database
match_login($_POST['username'],$_POST['password']);
}
// Retrieve all active posts order by lastest first
$resultarray = retrieve_active_posts();
echo '<div id="content-wrap">';
foreach($resultarray AS $value){
$filename = substr($value['img_file_name'],9);
$cat_id = $value['cat_id'];
echo '<article class="post">';
echo '<div class="post_title">' . $value['post_title'] . '</div>';
echo '<div class="post_info">' .
'Category: ' . $cat_name = get_cat_name($cat_id) .'<br />'.
'Year: ' . $value['post_year'] .'<br />'.
$value['post_desc'] .'<br />'.
'</div>';
echo '<div class="link-to-post"><a href="#">Click to view</a></div>';
echo '<a href="#'.$value['post_id'].'" class="linktopost"><img class="post-thumb" src="img/thumb_/'.$filename.'" alt="MJbox Michael Jackson memorabilia thumbnail" data-postid="'.$value['post_id'].'"/></a>';
echo '<a href="#'.$value['post_id'].'" class="linktopost"><img class="cover-img" src="img/post-bg-1.png" alt="test" data-postid="'.$value['post_id'].'"/></a>';
echo '</article>';
}
echo '</div>';
そして、29行目を含む私のfunctions.phpファイルのいくつか:
//Check if user is logged in
function loggedin(){
//Check if the loggedin status is set to true, meaning that user is logged in.
if ( isset ( $_SESSION['loggedin'] ) && $_SESSION['loggedin'] == true ) {
return true;
}else{
return false;
}
}
//Check users login details
function match_login($username, $password){
//If the button has been clicked get the variables
//test the connection
try{
//connect to the database
$dbh = new PDO("mysql:host=correct;dbname=correct","correct", "correct");
//if there is an error catch it here
} catch( PDOException $e ) {
//display the error
echo $e->getMessage();
}
//select any username and password that match
$stmt = $dbh->prepare("SELECT * FROM mjbox_users WHERE username=? AND password=?");
$stmt->bindParam(1, $username);
$stmt->bindParam(2, $password);
//execute the select statement, put in if statement to provide error if false!?
if( $stmt->execute() ){
//count how many rows are found
$numrows = $stmt->rowCount();
//if there is a match continue
if( $numrows > 0 ){
$_SESSION['loggedin'] = true;
$_SESSION['username'] = $username;
header( 'Location: index.php' ) ;
echo 'yes';
}
}
$dbh = null;
}
//logout
function logout(){
$_SESSION = array();
session_destroy();
header( 'Location: index.php' ) ;
}
これは29行目です:
$stmt = $dbh->prepare("SELECT * FROM mjbox_users WHERE username=? AND password=?");
接続が失敗し、致命的なエラーが発生する原因は何ですか?