Jump to content


Photo

Substituir Sessions


  • Faça o login para participar
1 reply to this topic

#1 Fernando Simões

Fernando Simões

    Novato no fórum

  • Usuários
  • 1 posts
  • Sexo:Masculino
  • Localidade:Itaquaquecetuba-SP

Posted 22/12/2008, 13:41

Olá,

Estou com um problema em um sistema e o ADM do servidor condenou meu código, porém não me apontou quais irregularidades poderiam conter.
Por culpa dessa situação gostaria de saber se existe alguma metodologia mais adequada para a utilização de sessions.
ou algo que pudesse substituir a função de sessions?
A mensagem de erro é a seguinte:

"PHP Warning: session_start() [<a href='function.session-start'>function.session-start</a>]: open(/tmp/sess_f1920c72a03d886414733482cc08afdd, O_RDWR) failed: Permission denied (13) in /home/.../index.php on line 3"

Segue meu código:

<?php
session_start();

$_T_MAX_LOG=15;
$_t_border = 0;
$previlegio="";

//inclusão variaveis locais
include "_variaveis_locais.inc.txt";

//mensagens do systemas para analista
$show_msgsys=0;
$msgsys="";

//mensagens do systemas para usuario
$show_msguser=1;
$msguse="";

//Inclusão de funções

//funções de arquivos
include_once('_fnc_arq.php');

//captura de variaveis
if($_SESSION['logado'] == 1)
{
//Encerra caso o tempo tenha excedido
if ($_SESSION['C_TIME'] !='')
{
$M_DIF = (time("H:i:s") - $_SESSION['C_TIME'])/60;
if ($M_DIF>=$_T_MAX_LOG)
{
$_SESSION['logado']=0;
$msgsys="Usuario foi desconectado do Sistema, tempo expirado!";
$msguse="Usuario foi desconectado do Sistema, tempo expirado!";
}
}

//Encerra caso o Logout tenha sido requisitado
if ( $_POST["_logout"] =="Sair")
{
$_SESSION['logado']=0;

$msgsys=$msgsys."<BR> Usuario se desconectou do Sistema!";
$msguse=$msguse."<BR> Usuario se desconectou do Sistema!";

session_destroy();
header("location:$_pag_dest");

}

//Analisar esta area do codigo
if(is_numeric($_REQUEST['iddownarq']))
{
$_SESSION['id_downarq']=$_REQUEST['iddownarq'];
$_SESSION['id_arq_down']=$_REQUEST['iddownarq'];

$_REQUEST['iddownarq']=0;
$msgsys=$msgsys."<BR> Capturado ID de download do arquivo:".$_SESSION['id_downarq'].":";

}
else
{
$_SESSION['id_downarq']=0;
$_SESSION['id_arq_down']=0;

$msgsys=$msgsys."<BR> não tem ID de download do arquivo";
}

//Analisar esta area do codigo
if(is_numeric($_REQUEST['idarq']))
{
$_SESSION['id_arq']=$_REQUEST['idarq'];
$_REQUEST['idarq']=0;
$msgsys=$msgsys."<BR> Capturado ID de arquivo:".$_SESSION['id_arq'].":";
}
else
$msgsys=$msgsys."<BR> não tem id de arquivo";

$msgsys=$msgsys."<BR> usuario esta logado";

if (isset($_SESSION['id_usuario']))
{
$IDU = $_SESSION['id_usuario'];
$msgsys=$msgsys."<BR> Restaurando a session id_usuario no IDU!";
$msgsys=$msgsys."<BR> Usuario:".$IDU.": esta logado, faltam ".number_format(15 - $M_DIF,"0")." min. para fim de sessão!";
$msguse=$msguse."<BR> Usuario:".$IDU.": esta logado, faltam ".number_format(15 - $M_DIF,"0")." min. para fim de sessão!";

if ($_SESSION['class']==1)
$previlegio="su";
else
$previlegio="u";
}
else
{
$IDU = 0;
$msgsys=$msgsys."<BR> session id_usuario esta zerada!";
$msgsys=$msgsys."<BR> tentativa de recuperar IDU!";

// pedaço colocado para tentar recuperar o IDU
include "_acesso_bd.inc.txt";

$cone = mysql_connect($host,$user,$passwd) or die ("erro de conexão");
mysql_select_db($base) or die ("erro de conexão");
$consulta="select count(*) as q from _usuario where usuario_u='$m_usuario' and senha_u='$m_senha'";
$resultado = mysql_query($consulta) or die ("erro de consulta");
$linhas = mysql_fetch_assoc($resultado);

if ($linhas["q"]==0)
{
$msgsys=$msgsys."<BR> Usuario ou senha não confere";
$msguse=$msguse."<BR> Usuario ou senha não confere";
}
else
{
$msgsys=$msgsys."<BR> usuario existe no banco";

$consulta="select * from _usuario where usuario_u='$m_usuario' and senha_u='$m_senha'";
$resultado = mysql_query($consulta) or die ("erro de consulta");
$linhas = mysql_fetch_assoc($resultado);

// captura o ID do ususario
$IDU = $linhas["id_usuario"];
$_SESSION['id_usuario'] = $IDU;

$msgsys=$msgsys."<BR> capturou o ID user e colocou na session";
$msgsys=$msgsys."<BR>IDU:".$IDU;

// fim do pedaço colocado para recuperar o IDU
}

$msgsys=$msgsys."<BR> fim tentativa de recuperar IDU!";
$msgsys=$msgsys."<BR> Usuario:".$IDU.": esta logado, faltam ".number_format(15 - $M_DIF,"0")." min. para fim de sessão!";
$msgsys=$msgsys."<BR> classe do Usuario:".$_SESSION['class'].":";
$msguse=$msguse."<BR> Usuario:".$IDU.": esta logado, faltam ".number_format(15 - $M_DIF,"0")." min. para fim de sessão!";

}
}
else
{
$msgsys=$msgsys."<BR> usuario não esta logado";
// entrou com usuario
if ( $_POST["_usuario"] != "" and $_POST["_senha"] != "" )
{

$msgsys=$msgsys."<BR> usuario entrou com login e senha";

$m_usuario = $_POST["_usuario"];
$m_senha = $_POST["_senha"];

$_SESSION['_usuario'] = $m_usuario;
$_SESSION['_senha'] = $m_senha;

$_POST["_usuario"]="";
$_POST["_senha"]="";

include "_acesso_bd.inc.txt";

$cone = mysql_connect($host,$user,$passwd) or die ("erro de conexão");
mysql_select_db($base) or die ("erro de conexão");
$consulta="select count(*) as q from _usuario where usuario_u='$m_usuario' and senha_u='$m_senha'";
$resultado = mysql_query($consulta) or die ("erro de consulta");
$linhas = mysql_fetch_assoc($resultado);

if ($linhas["q"]==0)
{
$msgsys=$msgsys."<BR> Usuario ou senha não confere";
$msguse=$msguse."<BR> Usuario ou senha não confere";
}
else
{
$msgsys=$msgsys."<BR> usuario existe no banco";

$consulta="select * from _usuario where usuario_u='$m_usuario' and senha_u='$m_senha'";
$resultado = mysql_query($consulta) or die ("erro de consulta");
$linhas = mysql_fetch_assoc($resultado);

// captura o ID do ususario
$IDU = $linhas["id_usuario"];
$_SESSION['id_usuario'] = $IDU;

$msgsys=$msgsys."<BR> capturou o ID user e colocou na session";
$msgsys=$msgsys."<BR>IDU:".$IDU;

//variaveis de tempo
$t=time("H:i:s");
$_SESSION['C_TIME'] = $t;
$_SESSION['logado'] = 1;
$_SESSION['class']=$linhas["class_u"];

if ($_SESSION['class']==1)
$previlegio="su";
else
$previlegio="u";
}
}
}

