我做了一个简单的php网页来控制连接到mysql数据库的登录,它运行良好,但如果我重新加载网页,我会松开$_SESSION
,我的代码是:
<?php
session_start();
include_once('clases/Usuario.php');
// Declaración de variables
$user = new Usuario();
$msg = "";
// Controlo el log in
if (isset($_POST['login']))
{
try
{
$_SESSION['user'] = $user->login($_POST['user'], $_POST['pass']);
$_SESSION['log'] = true;
$msg = "Conectado";
}
catch (Exception $e)
{
$msg = $e->getMessage();
}
}
// Controlo el log off
if (isset($_POST['logoff']))
{
$_SESSION['user'] = null;
$_SESSION['log'] = null;
$msg = "Desconectado";
}
?>
<html>
<head>
<meta charset="UTF-8">
<title>example</title>
</head>
<body>
<?php
if ($msg != "") echo "<font color='red'><h2>" . $msg . "</h2></font>"; // Mensaje de error si se diera el caso
// Controlo si está logueado o no
if (isset($_SESSION['log']) && $_SESSION['log'])
{
?>
<h1>Panel</h1>
<form action='index.php' method='post'><input type='submit' name='logoff' id='logoff' value='Log off' /></form>
<?php
}
else
{
?>
<h1>Login</h1>
<form action='index.php' method='post'>
<table>
<tr>
<td><b>Usuario:</b></td>
<td><input type='text' id='user' name='user' /></td>
</tr>
<tr>
<td><b>Contraseña:</b></td>
<td><input type='password' id='pass' name='pass' /></td>
</tr>
<tr>
<td colspan='2'><input type='submit' id='login' name='login' value='Log in' /></td>
</tr>
</table>
</form>
<?php
}
?>
</body>
</html>
我做了很多登录工作非常好,但我没有长时间编程php
,可能我错过了一些东西。
答案 0 :(得分:0)
我修复了,问题是我试图存储在$_SESSION['user']
PDO Statement
中,我不知道它引起了一些问题,比如我的,所以我在返回之前获取了PDOStatement 在login
中,现在已全部修复。