prog_web 0 Denunciar post Postado Março 14, 2007 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
Anderson Mello 3 Denunciar post Postado Março 14, 2007 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
prog_web 0 Denunciar post Postado Março 14, 2007 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
Anderson Mello 3 Denunciar post Postado Março 14, 2007 Certo. De onde vem a variável $txt? É por GET? Compartilhar este post Link para o post Compartilhar em outros sites
prog_web 0 Denunciar post Postado Março 14, 2007 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
Anderson Mello 3 Denunciar post Postado Março 14, 2007 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
prog_web 0 Denunciar post Postado Março 14, 2007 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
Anderson Mello 3 Denunciar post Postado Março 14, 2007 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