//Cabeçalho da Pagina
include "_cabecalho.inc.txt";

//area de conversação com o Usuario
include "_robot.inc.txt";

//corpo da Pagina
echo "<tr><td class=A>";

if($_SESSION['logado'] != 1)
include "_login.inc.txt";
else
{

if($_SESSION['id_arq']<>0)
include "_abrir_arq_".$previlegio.".inc.txt";
else
{
if( $_POST["_apagar"]=="Sim")
include "_ex_".$previlegio.".inc.txt";
else
{
if( $_POST["_apagar"]=="Apagar")
include "_con_ex_".$previlegio.".inc.txt";
else
{
if( $_POST["_postar_con"]=="Sim")
include "_postar_up_".$previlegio.".inc.txt";
else
{
if( $_POST["_postar_con"]=="Enviar")
include "_postar_con_".$previlegio.".inc.txt";
else
{
if ($_POST["_postar"] =="Postar")
include "_postar_".$previlegio.".inc.txt";
else
{
if ($_POST["_retorna"] =="Retorno")
include "_retorna_".$previlegio.".inc.txt";
else
{
if ($_POST["_retorna_con"] =="Enviar")
include "_retorna_con_".$previlegio.".inc.txt";
else
{
if ($_POST["_retorna_con"] =="Sim")
include "_retorna_up_".$previlegio.".inc.txt";
else
{
if ($_POST["_rel"] =="Fechamento")
include "_rel_".$previlegio.".inc.txt";
else
{
if ($_POST["_relatar"] =="Relatar")
include "_relatar_arq_".$previlegio.".inc.txt";
else
{
//Linha do logout
echo "<form name='logout' id='logout' method='POST' action='index.php'>";
echo "<table width=100% border= $_t_border ><tr><td align=right><input type=submit value=Sair name=_logout></td></tr></table>";
echo "</form>";

//Fim de Linha do logout
if ($_POST["_limpar_disco"] =="Limpar")
_meu_limpa_dir($temp_down);

include "_adm_".$previlegio.".inc.txt";
}
}
}
}
}
}
}
}
}
}
}
//fim das funções
}

echo "</td></tr>";
//Rodape
include "_rodape.inc.txt";

?>

Desde já agradeço ...
Muito Obrigado,
Fernando Simões

Edição feita por: Fernando Simões, 22/12/2008, 13:43.


#2 fly2k

fly2k

    Super Veterano

  • Usuários
  • 2262 posts
  • Sexo:Não informado

Posted 29/12/2008, 09:55

Pelo que entendi você não está conseguindo acessar o diretório dos arquivos temporários de sessão.
Verifica isso: http://www.php.net/m...n-save-path.php
Quer aprender PHP? -> www.manjaphp.com.br
Tutoriais, código colaborativo (pastebin), curso de PHP, artigos e etc.




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq