【发布时间】:2014-11-26 01:30:23
【问题描述】:
我知道在 SO 中有很多关于此的问题。但是,我拥有的代码与那里有点不同。
我有的是登录页面,我必须先登录才能进入索引页面。
首先,我想说的是,我从某人那里得到的这段代码几天前还没有工作。但是当我今天再次检查时,令人难以置信的是它现在正在工作。
所以,今天我这里有两个问题,如下:
- 我想在索引页面中显示用户信息。实际上我只想显示用户名。但是,由于我在数据库表中没有用户名行,如果它只能显示用户电子邮件,我会接受它。
- 我希望这里有一些专家来审查我的代码。正如我上面提到的,几天前的代码不起作用。而今天它可以在没有任何我改变的情况下工作。
这里的重要问题是第一个问题,即显示用户信息。
这是我的代码:
1.索引.php
<?php
include('UserSessionAdmin.php');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>DASHBOARD</title>
<link rel="stylesheet" type="text/css" href="css.css"/>
</head>
<body>
<?php echo "$myemail";?>
2。 UserSessionAdmin.php
<?php
session_start();
if ( $_SESSION['login_id'] == 0 || $_SESSION['login_id'] == '' ) {
header('location: login.html');
exit();
}
require_once('configPDO.php');
?>
3. login.html
<div id="login-form">
<form method="post" action="CheckLogin.php">
<span class="identity">E-mail</span>
<input type="text" id="myemail" name="myemail" class="text" />
<span class="identity">Password</span>
<input type="text" id="mypassword" name="mypassword" class="text" />
<p id="button">
<input type="submit"/></p>
</form>
</div>
4. CheckLogin.php
<?php
// Start Session because we will save some values to session varaible.
session_start();
include("configPDO.php");
$myemail=$_POST['myemail'];
$mypassword=$_POST['mypassword'];
$STM = $dbh->prepare("SELECT * FROM user WHERE myemail = :myemail AND mypassword = :mypassword");
$STM->bindParam(':myemail', $myemail);
$STM->bindParam(':mypassword', $mypassword);
$STM->execute();
$count = $STM->rowCount();
$row = $STM -> fetch();
if($count==1)
{
$_SESSION['login_id']=$row['id'];
if($_SESSION['login_id'] == 1) {
header( "location:index.php");
}
else {
header( "location:login3.html");
}
}
else
{
header("location:login4.html");
}
$dbh = null;
?>
感谢您的所有帮助。干杯和问候,
【问题讨论】:
-
您的 index.php 使用了一个甚至没有定义的变量。您必须在会话中设置用户信息才能在 index.php 中显示它们。你在最基本的问题上挣扎。
-
@eeK 这就是我想知道的。 :)
-
可以像设置用户id一样设置email($_SESSION['email']=$row['email'];),其中$row['email']代表对于要使用的表的列名。然后在您的 index.php 中,您可以只输出您的 $_SESSION['email']。
-
我可以在body标签中输出吗?例如。
<span> Your email is $_SESSION['email']</span> -
@eeK 但在 SO 中有很多人愿意为我编写代码。拜托,如果您不想帮忙,那么无论如何我都不需要您的帮助,请远离我的问题。 :)