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.