Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) - Erro no chat


Vida em Festa

Pergunta

Pessoal, baixei este chat e ele apresenta uma falha, conforme está baixo:

Warning: fopen(usuarios/.txt) [function.fopen]: failed to open stream: No such file or directory in /home/colegio/public_html/batepapo/menu.php on line 74

Warning: filesize() [function.filesize]: stat failed for usuarios/.txt in /home/colegio/public_html/batepapo/menu.php on line 75

Warning: fread(): supplied argument is not a valid stream resource in /home/colegio/public_html/batepapo/menu.php on line 75

Warning: fclose(): supplied argument is not a valid stream resource in /home/colegio/public_html/batepapo/menu.php on line 77

Entendi que o erro está neste scritp mas não consigo encontrar o que está falhando. Me ajundem, por favor.

<?php

session_start("chat");

?>

<?php

/*

======================================

phillippimenta@gmail.com =

==========================================================

Sistema de Bate-Papo = DESENVOLVIDO POR: PHILLIP PIMENTA =

==========================================================

http://www.phpedia.net =

======================================

Instalação

- Da a permissão 777 nas pastas mensagens e usuarios.

- Depois é só rodar no servidor

*/

?>

<html>

<head>

<title>Bate-Papo</title>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

</head>

<body bgcolor="#CCCCFF">

<?php

