将我的网站从我的计算机传输到 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>';
和我的一些functions.php文件,包括第29行:
//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=?");
什么可能导致连接失败和致命错误?