Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

prog_web

Problema ao publicar sistema no servidor

Recommended Posts

Eu tenho sistema que localmente funciona perfeitamente, não dá problema algum. Agora eu fui colocar ele no meu servidor e ele passou a dar uns erros bem estranhos. Exemplo:

Warning: fwrite(): supplied argument is not a valid stream resource in /home/webmeta/www/sac/atendimento/chat/index.php on line 139Warning: fclose(): supplied argument is not a valid stream resource in /home/webmeta/www/sac/atendimento/chat/index.php on line 140

Eu tenho as seguintes linhas próximas ao erro:

linha 137	urlencode($txt);linha 138	$fo = fopen($file, "a+");linha 139	fwrite($fo, $txt);linha 140	fclose($fo);

Alguém saberia me ajuda neste meu problema? "supplied argument is not a valid stream resource". Nunca vi esse erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

prog_web, dê uma verifica antes se o arquivo possui permissão de escrita, pois o erro retornado indica que não é um recurso válido. Entenda recurso como o arquivo que está sendo aberto.[]sAnderson Mello

Compartilhar este post


Link para o post
Compartilhar em outros sites

Anderson Mello, o diretório aonde o arquivo é criado e gravado tem as devidas permissões (chmod 777).

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não. Ela é declarada logo acima da linha 137 que eu passei aí, na seguinte linha:

 

$txt = $_SESSION["nick"]."|+|"."Entrou no chat"."|+|".getmicrotime()."|+|"."\n";

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certo, deu pra sacar que você está desenvolvendo um chat com base texto.Bom, posta o trecho todo do código que dá o erro, pois o problema pode estar na variável $file.[]sAnderson Mello

Compartilhar este post


Link para o post
Compartilhar em outros sites

O arquivo que esta dando o erro é o seguinte:

 

