Ir para conteúdo

POWERED BY:

Arquivado

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

Jose Ornelas

laço de repetição

Recommended Posts

http://forum.imasters.com.br/public/style_emoticons/default/blush.gif

 

GALERA COMO FAÇO PARA IDENTIFICAR SE UM LAÇO DE REPETIÇÃO ESTA COM PROBLEMA POIS, TENHO UM BATE PAPO E ELE TA PARA O SERVIDOR HTTP DO PROVEDOR E NÃO ESTOU CONSEGUINDO IDENTIFICAR ONDE ESTA O ERRO MESMO POR QUE NÃO APARECE ERRO.

 

ALGUÉM SABE COMO EU POSSO ENCONTRAR ESSE ERRO.

 

JÁ FIZ UMA REVISÃO E NADA....

 

 

POR FAVOR GALERA ME AJUDEM AI....

 

O MEU SITE É ESTE: Bate Papo Formosa

 

Eu já agradeço desde já a todos aqui q ajudam a nós usuários...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Assim olha como eu falei o erro não aparece, mais é assim toda vez que entra mais de 6 pessoas na sala depois de um tempo, o site sai do ar e todos os outros deste provedor tbm, assim eu recebi a informação que meu site este usando 1 Gb de banda, e ele que esta parando o servidor toda hora.

 

 

este é o que imprime as mensagens na sala.

 

CODE
<?

include_once("../../bpr/batepapo/config.php");

include_once("../../bpr/batepapo/global.php");

include_once("../../bpr/batepapo/biblioteca/tbs_class.php");

$banco = new chat;

 

$banco->dados($_GET['uid']);

if($banco->block($_GET['uid'])){

$target="vai();";

}else{

$target="";

}

 

 

if (empty($_SESSION['date'])) {

$_SESSION['date'] = 0;

}

if (empty($_SESSION['header']) OR $_SESSION['header']!= $_GET['uid']) {

$arquivo = "templates/".$banco->config['modelo']['val']."/principal.htm";

$header = fopen($arquivo, "r");

$lido = fread($header, filesize($arquivo));

fclose($header);

$limpa = addslashes($lido)."\n\n";

$limpa = str_replace("\t", "", $limpa);

$limpa = str_replace("\r", "", $limpa);

$limpa = str_replace("\n", "\\n", $limpa);

$inicio = $limpa;

$_SESSION['header'] = $_GET['uid'];

}

$model = new clsTinyButStrong ;

$model->LoadTemplate("./templates/".$banco->config['modelo']['val']."/inferior.htm") ;

$msgs = $banco->msgs();

$total = count($msgs);

$cont = $banco->cont("TODOS");

$str = $ext = "";

$str .= (!empty($inicio)) ? $inicio : "";

 

for ($i = "0"; $i < $total; $i++) {

$rem = $msgs[$i]["rem"];

$dest = $msgs[$i]["dest"];

$tipo = $msgs[$i]["tipo"];

 

 

$mensagem = addslashes($msgs[$i]["msg"]);

$som = $msgs[$i]["som"];

if (empty($_SESSION['ignora'][$rem]) && empty($_SESSION['ignora'][$rem])) {

 

$sounds = "beep";

 

$chamar = ($dest == $banco->nome) ? '<span style=display:none;>"+Sounds("'.$sounds.'")+"</span>' : "";

 

 

if($tipo == "res"){

if($rem == $banco->nome){

$para = ($dest == $banco->nome) ? '

 

background:#E2E2E2;

border:#CCCCCC 1px solid;

padding:3px;

margin:6px 6px 6px 4px;' : "

 

background:#F3F3F3;

border:#CCCCCC 1px solid;

padding:3px;

margin:6px 6px 6px 4px;

";

}else{

$para = ($dest == $banco->nome) ? '

 

background:#E2E2E2;

border:#CCCCCC 1px solid;

padding:3px;

margin:6px 6px 6px 4px;' : "

 

padding:3px;

margin:6px 6px 6px 4px;

";

}

}else{

if($rem == $banco->nome){

$para = ($dest == $banco->nome) ? '

 

background:#F3F3F3;

border:#CCCCCC 1px solid;

padding:3px;

margin:6px 6px 6px 4px;' : "

 

background:#F3F3F3;

border:#CCCCCC 1px solid;

padding:3px;

margin:6px 6px 6px 4px;

";

}else{

$para = ($dest == $banco->nome) ? '

 

background:#E2E2E2;

border:#CCCCCC 1px solid;

padding:3px;

margin:6px 6px 6px 4px;' : "

 

padding:3px;

margin:6px 6px 6px 4px;

";

}

}

 

 

$codigo = '<div style=\"'.$para.'\">'.$mensagem.'<span style=display:none;>"+PlaySound("'.$som.'")+"</span>'.$chamar.'</div>'."\n";

$codigo = str_replace("\t", "", $codigo);

$codigo = str_replace("\r", "", $codigo);

$codigo = str_replace("\n", "\\n", $codigo);

$str .= $codigo;

}

if (empty($inicio) && ($som == "entra" OR $som == "saida" OR $cont != $_SESSION['cont'])) {

$ext .= "window.parent.nomes.location.reload();\n";

$_SESSION['cont'] = $cont;

}

}

