使用会话的PHP
我有一个login.html页面,用户可以在其中登录并查看他们的信息;显示姓名和邮政编码。此信息显示在login.php页面上使用会话的PHP,php,html,phpmyadmin,Php,Html,Phpmyadmin,我有一个login.html页面,用户可以在其中登录并查看他们的信息;显示姓名和邮政编码。此信息显示在login.php页面上 <?php session_start(); echo "systemResult=Success"; $row=mysql_fetch_array($result); echo $row['Name']." is located at".$row['Postcode']; $_SESSION['name'] =
<?php
session_start();
echo "systemResult=Success";
$row=mysql_fetch_array($result);
echo $row['Name']." is located at".$row['Postcode'];
$_SESSION['name'] = $row['User_id'];
你的信息
详细信息
姓名:
邮政编码:
首先,您的页面需要是.php
其次,在页面上呈现任何内容之前,必须使用session\u start()
启动会话。在页面开头的标题上方启动会话
通读
更新
将info.php
代码更改为如下所示:
<?php
session_start();
// This needs to go before ANYTHING else on the page.
?>
<!DOCTYPE html>
<html>
</head>
<body>
<!-- Home -->
<div data-role="page" id="page1">
<div data-theme="a" data-role="header">
<a data-role="button" data-theme="c" href="menu.html" data-icon="arrow-l" data-iconpos="left" class="ui-btn-left">
Main Menu
</a>
<h3>
Your info
</h3>
<p>
<?php // Put this where you want to echo the user_id on the page
echo $_SESSION['user_id']; ?>
</p>
</div>
<form name="form1" method="post" action="login.php">
<strong>Details</strong>
<br />
<br />
Name: <input name="name" type="text" id="name" />
<br />
Postcode: <input name="postcode" type="text" id="postcode" />
</form
</div>
</body>
</html>
你的信息
详细信息
姓名:
邮政编码:
我亲爱的朋友,我想你被会话变量弄糊涂了。请记住,你应该开始
session_ start( );
在php页面开始时,在任何事情开始之前。
您可以将值存储到会话变量,如下所示
$_SESSION['demo'] = 'Hello';
echo $_SESSION['demo'];
您可以检索会话变量,如下所示
$_SESSION['demo'] = 'Hello';
echo $_SESSION['demo'];
就这样。
在分配给会话变量之前,请仔细检查您是否从db获取值您的会话变量名为$\u session['name'],在login.php文件中将其更改为$\u session['user\u id']=$row['user\u id']。也许您需要多个会话变量?例如:
$_SESSION['user_id'] = $row['User_id'];
$_SESSION['name'] = $row['name'];
$_SESSION['postcode'] = $row['code'];
如前所述,session_start()需要在其他操作之前完成,请将php代码移到DOCTYPE之前。您的问题对我来说非常不清楚。您的会话代码是否不起作用(我看没问题),或者您想在登录后重定向用户?将名称和邮政编码信息重定向到表单设置中的info.php,而不是在登录时显示的位置。php您没有将名称和邮政编码数据放入会话中。您正在设置$\u会话['name']
,然后读取未设置(=空)的$\u会话['user\u id']
。$\u会话['user\u id']是在phpmyadmin数据库中设置的行的名称。这就是信息来源。不,不是$\u会话['user\u id']
从会话而不是从数据库读取。您也没有设置$\u会话['user\u id']
。如果你打开PHP警告和通知,你会得到一个错误。只是尝试了一下,现在info.PHP中的信息根本不显示。它只显示空表单,而不发布更多的代码,包括所有的info.php
,任何人都无法看到发生了什么。此外,即使是处理登录表单的文件也需要声明session\u start()