0

用户登录后,我需要在网页的某处显示用户的全名(最好在同一个侧边栏中)。到处都看过,并且对从 javascript 和 html 开始的地方感到困惑。这是我到目前为止的登录表单的代码。

<div id="sidebar-wrapper">
     <div id="sidebar">
     <h3>Login</h3>
     <form name="form1" action="#">
     <ul id="sidenotes">
     <form name="form1" action="tryjsref_form_onsubmit.htm" onsubmit="return allnumeric(uage);greeting()" method="post">

First Name: <input type="text" name="fname" size="25"/><br/>
Last Name: <input type="text" name="lname" size="25" value= ""/><br/>
Age: <input type="text" name="text1" size="25" value=""/><br/>
     <p><input type="submit"name="submit"value="Submit"onclick="allnumeric(document.form1.text1); greeting()"/> 
 </p>
</form>
       </ul>
      </div> 
4

1 回答 1

0

我不知道如何使用 Java 作为预处理器,但基本的想法是这样的:

  1. 使用 Java 从 POST 中获取信息
  2. 将它持久存储在某个地方(在 PHP 中我会使用会话信息,Java 可能会有类似的东西)
  3. 每次用户访问另一个页面时,从持久存储中提取他们的名字并将其插入到侧边栏中。

如果您的意思是 Javascript 而不是 Java,那么情况会有所不同(我不确定Javascript 中是否存在持久存储),但我希望这会有所帮助。如果你是用 PHP 做的,我可以写一个快速的脚本来演示。如果你愿意,我仍然可以,它可能会有一些用处。

编辑:

我会把这个添加到评论中,但我没有空间。无论如何,我编写了 PHP 脚本(花了很多时间想知道为什么我得到一个 500 错误,结果我忘记了一个右括号)。这不是 javascript,但它有望帮助您编写代码,因为它是相同的基本思想。您可以在此处找到生产中的脚本。来源:

<?php
session_start(); // Start the session so we can use session variables

if(isset($_POST['first_name'])) // Assume that if the user filled out their first name they filled out everything
{
    // Assign values based off the POST values
    $_SESSION['first_name'] = $_POST['first_name'];
    $_SESSION['last_name'] = $_POST['last_name'];
    $_SESSION['age'] = $_POST['age'];
    $_SESSION['loggedin'] = true; // Used to tell if the user's logged in or not
}

$first_name = $_SESSION['first_name']; // Read the first name from session data
$last_name = $_SESSION['last_name']; // Read the last name from session data
$age = $_SESSION['age']; // Read the age from session data
$loggedin = $_SESSION['loggedin'];

if(!$loggedin) // If the user isn't logged in, display the login form
{
?>
<html>
<head>
<title>Test script</title>
</head>
<body>
<form action="test.php" method="post">
First Name: <input type="text" name="first_name" />
Last Name: <input type="text" name="last_name" />
Age: <input type="text" name="age" />
<input type="submit" />
</form>
<?php
}
else // Otherwise, say hello!
{
    echo "Hello, " . $first_name . " " . $last_name . "! You are " . $age . " years old!";
}
?>
</body>
</html>

它的作用是在 PHP 中启动一个会话并将值存储在那里。您似乎很熟悉 POST 是什么,所以我只说 $_POST 存储通过 POST 发送的值。$_SESSION 是会话数据的数组。这两个都是关联数组,所以它们存储基于键而不是位置(即$a['hello'] vs $a[2])。启动会话后,它会从 POST 读取值到会话数据,然后从会话数据读取到局部变量(这不是做事的最佳方式,但它适用于演示)。然后它会根据用户是否登录显示问候语或登录表单。

同样的想法也可以应用于带有 cookie 的 Javascript。我真的不熟悉 Javascript,所以我不知道代码会有多大帮助,所以我会将您链接到有关 cookie的本教程。这个想法是在页面加载时检查cookie,如果未设置则设置它,如果设置则从其中加载数据。做起来应该不会太难,特别是如果你可以使用我的代码来帮助你。

于 2012-05-15T01:05:48.580 回答