$banco->atualiza();

$refresh=50*$banco->config['refresh']['val'];

$model->Show();

?>

 

 

 

 

 

este é o que esta com todas as funções

 

CODE
<?php

 

session_start();

 

 

class chat {

 

var $dbh;

var $nome;

var $sala;

var $cor;

var $nomesala;

var $config;

 

function chat() {

$this->dbh = mysql_connect($GLOBALS['host'], $GLOBALS['user'], $GLOBALS['pass']) or die ("ERRO ao se conectar a base de dados");

mysql_select_db($GLOBALS['db'], $this->dbh) or die ("ERRO ao se selecionar a base de dados");

//Armazena as configurações em uma sessão ,diminuindo as consultas ao banco de dados

if(empty($_SESSION['config'])){

$consulta = mysql_query('SELECT * FROM config');

while($row= mysql_fetch_array($consulta,MYSQL_ASSOC)){

if($row['config_name'] != 'cores'){

$this->config[$row['config_name']]['val'] = $row['config_value'];

$this->config[$row['config_name']]['desc'] = $row['config_desc'];

}else{

$list=explode(',',$row['config_value']);

for($i=0;$i < sizeof($list);$i++){

$partes = explode(':',$list[$i]);

$cores[$partes[0]] = $partes[1];

}

$this->config[$row['config_name']]['val'] = $cores;

$this->config[$row['config_name']]['desc'] = $row['config_desc'];

}

}

mysql_free_result($consulta);

$_SESSION['config'] = $this->config;

}else{

$this->config = $_SESSION['config'];

}

}

 

 

function localizaurl($pasta = '0') {

$arquivo = substr($_SERVER['PHP_SELF'], "0", strrpos($_SERVER['PHP_SELF'], "/"));

$pastas = ($pasta == '0') ? substr($arquivo, "0", strrpos($arquivo, "/")) : $arquivo;

$local = "http".((isset($_SERVER['HTTPS'])) ? "s" : "")."://".$_SERVER['SERVER_NAME'].":".$_SERVER['SERVER_PORT'].$pastas;

return $local;

}

 

 

function dados($uid) {

if(empty($_SESSION['configuser'])){

$consulta = mysql_query("SELECT S.nome AS nomesala, U.nome, U.sala, U.cor FROM users U, salas S WHERE (S.cod=U.sala && U.uid='$uid') LIMIT 1;", $this->dbh);

$row = mysql_fetch_array($consulta);

mysql_free_result($consulta);

$_SESSION['configuser'] = $row;

}

$this->sala = $_SESSION['configuser']["sala"];

$this->nome = $_SESSION['configuser']["nome"];

$this->cor = $_SESSION['configuser']["cor"];

$this->nomesala = $_SESSION['configuser']["nomesala"];

}

 

function block($uid) {

$consulta = mysql_query("SELECT COUNT(*) AS total FROM users WHERE uid='$uid';", $this->dbh);

$row = mysql_fetch_array($consulta);

mysql_free_result($consulta);

$ip = getenv("REMOTE_ADDR");

$consulta2 = mysql_query("SELECT COUNT(*) AS total FROM block WHERE ip='$ip'", $this->dbh);

$row2 = mysql_fetch_array($consulta2);

mysql_free_result($consulta2);

if ($row["total"] == "0" OR $row2["total"] > "0") {

return true;

}else{

return false;

}

}

 

function cont($nome) {

$sql = ($nome == "TODOS") ? "sala='".$this->sala."'" : "(nome='$nome' && sala='".$this->sala."')";

$consulta = mysql_query("SELECT COUNT(*) AS total FROM users WHERE $sql;", $this->dbh);

$row = mysql_fetch_array($consulta);

mysql_free_result($consulta);

return $row["total"];

}

 

 

function salas($val=0) {

$lista = array();

$i = "0";

if($val == 0){

$consulta = mysql_query("SELECT * FROM salas WHERE (cod != '".$this->sala."') ORDER BY nome ASC;", $this->dbh);

}else{

$consulta = mysql_query("SELECT * FROM salas WHERE (cod = '".$this->sala."') ORDER BY nome ASC;", $this->dbh);

}

while ($row = mysql_fetch_array($consulta)) {

$this->sala = $row["cod"];

$lista[$i]["cont"] = $this->cont("TODOS");

$lista[$i]["cod"] = $row["cod"];

$lista[$i]["desc"] = $row["descr"];

$lista[$i]["nome"] = $row["nome"];

$i++;

}

mysql_free_result($consulta);

return $lista;

}

 

function removeuser() {

$str = $this->perfil($this->nome)." sai da sala ...";

$this->addmsgs($str, $this->nome, "TODOS", "saida", "pub");

mysql_query("DELETE FROM users WHERE (nome='".$this->nome."' && sala='".$this->sala."') LIMIT 1;", $this->dbh);

}

 

function perfil($nome, $tipo = "este") {

if ($nome != "TODOS" && $this->cont($nome) > "0") {

$consulta = mysql_query("SELECT nome, cor FROM users WHERE (nome='$nome' && sala='".$this->sala."') LIMIT 1;", $this->dbh);

$row = mysql_fetch_array($consulta);

mysql_free_result($consulta);

if ($tipo == 'este') {

$tamanho = @GetImageSize($imagem);

$perfil = '<font color="'.$row["cor"].'"><b>'.$row["nome"].'</b></font>';

} else {

$perfil = $row["nome"];

}

} else {

$perfil = "TODOS";

}

return $perfil;

}

 

function codlista() {

$i = "0";

$nomes=array();

$consulta = mysql_query("SELECT nome, uid FROM users WHERE sala='".$this->sala."'ORDER BY nome ASC;", $this->dbh);

while ($row = mysql_fetch_array($consulta)) {

$nomes[$i]["nome"] = $row["nome"];

$nomes[$i]["cod"] = $row["uid"];

$i++;

}

mysql_free_result($consulta);

return $nomes;

}

 

function adduser($uid){

unset($_SESSION['config']);

unset($_SESSION['configuser']);

$ip = getenv("REMOTE_ADDR");

$this->sala = $_GET['sala'];

$this->cor = (empty($_SESSION['cor'])) ? "#000000" : $_SESSION['cor'];

$this->nome = (empty($_SESSION['apelido'])) ? "Anônimo" : $_SESSION['apelido'];

if ($this->sala == ""){

$msg = "Coloque uma Sala válida";

$voltar = false;

} else if ($this->cont($this->nome) > "0") {

$msg = "Já existe esse Nome na Sala";

$voltar = false;

} else if ($this->cont("TODOS") >= $this->config['limite']['val']) {

$msg = "Essa Sala está Lotada - Máximo: ".$this->config['limite']['val'];

$voltar = false;

} else {

mysql_query("INSERT INTO users (nome, cor, date, sala, uid, ip) VALUES ('".$this->nome."', '".$this->cor."', NOW(), '".$this->sala."', '$uid', '$ip');", $this->dbh);

$this->dados($uid);

$str = $this->perfil($this->nome)." entra na sala...";

$this->addmsgs($str, $this->nome, "TODOS", "entra", "pub");

$voltar = true;

}

if (isset($msg)) {

$url = $this->localizaurl('1');

header("Location: $url/index.php?msg=".urlencode($msg));

exit();

}

return $voltar;

}

 

function troca($uid) {

unset($_SESSION['config']);

unset($_SESSION['configuser']);

if ($this->nome != $_POST['apelido'] && $this->cont($_POST['apelido'] ) == "0") {

$_SESSION["cor"] = (isset($_POST["cor"]))? $_POST["cor"] : "#000000";

$_SESSION["apelido"] = (isset($_POST["apelido"]))? $_POST["apelido"] : "";

$antigo = $this->perfil($this->nome);

mysql_query("UPDATE users SET nome='$_POST[apelido]', cor='$_POST[cor]' WHERE uid='$uid' LIMIT 1;", $this->dbh);

$str = $antigo." troca o perfil para ".$this->perfil($_POST['apelido'] );

$this->addmsgs($str, $_POST['apelido'] , "TODOS", "entra", "pub");

$voltar = true;

} else {

$voltar = false;

}

return $voltar;

}

 

function trocasala($uid) {

unset($_SESSION['config']);

unset($_SESSION['configuser']);

$old = $this->sala;

$this->sala = $_POST['sala'];

$cont = $this->cont("TODOS");

if (($cont < $this->config['limite']['val']) && ($this->cont($this->nome) == "0")) {

mysql_query("UPDATE users SET sala='".$this->sala."' WHERE uid='$uid' LIMIT 1;", $this->dbh);

$this->dados($uid);

$str = $this->perfil($this->nome)." entra na sala...";

$this->addmsgs($str, $this->nome, "TODOS", "entra", "pub");

$str = $this->perfil($this->nome)." sai da sala...";

$this->sala = $old;

$this->addmsgs($str, $this->nome, "TODOS", "saida", "pub");

$this->sala = $_POST['sala'];

} else {

$this->sala = $old;

$str = "<b>Mensagem do Sistema:</b> A sala está Lotada ou o Nome já existe.";

$this->addmsgs($str, $this->nome, $this->nome, "nada", "res");

}

}

 

function addmsgs($str, $rem, $dest, $som, $tipo) {

mysql_query("INSERT INTO msg (msg, date, rem, dest, som, tipo, sala) VALUES ('$str', NOW(), '$rem', '$dest','$som','$tipo', '".$this->sala."');", $this->dbh);

mysql_query("INSERT INTO logmsg (msg, date, rem, dest, som, tipo, sala) VALUES ('$str', NOW(), '$rem', '$dest', '$som', '$tipo', '".$this->sala."');", $this->dbh);

}

 

function msgs() {

$i = "0";

$msgs=array();

$consulta = mysql_query("SELECT * FROM msg WHERE ((rem='".$this->nome."' OR dest='".$this->nome."' OR tipo='pub') && date > '$_SESSION[date]' && sala='".$this->sala."') ORDER BY date ASC;", $this->dbh);

while ($row = mysql_fetch_array($consulta)) {

$msgs[$i]["msg"] = $row["msg"];

$msgs[$i]["tipo"] = $row["tipo"];

$msgs[$i]["som"] = $row["som"];

$msgs[$i]["dest"] = $row["dest"];

$msgs[$i]["rem"] = $row["rem"];

$_SESSION['date'] = $row["date"];

$i++;

}

mysql_free_result($consulta);

return $msgs;

}

 

function logmsgs() {

$i = "0";

$msgs=array();

$consulta = mysql_query("SELECT * FROM logmsg WHERE sala='".$this->sala."' ORDER BY date DESC;", $this->dbh);

while ($row = mysql_fetch_array($consulta)) {

$msgs[$i]["msg"] = $row["msg"];

$msgs[$i]["dest"] = $row["dest"];

$msgs[$i]["rem"] = $row["rem"];

$msgs[$i]["data"] = $row["date"];

$i++;

}

mysql_free_result($consulta);

return $msgs;

}

 

function atualiza() {

mysql_query("DELETE FROM msg WHERE (date < DATE_SUB(NOW(), INTERVAL ".$this->config['purge']['val']." SECOND));", $this->dbh);

mysql_query("DELETE FROM users WHERE (date < DATE_SUB(NOW(), INTERVAL ".$this->config['purge']['val']." SECOND));", $this->dbh);

mysql_query("UPDATE users SET date=NOW() WHERE (nome='".$this->nome."' && sala='".$this->sala."');", $this->dbh);

}

 

function criasala($nome, $desc) {

srand((double)$GLOBALS['tempo']*1000000);

$uid = md5(uniqid(rand(), true));

mysql_query("INSERT INTO salas (nome, descr, cod, date) VALUES ('$nome', '$desc', '$uid', NOW())", $this->dbh);

}

 

function removesala($cod) {

mysql_query("DELETE FROM salas WHERE cod='$cod' LIMIT 1;", $this->dbh);

}

 

function removelogsala($cod) {

mysql_query("DELETE FROM logmsg WHERE sala='$cod';", $this->dbh);

}

 

function blockuser($uid) {

$consulta = mysql_query("SELECT nome, ip FROM users WHERE uid='$uid' LIMIT 1;", $this->dbh);

$row = mysql_fetch_array($consulta);

mysql_free_result($consulta);

mysql_query("INSERT INTO block (name, ip, data) VALUES ('$row[nome]', '$row[ip]', NOW());", $this->dbh);

}

 

function adv() {

$consulta = mysql_query("SELECT COUNT(*) AS total FROM adv;", $this->dbh);

$row = mysql_fetch_array($consulta);

mysql_free_result($consulta);

if ($this->config['assistente']['val'] != "0" && $row["total"] > "0") {

$consulta2 = mysql_query("SELECT COUNT(*) AS total FROM salas WHERE (cod='".$this->sala."' && date < DATE_SUB(NOW(), INTERVAL ".($this->config['assistente']['val']*150)." SECOND));", $this->dbh);

$row2 = mysql_fetch_array($consulta2);

mysql_free_result($consulta2);

if ($row2["total"] != "0") {

$consulta3 = mysql_query("SELECT * FROM adv ORDER BY RAND() LIMIT 1;", $this->dbh);

$row3 = mysql_fetch_array($consulta3);

mysql_free_result($consulta3);

$str = $row3["msg"];

$this->addmsgs($str, "sistema", "todos", "nada", "pub");

mysql_query("UPDATE salas SET date=NOW() WHERE cod='".$this->sala."' LIMIT 1;", $this->dbh);

}

}

}

 

function addadv($msg) {

mysql_query("INSERT INTO adv (msg) VALUES ('$msg');", $this->dbh);

}

 

function listaadv(){

$i = "0";

$msgs=array();

$consulta = mysql_query("SELECT * FROM adv ORDER BY cod DESC;", $this->dbh);

while ($row = mysql_fetch_array($consulta)) {

$msgs[$i]["cod"] = $row["cod"];

$msgs[$i]["msg"] = $row["msg"];

$i++;

}

mysql_free_result($consulta);

return $msgs;

}

 

function removeadv($cod) {

mysql_query("DELETE FROM adv WHERE cod='$cod' LIMIT 1;", $this->dbh);

}

 

function ip() {

$i = "0";

$ip=array();

$consulta = mysql_query("SELECT * FROM block ORDER BY data ASC;", $this->dbh);

while ($row = mysql_fetch_array($consulta)) {

$ip[$i]["name"] = $row["name"];

$ip[$i]["ip"] = $row["ip"];

$ip[$i]["date"] = $row["data"];

$i++;

}

mysql_free_result($consulta);

return $ip;

}

 

function removeip($cod) {

mysql_query("DELETE FROM block WHERE ip='$cod' LIMIT 1;", $this->dbh);

}

 

function criaradmin($nome, $login, $senha) {

$senha_encode = md5($senha);

mysql_query("INSERT INTO auth (login, pwd, name) VALUES ('$login', '$senha_encode', '$nome');", $this->dbh);

mysql_query("INSERT INTO privs (login, priv) VALUES ('$login', 'master');", $this->dbh);

}

 

 

function admins() {

$i = "0";

$consulta = mysql_query("SELECT * FROM auth ORDER BY name ASC;", $this->dbh);

while ($row = mysql_fetch_array($consulta)) {

$adm[$i]["name"] = $row["name"];

$adm[$i]["login"] = $row["login"];

$i++;

}

mysql_free_result($consulta);

return $adm;

}

 

function removeadmin($cod) {

mysql_query("DELETE FROM auth WHERE login='$cod' LIMIT 1;", $this->dbh);

mysql_query("DELETE FROM privs WHERE login='$cod' LIMIT 1;", $this->dbh);

}

 

 

 

function gravaconfig($configs) {

unset($_SESSION['config']);

foreach ($configs as $key => $value){

if($key != 'cores'){

mysql_query("UPDATE `config` SET `config_value` = '$value' WHERE `config_name` = '$key' LIMIT 1 ;",$this->dbh);

}else{

$corescf = explode("\n", $value);

$cor = array();

foreach ($corescf as $valores) {

$valores = trim($valores);

if ($valores != "") {

$cor[] = $valores;

}

}

$value=join(',',$cor);

mysql_query("UPDATE `config` SET `config_value` = '$value' WHERE `config_name` = '$key' LIMIT 1 ;",$this->dbh);

}

}

}

//--------------------------------------------------------

} // End class.chat

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenho a forte impressão de que o banco de dados está estressando o servidor, que, como não possui quotas de recursos, permite que seu site pare a máquina.

