【问题标题】:Session_start User Profile Detail [closed]Session_start 用户配置文件详细信息 [关闭]
【发布时间】:2013-12-15 11:20:10
【问题描述】:

我正在学习 php。我创建了一个注册和登录系统。它工作正常。但我很好奇:如何在用户个人资料中显示用户详细信息。例如姓名、姓氏、电子邮件等。我的登录系统正常运行,但仅显示电子邮件。

这是我的 profile.php 代码。

<?php 

  session_start();
if (!isset($_SESSION['email'])) {

    header('location: index2.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>Untitled Document</title>
<link href="css/profile.css" rel="stylesheet" type="text/css" />


</head>

<body>
<div id="header">
<div class="header_in">
  <div class="logo"><span>EcoWebTr</span></div>
  <div class="cik"><a href="cikis.php">Çıkış</a></div>
  <!--Login informtion--></div>
</div>
<div class="container">
<div class="wrapper">
User Email:
<font color="#000066"><?php echo $_SESSION['email']; ?></font>

</div>
</div>

</body>
</html>

这也是 login.php

<?php
include("includes/connect.php");

if(isset($_POST['login'])) {

  $email = $_POST['email'];
  $password  = md5($_POST['password']);

  $check_user = "SELECT * FROM users WHERE email='$email' AND password='$password'";

  $run = mysql_query($check_user);

  if(mysql_num_rows($run)>0) {
    $_SESSION['email']=$email;


    echo"<script>window.open('profile.php','_self')</script>";

  } else {

    echo"<script>alert('wrong email or password')</script>";

  }

}
?>

【问题讨论】:

  • 根据您提供的数据,不可能给您一个完整的答案。但通常人们会根据作为输入提供的键值从数据库中选择数据。
  • 根据您编辑的问题/代码session_start(); 也需要在login.php 内,并阅读我在此评论上方给您的链接。您需要先为其分配一个变量。 “如何”在该链接中。
  • 请不要再使用mysql_*函数。它们已被弃用并且容易被注射。请参阅stackoverflow.com/questions/12859942/… 了解更多信息

标签: php mysql database


【解决方案1】:

您可能可以采取几种不同的方法。

一种可能性,因为您说您的登录工作正常,并且我看到您在会话变量中看到 email(可能是在登录时),是也为其他字段设置会话变量你想显示。

所以将名字、姓氏、电子邮件等都设置为会话变量。然后,在您的 HTML 中,您将能够根据需要引用这些内容。例如&lt;?php echo $_SESSION['first name']; ?&gt;

更新

鉴于您提供的其他信息,这里有一个简短的示例...

if(mysql_num_rows($run)>0) {
  $_SESSION['email']=$email;

  $row = mysql_fetch_assoc($run);
  $_SESSION['firstname'] = $row['firstname'];
  $_SESSION['lastname'] = $row['lastname'];
  // etc

本示例假设您在数据库中将名字/姓氏存储为“firstname”和“lastname”。只需根据需要调整名称以匹配您的数据库。这创建所有会话变量...然后您可以根据需要访问它们,就像您访问您的电子邮件会话变量一样。

【讨论】:

  • 你能帮我写一个例子吗?之后我必须写什么会话?请举个小例子?
  • 我认为你在这里没有给我们足够的信息来提供一个清晰的例子。您提到您已经创建了一个登录表单。仅基于该信息,您可能应该了解如何处理此问题。但是,如果您编辑您的问题以包含您的登录处理方式,我们可以看到您如何获取您的用户信息,并在您的情况下提供具体细节。
  • 好的,亲爱的,我现在编辑我的问题。能不能再查一下。 2 分钟后。
  • @user3072578 希望这个简短的例子有帮助?
  • 我在这段代码中写下了我的详细信息,但亲爱的,什么也没发生。
【解决方案2】:

您需要通过数据库查询它。我建议您在登录时全部查询并将其保存为会话变量,然后在任何地方简单地回显。

就像查理所说,你可以echo $_SESSION['full_name']。但是,我通常会创建一个名为 User 的关联数组,然后将信息放入其中。例如 echo $_SESSION['USER']['full_name'] 听起来是一种更合理的方法。

示例

登录成功:

1) 查询名字、姓氏、性别、生日等基本信息。

2) 将它们保存在 $first_name、$last_name 等变量中。

3) 像这样将这些变量分配给会话:

$first_name = $_SESSION['User']['first_name'];
$birthday = $_SESSION['User']['birthday'];

注销时,只需使用session_destroy() 销毁会话。

【讨论】:

  • 你能告诉我。我将如何写入我的 php 代码。你能举个例子吗?
  • 给你举个例子。但是不要指望一直被勺子喂食:)
  • 我正在讲述尝试该工作的示例。我不想要太多帮助,我只想展示示例。
  • Facebook oAuth 在这个系统上工作。
【解决方案3】:

类似:

<div style="float:left;">User Name:</div><div style="margin-left:100px;"><?php=$_SESSION['username']?></div>
<div style="float:left;">User Surname:</div><div style="margin-left:100px;"><?php=$_SESSION['surname']?></div>

其他会话变量名称是什么?

【讨论】:

  • 其他会话变量是姓名、姓氏、生日等
  • 什么都不显示?
  • 我没有给你投反对票,但这是无效的&lt;?php=$_SESSION['username']?&gt;,这很可能是你被投反对票的原因。两个&lt;?php=$_SESSION 实例。
  • @fred-ii- 我不反对 aldo 为什么你使用 =
  • 我没有展示“如何”使用它,我只是指出了错误并且语法无效/不正确。 @user3072578
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-05-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多