$mensagem = $_POST['mensagem];

$nick = $_SESSION["você"];

$cor = $_SESSION["cor"];

$sala = date("dmY");

$hora = date("H:i:s");

if($_POST['acao'] == "Enviar")

{

$abrir = fopen("mensagens/$sala.txt","a+");

$salvar = "<font face=verdana size=1>($hora)</font> <font face=verdana size=2 color=$cor>$nick</font> <font face=verdana size=2>fala para $_POST[falar]: $mensagem</font><br>";

fwrite($abrir,"$salvar");

fclose($abrir);

echo"&lt;script>top.texto.window.location=texto.php';</script>";

}

if($_POST['acao] == "Sair")

{

unlink("usuarios/$nick.txt");

session_start("chat");

session_destroy();

$abrir = fopen("mensagens/$sala.txt","a+");

$salvar = "<font face=verdana size=1>($hora)</font> <font face=verdana size=2 color=$cor>$nick</font> <font face=verdana size=2>sai da sala...</font><br>";

fwrite($abrir,"$salvar");

fclose($abrir);

echo"&lt;script>top.window.location='index.php';</script>";

}

?>

<table border="0" cellpadding="0" cellspacing="2">

<form name="form" method="post">

<tr>

<td>

&lt;script>

var navegador = navigator.appName;

if(navegador == "Netscape")

{

document.write("<textarea rows=2 name=mensagem cols=48></textarea>");

}

else

{

document.write("<textarea rows=3 name=mensagem cols=48></textarea>");

}

</script>

</td>

<td valign="top">

<div style="padding: 2px;"><input type="submit" value="Enviar" name="acao" style="width:80;"></div>

<div style="padding: 2px;"><input type="submit" value="Sair" name="acao" style="width:80;"></div>

</td>

<td valign="top" style="font-size: 12px;font-family: Verdana;">

<?php

$arquivo = fopen("usuarios/$nick.txt","r");

$falar = fread($arquivo,filesize("usuarios/$nick.txt"));

if($falar == "0"){}else{echo"De $nick para $falar";}

fclose($arquivo);

?>

<input type="hidden" value="<?php echo"$falar";?>" name="falar">

</td>

</tr>

</form>

</table>

</body>

</html>

Editado por Vida em Festa
Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

Esse erro em si indica que não foi possivel abrir o arquivo setado, no caso o arquivo que guarda o nick do usuário.

Pelo contesto do código você não deve ter logado um usuário antes de aparecer este erro ou então a sessão "voce" não está sendo registrada.

Link para o comentário
Compartilhar em outros sites

  • 0
Esse erro em si indica que não foi possivel abrir o arquivo setado, no caso o arquivo que guarda o nick do usuário.

Pelo contesto do código você não deve ter logado um usuário antes de aparecer este erro ou então a sessão "voce" não está sendo registrada.

O que eu poderia mudar?

Aparece quase tudo bem, somente no local deste erro não funciona.

Veja a mensagem no link abaixo

http://www.colegioequipern.com.br/batepapo2/sala.php

Link para o comentário
Compartilhar em outros sites

  • 0

O que acontece é que por algum motivo a varriavel $nick não está sendo atribuida, você tem que debugar o codigo para saber o motivo, é provavel que seja por que:

$nick = $_SESSION["você"];

está com o acento, nunca vi ninguém atribuir nome de sessão com acento, verifique na pagina que cria essa sessão se ela tem acento mesmo.

Link para o comentário
Compartilhar em outros sites

  • 0
O que acontece é que por algum motivo a varriavel $nick não está sendo atribuida, você tem que debugar o codigo para saber o motivo, é provavel que seja por que:

$nick = $_SESSION["você"];

está com o acento, nunca vi ninguém atribuir nome de sessão com acento, verifique na pagina que cria essa sessão se ela tem acento mesmo.

Não há acento em "você". Deve ter algum corretor ortográfico neste fórum. O que existe é uma abreviação (letra V e a letra C) Se não for pedir muito... Poderia dar uma olha na index.php?

<?php
session_start("chat");
?>
<?php
/*
======================================
     phillippimenta@gmail.com        =
                                     ==========================================================
      Sistema de Bate-Papo           = DESENVOLVIDO POR: PHILLIP PIMENTA                      =
                                     ==========================================================
      [url=http://www.phpedia.net]http://www.phpedia.net[/url]         =
======================================

Instalação

- Da a permissão 777 nas pastas mensagens e usuarios.
- Depois é só rodar no servidor
*/
?>
<html>
<head>
<title>Bate-Papo</title>
<meta http-equiv="refresh" content="60">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#CCCCFF">
<?php
$nick = $_POST['nick'];$cor  = $_POST['cor'];$sala = date("dmY");
if(file_exists("usuarios")){}else{if(mkdir("usuarios", 0777)){}else{echo"Erro!";}}
if(file_exists("mensagens/$sala.txt")){}else
{
$criar = fopen("mensagens/$sala.txt", "w");
$permissao = chmod("mensagens/$sala.txt", 0777);
$abrir = fopen("mensagens/$sala.txt","w");
fwrite($abrir,"0");
fclose($abrir);
}
$arquivo = fopen("mensagens/$sala.txt","r");
$while = fread($arquivo,filesize("mensagens/$sala.txt"));
fclose($arquivo);
if($_POST['acao'] == "Ok")
{
if(empty($nick)){echo("&lt;script>alert(\"Digite um Nick!\");</script>");}
elseif(file_exists("usuarios/$nick.txt")){echo("&lt;script>alert(\"Usuário já existente!\");</script>");}
else{
$criar = fopen("usuarios/$nick.txt" , "w");
fwrite($criar,"Todos");
fclose($criar);
$hora = date("H:i:s");
if($while == "0"){$perm = "w";}else{$perm = "a+";}
$abrir = fopen("mensagens/$sala.txt","$perm");
$salvar = "<font face=verdana size=1>($hora)</font> <font face=verdana size=2 color=$cor>$nick</font> <font face=verdana size=2>entra na sala...</font><br>";
fwrite($abrir,"$salvar");
fclose($abrir);
$você = $_POST['nick'];
session_register("você","cor");
echo"&lt;script>window.location='sala.php';</script>";
}
}
?>
<form name="form" method="post">
<font size="7" face="Courier" color="#660066">Bate-Papo</font><br><br>
<font face="Verdana" size="2">Digite seu Nick:</font><br>
<input type="text" name="nick" size="20"> <input type="submit" value="Ok" name="acao"><br>
<font face="Verdana" size="2">Cor do Nick:</font><br>
<select style="WIDTH: 100" name="cor">
<option value="#000000">Preto</option>
<option value="#ff0000" style="color:#ff0000;">Vermelho</option>
<option value="#996633" style="color:#996633;">Marrom</option>
<option value="#008000" style="color:#008000;">Verde</option>
<option value="#0099FF" style="color:#0099FF;">Azul</option>
<option value="#FF6600" style="color:#FF6600;">Laranja</option>
<option value="#FF00FF" style="color:#FF00FF;">Rosa</option>
<option value="#660066" style="color:#660066;">Roxo</option>
</select><br>
<font face="Verdana" size="2">O que está rolando agora:</font><br>
<iframe width="320" height="70" scrolling="no" frameborder="0" name="conteudo" src="texto.php"></iframe>
<br><br><font face="Verdana" size="1"></font>
</form>
</body>
</html>

Editado por Norivan Oliveira
Colocar código dentro da tag [code]
Link para o comentário
Compartilhar em outros sites

  • 0

Substitui o código da index:

<?php
session_start("chat");
?>
<?php
/*
   ======================================
   phillippimenta@gmail.com        =
   ==========================================================
   Sistema de Bate-Papo           = DESENVOLVIDO POR: PHILLIP PIMENTA                      =
   ==========================================================
   [url=http://www.phpedia.net]http://www.phpedia.net[/url]         =
   ======================================

   Instalação

   - Da a permissão 777 nas pastas mensagens e usuarios.
   - Depois é só rodar no servidor
*/
?>
<html>
<head>
<title>Bate-Papo</title>
<meta http-equiv="refresh" content="60">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#CCCCFF">
<?php
$nick = $_POST['nick'];
$cor = $_POST['cor'];
$sala = date("dmY");
if (file_exists("usuarios")) {
} else {
    if (mkdir("usuarios", 0777)) {
    } else {
        echo"Erro!";
    } 
}
if (file_exists("mensagens/$sala.txt")) {
} else {
    $criar = fopen("mensagens/$sala.txt", "w");
    $permissao = chmod("mensagens/$sala.txt", 0777);
    $abrir = fopen("mensagens/$sala.txt", "w");
    fwrite($abrir, "0");
    fclose($abrir);
}
$arquivo = fopen("mensagens/$sala.txt", "r");
$while = fread($arquivo, filesize("mensagens/$sala.txt"));
fclose($arquivo);
if ($_POST['acao'] == "Ok") {
    if (empty($nick)) {
        echo("&lt;script>alert(\"Digite um Nick!\");</script>");
    }elseif (file_exists("usuarios/$nick.txt")) {
        echo("&lt;script>alert(\"Usuário já existente!\");</script>");
    }else {
        $criar = fopen("usuarios/$nick.txt" , "w");
        fwrite($criar, "Todos");
        fclose($criar);
        $hora = date("H:i:s");
        if ($while == "0") {
            $perm = "w";
        } else {
            $perm = "a+";
        }
        $abrir = fopen("mensagens/$sala.txt", "$perm");
        $salvar = "<font face=verdana size=1>($hora)</font> <font face=verdana size=2 color=$cor>$nick</font> <font face=verdana size=2>entra na sala...</font><br>";
        fwrite($abrir, "$salvar");
        fclose($abrir);
        $você = $_POST['nick'];
        session_register("você", "cor");
        $_SESSION['voce'] = $_POST['nick']; //atribui o valor digitado no campo nick a sessão
        echo"&lt;script>window.location='sala.php';</script>";
    }
}

?>
<form name="form" method="post">
<font size="7" face="Courier" color="#660066">Bate-Papo</font><br><br>
<font face="Verdana" size="2">Digite seu Nick:</font><br>
<input type="text" name="nick" size="20"> <input type="submit" value="Ok" name="acao"><br>
<font face="Verdana" size="2">Cor do Nick:</font><br>
<select style="WIDTH: 100" name="cor">
<option value="#000000">Preto</option>
<option value="#ff0000" style="color:#ff0000;">Vermelho</option>
<option value="#996633" style="color:#996633;">Marrom</option>
<option value="#008000" style="color:#008000;">Verde</option>
<option value="#0099FF" style="color:#0099FF;">Azul</option>
<option value="#FF6600" style="color:#FF6600;">Laranja</option>
<option value="#FF00FF" style="color:#FF00FF;">Rosa</option>
<option value="#660066" style="color:#660066;">Roxo</option>
</select><br>
<font face="Verdana" size="2">O que está rolando agora:</font><br>
<iframe width="320" height="70" scrolling="no" frameborder="0" name="conteudo" src="texto.php"></iframe>
<br><br><font face="Verdana" size="1"></font>
</form>
</body>
</html>

Link para o comentário
Compartilhar em outros sites

  • 0
Substitui o código da index:
<?php
session_start("chat");
?>
<?php
/*
   ======================================
   phillippimenta@gmail.com        =
   ==========================================================
   Sistema de Bate-Papo           = DESENVOLVIDO POR: PHILLIP PIMENTA                      =
   ==========================================================
   [url=http://www.phpedia.net]http://www.phpedia.net[/url]         =
   ======================================

   Instalação

   - Da a permissão 777 nas pastas mensagens e usuarios.
   - Depois é só rodar no servidor
*/
?>
<html>
<head>
<title>Bate-Papo</title>
<meta http-equiv="refresh" content="60">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#CCCCFF">
<?php
$nick = $_POST['nick'];
$cor = $_POST['cor'];
$sala = date("dmY");
if (file_exists("usuarios")) {
} else {
    if (mkdir("usuarios", 0777)) {
    } else {
        echo"Erro!";
    } 
}
if (file_exists("mensagens/$sala.txt")) {
} else {
    $criar = fopen("mensagens/$sala.txt", "w");
    $permissao = chmod("mensagens/$sala.txt", 0777);
    $abrir = fopen("mensagens/$sala.txt", "w");
    fwrite($abrir, "0");
    fclose($abrir);
}
$arquivo = fopen("mensagens/$sala.txt", "r");
$while = fread($arquivo, filesize("mensagens/$sala.txt"));
fclose($arquivo);
if ($_POST['acao'] == "Ok") {
    if (empty($nick)) {
        echo("&lt;script>alert(\"Digite um Nick!\");</script>");
    }elseif (file_exists("usuarios/$nick.txt")) {
        echo("&lt;script>alert(\"Usuário já existente!\");</script>");
    }else {
        $criar = fopen("usuarios/$nick.txt" , "w");
        fwrite($criar, "Todos");
        fclose($criar);
        $hora = date("H:i:s");
        if ($while == "0") {
            $perm = "w";
        } else {
            $perm = "a+";
        }
        $abrir = fopen("mensagens/$sala.txt", "$perm");
        $salvar = "<font face=verdana size=1>($hora)</font> <font face=verdana size=2 color=$cor>$nick</font> <font face=verdana size=2>entra na sala...</font><br>";
        fwrite($abrir, "$salvar");
        fclose($abrir);
        $você = $_POST['nick'];
        session_register("você", "cor");
        $_SESSION['voce'] = $_POST['nick']; //atribui o valor digitado no campo nick a sessão
        echo"&lt;script>window.location='sala.php';</script>";
    }
}

?>
<form name="form" method="post">
<font size="7" face="Courier" color="#660066">Bate-Papo</font><br><br>
<font face="Verdana" size="2">Digite seu Nick:</font><br>
<input type="text" name="nick" size="20"> <input type="submit" value="Ok" name="acao"><br>
<font face="Verdana" size="2">Cor do Nick:</font><br>
<select style="WIDTH: 100" name="cor">
<option value="#000000">Preto</option>
<option value="#ff0000" style="color:#ff0000;">Vermelho</option>
<option value="#996633" style="color:#996633;">Marrom</option>
<option value="#008000" style="color:#008000;">Verde</option>
<option value="#0099FF" style="color:#0099FF;">Azul</option>
<option value="#FF6600" style="color:#FF6600;">Laranja</option>
<option value="#FF00FF" style="color:#FF00FF;">Rosa</option>
<option value="#660066" style="color:#660066;">Roxo</option>
</select><br>
<font face="Verdana" size="2">O que está rolando agora:</font><br>
<iframe width="320" height="70" scrolling="no" frameborder="0" name="conteudo" src="texto.php"></iframe>
<br><br><font face="Verdana" size="1"></font>
</form>
</body>
</html>

:D

Valeu pela força. Deu certo. só ficou um pequeno problema quando o usúário se desloga, mas não impede o funcionamento do chat. Muito obrigado.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,6k
×
×
  • Criar Novo...