![](/img/trans.png)
[英]Why am I getting a blank object, even if it exists in the database pdo?
[英]I am getting a blank screen on my pdo login
這是我做的一些代碼。 如果我的用戶名/密碼都正確,我試圖登錄到某個頁面-但是即使用戶名/密碼正確或錯誤,我仍會得到空白頁面! 我有3個主要文件。 Home.php,enter.php和connection.php。
這是Home.php的代碼:
<?php
session_start();
?>
<html>
<h1 align="center">Welcome To Home Page</h1>
<form method="POST">
<table border="0" align="center">
<tr>
<td>
<?php
echo $_SESSION["firstname"];
if($_SESSION["firstname"]==null)
{
?>
<a href="enter.php">Login</a>
<a href="registration.php">Registration</a>
<a href="enter.php">Logout</a>
<?php
}
else
{
?>
<a href="enter.php">Logout</a>
<?php
}
?>
</td>
</tr>
<tr>
<td>
<img src="pix.jpg" width="500" length="500"/>
</td>
</table>
</form>
</html>
這是Enter.php的代碼:
<html>
<form action="connection.php" method="POST">
<ul>
<li>
Email:
<input type="text" maxlength="30" name="emails" />
</li>
<li>
Password :
<input type="password" maxlength="30" name="passwords" />
</li>
<input type="submit" maxlength="30" name="logins" value="Login" />
</ul>
</form>
</html>
這是Connection.php的代碼:
<?php
function getConnection(){
$db = new PDO("mysql:host=localhost;dbname=demodatabase", "root","********");
$db ->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPION);
return $db;
$db = getConnection();
$stmt = $db->prepare("
SELECT * FROM subscriber WHERE Email_id = :emails AND Password = :passwords
");
$stmt->bindParam(":emails" , $users );
$stmt->bindParam(":passwords", $passwords);
$stmt->execute();
$total = $db->rowCount();
$count = $stmt->rowCount();
if ($count > 0) {
session_start();
$_SESSION['firstname'] = 'yes';
header('location: home.php');
exit;
}
}
?>
那么,為什么我總是得到空白頁?
查看您的代碼:
<?php
function getConnection(){
// …
}
?>
您將所有功能都集成到一個函數中,而永遠不會調用它。 您需要在此處使用大括號:
function getConnection(){
$db = new PDO("mysql:host=localhost;dbname=demodatabase", "root","********");
$db ->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPION);
return $db;
} // here
$db = getConnection();
適當地縮進代碼會有所幫助。
附帶說明一下,很明顯,您以純文本形式存儲密碼。 絕對不要那樣做! 使用良好的密碼哈希算法來哈希密碼!
同樣,在將某些內容發送到瀏覽器之后使用session_start
或header
是沒有用的。 注意<?php
之前的多余空格。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.