我正在制作一个网站并且我编写了一个会话,所以如果你不登录你就不能进入某些形式,但是当我登录会话时,即使我点击退出按钮,我甚至在它破坏了会话它再次将我发送到登录,但然后它将我发送到仅在您登录时打开的表单,就像我从未登出一样
这是我正在使用的代码
<?php
session_start();
session_destroy();
header("location:loginusuario.php");
?>
继承人登录的代码
<?php
include ("conexion/conexion.php");
include("usuarios.class.php");
$usuario= $_POST['usuario'];
$clave= $_POST['clave'];
$objUsuario = new usuarios;
$srt= $objUsuario->autenticar_usuario($usuario,$clave,1);
$num =mysql_num_rows($srt);
if($num <= 0){
$mensaje="Usuario y/o clave Incorrectos";
header("location:index.php?mensaje=$mensaje");
}else{
$row=mysql_fetch_array($srt);
session_start();
$_SESSION['log'] = 's';
$_SESSION['nombre'] = $row['nombre'];
header("location:contrataciones.php");
}
?>
这是班级的代码
<?php
class usuarios
{
function usuarios() {
}
function autenticar_usuario($usuario,$clave){
$sel="select usuario,clave from usuarios where usuario='".$usuario."' and clave='".$clave."' ";
$srt=mysql_query($sel) or die($sel);
return $srt;
}
?>
我不知道我是否遗漏了什么或者我认为代码还可以,但你觉得怎么样?
答案 0 :(得分:0)
要确保完全销毁会话并释放所有相关变量,请使用它:
<?php
session_start(); //retrieve existing session
session_unset(); //free all variables
session_destroy(); //destroy esssion
session_write_close(); //save session data and close the writing stream (a bit like a SQL commit)
setcookie(session_name(),'',0,'/'); //if you use cookie : delete it by setting a new one with a 0 lifetime.
session_regenerate_id(true); //regenerate new session id.
?>
从http://www.php.net/manual/en/function.session-unset.php#107089
复制答案 1 :(得分:-1)
尝试:
在session_unset()
之前 session_destroy()
因为session_destroy()
不会取消设置与会话关联的任何全局变量,或者取消设置会话cookie。