Neste caso, você poderia monitor com o comando top e descrobrir que seria o "vilão".

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenho a forte impressão de que o banco de dados está estressando o servidor, que, como não possui quotas de recursos, permite que seu site pare a máquina.

Neste caso, você poderia monitor com o comando top e descrobrir que seria o "vilão".

 

Bom não sou leigo nisso, mas poderia me explicar melhor como fazer esse monitoramento com o comando top.

 

Me passar os procedimentor.

 

Valeu ai pela força.

Compartilhar este post


Link para o post
Compartilhar em outros sites

No console, digite :

top
Se não tiver acesso ao console, faça um script pra te mostrar, assim:

<?php
echo '<pre>';
passthru("top 2>&1");
echo '<pre>';
?>
Com este script você vai poder monitorar o que está acontecendo no servidor.

Compartilhar este post


Link para o post
Compartilhar em outros sites

No console, digite :

top
Se não tiver acesso ao console, faça um script pra te mostrar, assim:

<?php
echo '<pre>';
passthru("top 2>&1");
echo '<pre>';
?>
Com este script você vai poder monitorar o que está acontecendo no servidor.

 

Brother desculpe mais criei o arquivo testei lá e não voltou nada a página ficou branco...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Posta o que apareceu no código fonte DO BROWSER.

Se não aparecer nada ainda, coloca no inicio do arquivo:

ini_set('display_errors', 'On');
error_reporting(E_ALL);
Posta ai as conclusões.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Posta o que apareceu no código fonte DO BROWSER.

Se não aparecer nada ainda, coloca no inicio do arquivo:

ini_set('display_errors', 'On');
error_reporting(E_ALL);
Posta ai as conclusões.

 

 

Coloquei o código acima no inicio do arquivo e continua branco.

 

NO CÓDIGO FONTE APARECE:

 

CODE

 

<pre><pre>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

O servidor é Windows?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpe. Imaginei que era Linux, por isso não está dando certo.

Bom, não sei se há alguma outra forma de se monitorar o acesso num Windows que não seja pela interface gráfica.

Neste caso, seria melhor você entrar em contato com a hospedagem.

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.