<?phpsession_start();include "http://www.meusite.com.br/chat/include.php";if(isset($_GET["nick"])){	function getmicrotime(){		list($usec, $sec) = explode(" ", microtime());		return ((float)$usec + (float)$sec);	}	$_SESSION["nome_cliente"] = $_GET["nome_cliente"];	$_SESSION["atendente"] = $_GET["atendente"];	$DfIdCliente = $_GET["id_cliente"];	$_SESSION["nick"] = $_GET["nick"];	$_SESSION["time"] = getmicrotime();	$_SESSION["tamanho"]="";	$_SESSION["index"] = 0;	if ($nome_cliente=="") {		$_SESSION["expirar"] = "S";	}	else {		$_SESSION["expirar"] = "N";	}	$timestamp=time();	$dir="data/";	if(!is_dir($dir)) mkdir($dir, 0777);	$data = date("d-m-Y");	$_SESSION["file"]=$dir.$DfNomeAtendente."-".$DfNomeCliente." (".$data.").txt";	include "../conexao.php";	$sql_pesquisa_atendente = "SELECT DfNomeUsuario, DfEmail from $tbUsuario WHERE DfIdUsuario='$atendente' ";	$resultado_pesquisa_atendente = mysql_query($sql_pesquisa_atendente)	or die ("$mysql_erro");	$linha = mysql_fetch_array($resultado_pesquisa_atendente);	$_SESSION["DfNomeAtendente"] = $linha["DfNomeUsuario"];	$_SESSION["DfEmailAtendente"] = $linha["DfEmailUsuario"];	$sql_atualiza_atendido = "UPDATE $tbAtendimentoCliente SET DfClienteAtendido='S', DfIdAtendente='$atendente' WHERE DfIdAtendimentoCliente='$DfIdCliente' ";	$resultado_atualiza_atendido = mysql_query($sql_atualiza_atendido)	or die ("$mysql_erro");	$sql_pesquisa_cliente = "SELECT ac.DfIdAtendimentoCliente, uc.DfNomeUsuarioCliente, uc.DfEmailCliente, uc.DfIdUsuarioCliente, ac.DfDuvidaInicialCliente from $tbAtendimentoCliente AS ac LEFT JOIN $tbUsuarioCliente uc ON ac.DfIdUsuarioCliente=uc.DfIdUsuarioCliente WHERE ac.DfIdAtendimentoCliente='$DfIdCliente' ";	$resultado_pesquisa_cliente = mysql_query($sql_pesquisa_cliente)	or die ("$mysql_erro");	$linha = mysql_fetch_array($resultado_pesquisa_cliente);	$_SESSION["DfIdCliente"] = $linha["DfIdAtendimentoCliente"];	$_SESSION["DfIdUsuarioCliente"] = $linha["DfIdUsuarioCliente"];	$_SESSION["DfNomeCliente"] = $linha["DfNomeUsuarioCliente"];	$_SESSION["DfEmailCliente"] = $linha["DfEmailCliente"];	$DfDuvidaInicialCliente = $linha["DfDuvidaInicialCliente"];	$_SESSION["DfDuvidaInicialCliente"] = nl2br($DfDuvidaInicialCliente);	header("Location: ?chat");	exit;}elseif(!isset($_SESSION["nick"]) || isset($_POST["idx"])){?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Meta Atendimento Online</title><link href="css/padrao.css" rel="stylesheet" type="text/css"></head><body><?if($nome_cliente=="") {	echo "<form name=\"form\" method=\"post\" action=\"../saida_cliente.php?id_cliente=$DfIdCliente\">";	echo "Você saiu do chat!<p />";	echo "Sua dúvida foi esclarecida?<p />";	echo "<input type=\"radio\" name=\"esclarecimento\" value=\"1\" /> SIM <br /><input type=\"radio\" name=\"esclarecimento\" value=\"2\" /> NÃO <p />";	echo "Nota atendimento <p />";	echo "Qual é a nota que você dá a esse atendimento que você teve?<p />";	echo "<select size=\"1\" name=\"nota\" id=\"nota\">";	echo "<option value=\"10\"> </option>";	echo "<option value=\"10\">10</option>";	echo "<option value=\"9\">9</option>";	echo "<option value=\"8\">8</option>";	echo "<option value=\"7\">7</option>";	echo "<option value=\"6\">6</option>";	echo "<option value=\"5\">5</option>";	echo "<option value=\"4\">4</option>";	echo "<option value=\"3\">3</option>";	echo "<option value=\"2\">2</option>";	echo "<option value=\"1\">1</option>";	echo "<option value=\"0\">0</option>";	echo "</select><br />";	echo "<input type=\"submit\" value=\"Enviar\" name=\"submit\" />";	echo "</form>";	include "../footer.php";}else {	echo "Você saiu do chat";	include "../footer.php";}exit;}else{?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Meta Atendimento Online</title><script src="js/ajax.js" type="text/javascript"></script><script src="js/chat.js" type="text/javascript"></script><link href="css/padrao.css" rel="stylesheet" type="text/css"></head><?if($nome_cliente=="") {	echo "<body onload=\"GetMsg(); inicial(1);\" onbeforeunload=\"off();\" >";	echo "<table border=\"0\" cellspacing=\"2\" align=\"left\" width=\"400\" height=\"450\">";	echo "<tr heigth=\"50\">";	echo "<td>";	echo "<div id=\"info\"><font id=\"padrao\"> Chamada atendida pelo operador(a): $DfNomeAtendente <br />";	echo "Departamento: Atendimento <br />";	echo "E-mail de contato: $DfEmailAtendente <br /></font></div>";	echo "</td>";	echo "</tr>";	echo "<tr heigth=\"50\">";	echo "<td>";	echo "<div id=\"info\"><font id=\"padrao\">Seja bem vindo(a): $DfNomeCliente / $DfEmailCliente <br />";	echo "Sua dúvida inicial: <br/>";	echo "$DfDuvidaInicialCliente </font></div>";	echo "</td>";	echo "</tr>";	echo "<tr heigth=\"200\">";	echo "<td valign=\"top\" height=\"200\" bgcolor=\"#E6EAEE\" ><div id=\"conteiner\"><div align=\"left\" id=\"show\"> </div></div></td>";	echo "</tr>";	echo "<tr heigth=\"130\">";	echo "<td bgcolor=\"#F4F4F4\" align=\"left\">";	echo "<h5>    Digite sua mensagem:</h5>";	echo "  <input type=\"text\" id=\"post\" size=\"50\" onKeyDown=\"if(event.keyCode==13) PostMsg();\" class=\"form2\" onFocus=\"this.className='form';\"  onBlur=\"this.className='form2'\"  >";	echo "<input type=\"button\" value=\"Enviar\" id=\"sbm\" onClick=\"PostMsg();\" class=\"form2\"  onmouseover=\"this.className='form';\"  onmouseout=\"this.className='form2'\" >";	echo "<br />    <input type=\"checkbox\" id=\"rolar\" value=\"\"  >Rolagem Automática";	echo "                        <input type=\"button\" value=\"Sair\" name=\"botaum\" onclick=\"Sair();\" class=\"form2\"  onmouseover=\"this.className='form';\"  onmouseout=\"this.className='form2'\">";	echo "</td>";	echo "</tr>";	echo "</table>";	function getmicrotime(){		list($usec, $sec) = explode(" ", microtime());		return ((float)$usec + (float)$sec);	}	$txt = $_SESSION["nick"]."|+|"."Entrou no chat"."|+|".getmicrotime()."|+|"."\n";	urlencode($txt);	$fo = fopen($file, "a+");	fwrite($fo, $txt);	fclose($fo);}else {	echo "<body onload=\"GetMsg(); inicial(1);\" onbeforeunload=\"off();\">";	echo "<table border=\"0\" cellspacing=\"2\" align=\"left\" width=\"400\" height=\"450\">";	echo "<tr heigth=\"100\">";	echo "<td>";	echo "<div id=\"info\"><br /><font id=\"padrao\">Realizando atendimento ao cliente: $DfNomeCliente / $DfEmailCliente <p />";	echo "Dúvida inicial do cliente: <br/>";	echo "$DfDuvidaInicialCliente <br /><br /></font></div>";	echo "</td>";	echo "</tr>";	echo "<tr heigth=\"200\">";	echo "<td valign=\"top\" height=\"200\" bgcolor=\"#E6EAEE\" ><div id=\"conteiner\"><div align=\"left\" id=\"show\"> </div></div></td>";	echo "</tr>";	echo "<tr heigth=\"130\">";	echo "<td bgcolor=\"#F4F4F4\" align=\"left\">";	echo "<h5>    Digite sua mensagem:</h5>";	echo "  <input type=\"text\" id=\"post\" size=\"50\" onKeyDown=\"if(event.keyCode==13) PostMsg();\" class=\"form2\" onFocus=\"this.className='form';\"  onBlur=\"this.className='form2'\"  >";	echo "<input type=\"button\" value=\"Enviar\" id=\"sbm\" onClick=\"PostMsg();\" class=\"form2\"  onmouseover=\"this.className='form';\"  onmouseout=\"this.className='form2'\" >";	echo "<br />    <input type=\"checkbox\" id=\"rolar\" value=\"\"  >Rolagem Automática";	echo "                        <input type=\"button\" value=\"Sair\" name=\"botaum\" onclick=\"Sair();\" class=\"form2\"  onmouseover=\"this.className='form';\"  onmouseout=\"this.className='form2'\">";	echo "</td>";	echo "</tr>";	echo "</table>";	function getmicrotime(){		list($usec, $sec) = explode(" ", microtime());		return ((float)$usec + (float)$sec);	}	$txt = $_SESSION["nick"]."|+|"."Entrou no chat"."|+|".getmicrotime()."|+|"."\n";	urlencode($txt);	$fo = fopen($file, "a+");	@fwrite($fo, $txt);	fclose($fo);}echo "</body>";echo "</html>";exit;}?>

O $file vem das linhas:

 

if ($nome_cliente!="") {		$file = $dir_root. "/".$atendente."_online.txt";	}	else {		$file = $dir_root."/".$atendente."_online.txt";	}

$nome_cliente eu passo normal no sistema.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, não entendi. O trecho que pega o $file é em outro arquivo?Se sim, há também uma variável nova pra mim aí, a $dir_root.Debuga o código e verifiquei o valor de $file, após a condição. Então faz uma comparação com o destino no servidor, se ele realmente existe e se há permissão de escrita.[]sAnderson Mello

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.