Problema com sessão
Pessoal,
Estou com o seguinte problema.
Tenho o arquivo comum a todas as páginas de conexão com o banco onde faço o start da session:
conexao.php
<?php
$con = mysql_connect('xxx','xxx','xxx');
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db('xxx', $con);
session_start();
?>
No arquivo index.php faço o login no portal.
index.php
<?php
session_start();
?>
<html>
<head>
<title></title>
<head>
<body>
<table>
<tr>
<td colspan='2' align='center'>Login</td>
</tr>
<form method='post' action='principal.php'>
<tr>
<td>Login:</td><td><input type='text' name='matricula' maxlength='10' size='10' /></td>
</tr>
<tr>
<td>Senha:</td><td><input type='password' name='senha' maxlength='32' size='10' /></td>
</tr>
<tr>
<td colspan='2' align='center'><input type='submit' value='Logar' /></td>
</tr>
</form>
</table>
</body>
</html>
Criei também um arquivo de sessão comum em todas as páginas que vou usar o valor que quero guardar da sessão.
sessao.php
<?php
session_cache_expire(10);
$cod_login = $_POST['matricula'];
$_SESSION['cod_login'] = $cod_login;
?>
Quando entro na primeira página, tudo funciona normalmente, mas quando entro nas outras páginas começo a perder o valor da sessão.
index.php
<?php
session_start();
?>
<html>
<head>
<title></title>
<head>
<body>
<table>
<tr>
<td colspan='2' align='center'>Login</td>
</tr>
<form method='post' action='principal.php'>
<tr>
<td>Login:</td><td><input type='text' name='matricula' maxlength='10' size='10' /></td>
</tr>
<tr>
<td>Senha:</td><td><input type='password' name='senha' maxlength='32' size='10' /></td>
</tr>
<tr>
<td colspan='2' align='center'><input type='submit' value='Logar' /></td>
</tr>
</form>
</table>
</body>
</html>
cadastro_login.php
<?php
include('conexao.php');
include('sessao.php');
?>
<html>
<head>
<title></title>
</head>
<body>
<table>
<tr>
<td valign='top'><?php include('menu.php'); ?></td>
<td>
<table border='1'>
<tr>
<td colspan='2' align='center'>Cadastro de Usuário</td>
</tr>
<form method='post' action='cadastro_login_2.php'>
<tr>
<td align='right'>Matricula:</td><td><input type='text' name='matricula' maxlength='10' size='10' /></td>
</tr>
<tr>
<td align='right'>Nome Completo:</td><td><input type='text' name='nome' maxlength='100' size='35' /></td>
</tr>
<tr>
<td align='right'>E-mail:</td><td><input type='text' name='email' maxlength='100' size='35' /></td>
</tr>
<tr>
<td align='right' valign='top'>Perfil:</td>
<td>
<?php
$result = mysql_query("SELECT * FROM depara_perfil where status = 0 order by cod_perfil");
while($row = mysql_fetch_array($result))
{
echo '<input type="radio" name="perfil" value="'.$row['cod_perfil'].'" />' .$row['cod_perfil'].' - '.$row['desc_perfil'].'<br />';
}
?>
</td>
</tr>
<tr>
<td align='right' valign='top'>Área:</td><td>
<?php
$result = mysql_query("SELECT * FROM depara_area where status = 0 order by desc_area");
while($row = mysql_fetch_array($result))
{
echo '<input type="radio" name="area" value="'.$row['cod_area'].'" />' .$row['desc_area'].'<br />';
}
?>
</td>
</tr>
<tr>
<td colspan='2' align='center'><input type='submit' value='Cadastrar Usuário' /></td>
</tr>
</form>
</table>
</td>
</tr>
</table>
</body>
</html>
menu.php
<body>
<ul id="primary-nav">
<?php
$result = mysql_query("SELECT * FROM tb_login WHERE cod_login='".$_SESSION['cod_login']."'");
if (!$result) {
echo 'Could not run query: ' . mysql_error();
exit;
}
$row = mysql_fetch_row($result);
$perfil = $row[1];
$area = $row[2];
if ($perfil==1) {
echo "<li class='menuparent'><a href='#'>Usuário</a>
";
}
?>
<li class="menuparent"><a href="#">Job</a>
</body>
Alguém saberia dizer como eu guardo o valor da sessão em todas as páginas?
Estou com o seguinte problema.
Tenho o arquivo comum a todas as páginas de conexão com o banco onde faço o start da session:
conexao.php
<?php
$con = mysql_connect('xxx','xxx','xxx');
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db('xxx', $con);
session_start();
?>
No arquivo index.php faço o login no portal.
index.php
<?php
session_start();
?>
<html>
<head>
<title></title>
<head>
<body>
<table>
<tr>
<td colspan='2' align='center'>Login</td>
</tr>
<form method='post' action='principal.php'>
<tr>
<td>Login:</td><td><input type='text' name='matricula' maxlength='10' size='10' /></td>
</tr>
<tr>
<td>Senha:</td><td><input type='password' name='senha' maxlength='32' size='10' /></td>
</tr>
<tr>
<td colspan='2' align='center'><input type='submit' value='Logar' /></td>
</tr>
</form>
</table>
</body>
</html>
Criei também um arquivo de sessão comum em todas as páginas que vou usar o valor que quero guardar da sessão.
sessao.php
<?php
session_cache_expire(10);
$cod_login = $_POST['matricula'];
$_SESSION['cod_login'] = $cod_login;
?>
Quando entro na primeira página, tudo funciona normalmente, mas quando entro nas outras páginas começo a perder o valor da sessão.
index.php
<?php
session_start();
?>
<html>
<head>
<title></title>
<head>
<body>
<table>
<tr>
<td colspan='2' align='center'>Login</td>
</tr>
<form method='post' action='principal.php'>
<tr>
<td>Login:</td><td><input type='text' name='matricula' maxlength='10' size='10' /></td>
</tr>
<tr>
<td>Senha:</td><td><input type='password' name='senha' maxlength='32' size='10' /></td>
</tr>
<tr>
<td colspan='2' align='center'><input type='submit' value='Logar' /></td>
</tr>
</form>
</table>
</body>
</html>
cadastro_login.php
<?php
include('conexao.php');
include('sessao.php');
?>
<html>
<head>
<title></title>
</head>
<body>
<table>
<tr>
<td valign='top'><?php include('menu.php'); ?></td>
<td>
<table border='1'>
<tr>
<td colspan='2' align='center'>Cadastro de Usuário</td>
</tr>
<form method='post' action='cadastro_login_2.php'>
<tr>
<td align='right'>Matricula:</td><td><input type='text' name='matricula' maxlength='10' size='10' /></td>
</tr>
<tr>
<td align='right'>Nome Completo:</td><td><input type='text' name='nome' maxlength='100' size='35' /></td>
</tr>
<tr>
<td align='right'>E-mail:</td><td><input type='text' name='email' maxlength='100' size='35' /></td>
</tr>
<tr>
<td align='right' valign='top'>Perfil:</td>
<td>
<?php
$result = mysql_query("SELECT * FROM depara_perfil where status = 0 order by cod_perfil");
while($row = mysql_fetch_array($result))
{
echo '<input type="radio" name="perfil" value="'.$row['cod_perfil'].'" />' .$row['cod_perfil'].' - '.$row['desc_perfil'].'<br />';
}
?>
</td>
</tr>
<tr>
<td align='right' valign='top'>Área:</td><td>
<?php
$result = mysql_query("SELECT * FROM depara_area where status = 0 order by desc_area");
while($row = mysql_fetch_array($result))
{
echo '<input type="radio" name="area" value="'.$row['cod_area'].'" />' .$row['desc_area'].'<br />';
}
?>
</td>
</tr>
<tr>
<td colspan='2' align='center'><input type='submit' value='Cadastrar Usuário' /></td>
</tr>
</form>
</table>
</td>
</tr>
</table>
</body>
</html>
menu.php
<body>
<ul id="primary-nav">
<?php
$result = mysql_query("SELECT * FROM tb_login WHERE cod_login='".$_SESSION['cod_login']."'");
if (!$result) {
echo 'Could not run query: ' . mysql_error();
exit;
}
$row = mysql_fetch_row($result);
$perfil = $row[1];
$area = $row[2];
if ($perfil==1) {
echo "<li class='menuparent'><a href='#'>Usuário</a>
- <a href='cadastro_login.php'>Cadastrar</a>
- <a href='alterar_login.php'>Alterar</a>
";
}
?>
<li class="menuparent"><a href="#">Job</a>
- <a href="cadastro_job.php">Cadastrar</a>
- <a href="alterar_job.php">Alterar</a>
</body>
Alguém saberia dizer como eu guardo o valor da sessão em todas as páginas?
comentários (0)
suspender
Lista de Respostas:
20/10/2010 5:56pm
(~14 anos atrás)
(~14 anos atrás)
Ola Mateus,
Veja se entendi sua situação e se posso lhe ajudar em algo...
Primeiramente no post da sua tela de login e senha voce chama uma pagina que verifica se existe o login cadastrado no BD, se tiver ele grava na variavel de sessão o login do respectivo ($_SESSION['cod_login'] = $_POST[cod_login];)...
Em todas as suas paginas coloque na primeira linha o comando session_start(); e chame uma pagina de conferencia onde nela ira verificar se a varialvel de sessão está preenchida ($_SESSION['cod_login']==""), do contrário ela redireciona para a pagina de login e senha...
Veja se entendi sua situação e se posso lhe ajudar em algo...
Primeiramente no post da sua tela de login e senha voce chama uma pagina que verifica se existe o login cadastrado no BD, se tiver ele grava na variavel de sessão o login do respectivo ($_SESSION['cod_login'] = $_POST[cod_login];)...
Em todas as suas paginas coloque na primeira linha o comando session_start(); e chame uma pagina de conferencia onde nela ira verificar se a varialvel de sessão está preenchida ($_SESSION['cod_login']==""), do contrário ela redireciona para a pagina de login e senha...