以下页面仅在用户登录时打开
members.php
<?php
require('includes/config.php');
//if not logged in redirect to login page
if (!$user->is_logged_in()) {
header('Location: login.php');
}
//define page title
$title = 'Members Page';
//include header template
require('layout/header.php');
?>
<div class="container">
<div class="row">
<div class="col-xs-12 col-sm-8 col-md-6 col-sm-offset-2 col-md-offset-3">
<h2>Member only page - Welcome <?php echo $_SESSION['username']; ?></h2>
<p><a href='logout.php'>Logout</a></p>
<hr>
</div>
</div>
<?php
// DATABASE INFORMATION
$server = '';
$database = '';
$dbuser = '';
$dbpassword = '';
//CONNECT TO DATABASE
$connect = mysql_connect("$server", "$dbuser", "$dbpassword")
OR die(mysql_error());
mysql_select_db("$database", $connect);
//ALWAYS ESCAPE STRINGS IF YOU HAVE RECEIVED THEM FROM USERS
$safe_username = mysql_real_escape_string($_SESSION['username']);
//FIND AND GET THE ROW
$getit = mysql_query("SELECT * FROM members WHERE username='$safe_username'", $connect);
$row = mysql_fetch_array($getit);
//YOUR NEEDED VALUES
$bio1 = $row['active'];
$bio = $row['email'];
?>
CREATE TABLE `members` (
`memberID` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(255) NOT NULL,
`password` varchar(60) NOT NULL,
`email` varchar(255) NOT NULL,
`active` varchar(255) NOT NULL,
`resetToken` varchar(255) DEFAULT NULL,
`resetComplete` varchar(3) DEFAULT 'No',
PRIMARY KEY (`memberID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
此处用户名存储在会话
中所以我使用php的第二部分来获取用户email
和active
但我得到以下错误
Internal Server Error
有人可以帮我解决错误吗?
在成功登录后,members.php应显示email
SQL
答案 0 :(得分:1)
这意味着表ID
中不存在members
列您确定拼写一切正确吗?您确定您正在使用的数据库也称为members
吗?对我来说,将数据库和表命名为相同,这似乎很奇怪。 我还注意到你的会话被调用:$_SESSION['username']
这让我觉得它包含一个字符串而且这个列叫做id,这让我觉得它是一个整数
<强>结论:强>
您与mysql的连接有问题。我们不知道是什么,因为我们不知道你的桌子是什么样的。采取的步骤:
id
是否存在members
members
<强> Offtopic:强> 没有冒犯,但 如果你不能自己解决这个错误,我建议你实际上学习更多的PHP
答案 1 :(得分:0)
停止使用mysql_并移至mysqli_或PDO
可能会将您的mysql_numrows更改为mysql_num_rows。
$ num = mysql_num_rows($ query)或die(mysql_error());
让我知道结果。
无法将其置于评论中。