Ir para conteúdo
Fórum Script Brasil

RodrigoGomes

Membros
  • Total de itens

    357
  • Registro em

  • Última visita

Tudo que RodrigoGomes postou

  1. Gostaria de uma avaliação minuciosa para o site www.l2ouro.com. - SEO - Design - Velocidade - Conteúdo - Programação Visite: http://l2ou.ro Aceito críticas e sugestões.
  2. Bom, aparentemente isso deve funcionar.. mas infelizmente PCNTL não é suportado em windows e meu apache esta em um windows. andei pensando, e bolei uma forma de fazer isso. é mais complexa porém menos demorada que a original: eu criaria um arquivo "verificar_porta.php" que verifica apenas uma porta, após verificar ele colocaria a porta no banco de dados se ela tivesse aberta, dentro desse meu arquivo eu colocaria "ignore_user_abort(true);" que ignora se a conexão for abortada. Depois faria outro arquivo (verificar.php), ele chamaria o "verificar_porta.php" desta forma: $host="localhost"; if ($fp = @fsockopen($host, 80, $errno, $errstr, 2)) { $out = "POST /verificar_porta.php HTTP/1.1\r\n"; $out .= "Host: $host\r\n"; $out .= "Connection: Close\r\n\r\n"; $out .= "ip=123.456.789&porta=20"; fwrite($fp, $out); fclose($fp); } Esse código ficara dentro de um for, até completar as 6 mil portas. Ele conecta e aborta a conexão sem esperar, deixando o script "verificar_porta.php" rodando em background. Por fim, bastava o script pegar o resultado do banco de dados e exibir.
  3. encontrei uma forma de criar threads no php utilizando PCNTL, ainda não testei, vou estudar o código e tentar usa-lo. Aqui também tem um post interessante: http://blog.motane.lu/2009/01/02/multithreading-in-php/
  4. Boa noite amigos(as), Estou desenvolvendo um script que verifica uma série de portas de um IP, ele apenas faz a requisição para saber se ela esta "aberta" ou "fechada", por exemplo verificar portas de 20 a 6000 no IP 123.456.789. Beleza, ele funciona perfeitamente, excerto por um motivo: A demora. Usando fsockopen() cada porta precisa de no mínimo 2 segundos de espera para verificar se ela esta fechada (se estiver aberta é rápido), então imagina 6 mil portas, estando apenas 3/4 abertas? É uma demora muito grande. Eu pesquisei em toda parte e não achei nada sobre o que quero fazer, que é testar as portas simultaneamente. Exemplo, enquanto a porta 20 esta sendo verificada a porta 21 começava a ser verificava também, depois 22, e assim por diante. Alguém sabe se existe uma forma de fazer isso? Eu estou precisando muito.
  5. Eu gostaria de saber qual requisição seria mais rápida para o meu site entre o banco de dados e um arquivo php. Por exemplo, eu tenho um arquivo PHP chamado config.php com alguns valores de configuração dentro dele e dentro da minha index puxo este arquivo. Se eu colocar esses valores dentro de uma conexão mysql e puxar os valores através dela seria mais lento?
  6. Desta forma você terá um único usuário e um único email dentro do sistema. Ou seja um segundo usuário não poderá usar um email já existente assim como não poderão haver dois usuários iguais. se é isto que você quer então esta é o código correto. (Uma dica: Sempre que trabalhar com bancos de dados lembre-se das aulas de teoria de conjuntos que você aprendeu no 1º e 2º graus. "par ordenado" são os indices compostos; "interseção, união, diferença de conjuntos" são os relacionamentos de join, left join, union, etc.) Sim, é assim mesmo que quero. Agora entendo como funciona, obrigado!
  7. desta forma não funciona como quero? CREATE TABLE `usuarios` ( `id` int(20) NOT NULL AUTO_INCREMENT, `login` varchar(16) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL, `email` varchar(100) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL, `senha` varchar(100) COLLATE utf8_bin NOT NULL, `registro` tinyint(1) NOT NULL, `confirmacao` bigint(30) NOT NULL, `data` date NOT NULL, `ip` varchar(100) COLLATE utf8_bin NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `login` (`login`), UNIQUE KEY `email` (`email`) ) ENGINE=MyISAM AUTO_INCREMENT=20986 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
  8. desta forma está correta? Agradeço a ajuda!
  9. Tenho as seguintes tabelas: -- Table "usuarios" DDL CREATE TABLE `usuarios` ( `id` int(20) NOT NULL AUTO_INCREMENT, `login` varchar(16) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL, `email` varchar(100) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL, `senha` varchar(100) COLLATE utf8_bin NOT NULL, `registro` tinyint(1) NOT NULL, `confirmacao` bigint(30) NOT NULL, `data` date NOT NULL, `ip` varchar(100) COLLATE utf8_bin NOT NULL, PRIMARY KEY (`id`,`login`,`email`) ) ENGINE=MyISAM AUTO_INCREMENT=20798 DEFAULT CHARSET=utf8 COLLATE=utf8_bin; E por algum motivo ela esta inserindo campos duplicados em "login" e "email" sem retornar erro algum, mesmo sendo "PRIMARY KEY". Alguém sabe o que isso pode ser?
  10. Bom pessoal, eu estou com um probleminha no meu javascript, acredito que seja coisa boba, porem não estou acostumado com a linguagem e queria uma ajuda. Tenho dois scripts no meu site que não são compatíveis, sozinhos eles trabalham bem, mas quando tento usar os dois ao mesmo tempo eles não funcionam. Um deles é o Jquery, necessário para vários scripts em javascript e o outro é um script de slideshow, eu gostaria de saber o que preciso fazer para que os dois funcionem normalmente? Segue o slideshow: var TINY = {}; function $(i) { return document.getElementById(i) } function $$(e, p) { p = p || document; return p.getElementsByTagName(e) } TINY.slideshow = function (n) { this.infoSpeed = this.imgSpeed = this.speed = 10; this.thumbOpacity = this.navHover = 70; this.navOpacity = 25; this.scrollSpeed = 5; this.letterbox = '#000'; this.n = n; this.c = 0; this.a = [] }; TINY.slideshow.prototype = { init: function (s, z, b, f, q) { s = $(s); var m = $$('li', s), i = 0, w = 0; this.l = m.length; this.q = $(q); this.f = $(z); this.r = $(this.info); this.o = parseInt(TINY.style.val(z, 'width')); if (this.thumbs) { var u = $(this.left), r = $(this.right); u.onmouseover = new Function('TINY.scroll.init("' + this.thumbs + '",-1,' + this.scrollSpeed + ')'); u.onmouseout = r.onmouseout = new Function('TINY.scroll.cl("' + this.thumbs + '")'); r.onmouseover = new Function('TINY.scroll.init("' + this.thumbs + '",1,' + this.scrollSpeed + ')'); this.p = $(this.thumbs) } for (i; i < this.l; i++) { this.a[i] = {}; var h = m[i], a = this.a[i]; a.t = $$('h3', h)[0].innerHTML; a.d = $$('p', h)[0].innerHTML; a.l = $$('a', h)[0] ? $$('a', h)[0].href : ''; a.p = $$('span', h)[0].innerHTML; if (this.thumbs) { var g = $$('img', h)[0]; this.p.appendChild(g); w += parseInt(g.offsetWidth); if (i != this.l - 1) { g.style.marginRight = this.spacing + 'px'; w += this.spacing } this.p.style.width = w + 'px'; g.style.opacity = this.thumbOpacity / 100; g.style.filter = 'alpha(opacity=' + this.thumbOpacity + ')'; g.onmouseover = new Function('TINY.alpha.set(this,100,5)'); g.onmouseout = new Function('TINY.alpha.set(this,' + this.thumbOpacity + ',5)'); g.onclick = new Function(this.n + '.pr(' + i + ',1)') } } if (b && f) { b = $(b); f = $(f); b.style.opacity = f.style.opacity = this.navOpacity / 100; b.style.filter = f.style.filter = 'alpha(opacity=' + this.navOpacity + ')'; b.onmouseover = f.onmouseover = new Function('TINY.alpha.set(this,' + this.navHover + ',5)'); b.onmouseout = f.onmouseout = new Function('TINY.alpha.set(this,' + this.navOpacity + ',5)'); b.onclick = new Function(this.n + '.mv(-1,1)'); f.onclick = new Function(this.n + '.mv(1,1)') } this.auto ? this.is(0, 0) : this.is(0, 1) }, mv: function (d, c) { var t = this.c + d; this.c = t = t < 0 ? this.l - 1 : t > this.l - 1 ? 0 : t; this.pr(t, c) }, pr: function (t, c) { clearTimeout(this.lt); if (c) { clearTimeout(this.at) } this.c = t; this.is(t, c) }, is: function (s, c) { if (this.info) { TINY.height.set(this.r, 1, this.infoSpeed / 2, -1) } var i = new Image(); i.style.opacity = 0; i.style.filter = 'alpha(opacity=0)'; this.i = i; i.onload = new Function(this.n + '.le(' + s + ',' + c + ')'); i.src = this.a[s].p; if (this.thumbs) { var a = $$('img', this.p), l = a.length, x = 0; for (x; x < l; x++) { a[x].style.borderColor = x != s ? '' : this.active } } }, le: function (s, c) { this.f.appendChild(this.i); var w = this.o - parseInt(this.i.offsetWidth); if (w > 0) { var l = Math.floor(w / 2); this.i.style.borderLeft = l + 'px solid ' + this.letterbox; this.i.style.borderRight = (w - l) + 'px solid ' + this.letterbox } TINY.alpha.set(this.i, 100, this.imgSpeed); var n = new Function(this.n + '.nf(' + s + ')'); this.lt = setTimeout(n, this.imgSpeed * 100); if (!c) { this.at = setTimeout(new Function(this.n + '.mv(1,0)'), this.speed * 1000) } if (this.a[s].l != '') { this.q.onclick = new Function('window.location="' + this.a[s].l + '"'); this.q.onmouseover = new Function('this.className="' + this.link + '"'); this.q.onmouseout = new Function('this.className=""'); this.q.style.cursor = 'pointer' } else { this.q.onclick = this.q.onmouseover = null; this.q.style.cursor = 'default' } var m = $$('img', this.f); if (m.length > 2) { this.f.removeChild(m[0]) } }, nf: function (s) { if (this.info) { s = this.a[s]; $$('h3', this.r)[0].innerHTML = s.t; $$('p', this.r)[0].innerHTML = s.d; this.r.style.height = 'auto'; var h = parseInt(this.r.offsetHeight); this.r.style.height = 0; TINY.height.set(this.r, h, this.infoSpeed, 0) } } }; TINY.scroll = function () { return { init: function (e, d, s) { e = typeof e == 'object' ? e : $(e); var p = e.style.left || TINY.style.val(e, 'left'); e.style.left = p; var l = d == 1 ? parseInt(e.offsetWidth) - parseInt(e.parentNode.offsetWidth) : 0; e.si = setInterval(function () { TINY.scroll.mv(e, l, d, s) }, 20) }, mv: function (e, l, d, s) { var c = parseInt(e.style.left); if (c == l) { TINY.scroll.cl(e) } else { var i = Math.abs(l + c); i = i < s ? i : s; var n = c - i * d; e.style.left = n + 'px' } }, cl: function (e) { e = typeof e == 'object' ? e : $(e); clearInterval(e.si) } } }(); TINY.height = function () { return { set: function (e, h, s, d) { e = typeof e == 'object' ? e : $(e); var oh = e.offsetHeight, ho = e.style.height || TINY.style.val(e, 'height'); ho = oh - parseInt(ho); var hd = oh - ho > h ? -1 : 1; clearInterval(e.si); e.si = setInterval(function () { TINY.height.tw(e, h, ho, hd, s) }, 20) }, tw: function (e, h, ho, hd, s) { var oh = e.offsetHeight - ho; if (oh == h) { clearInterval(e.si) } else { if (oh != h) { e.style.height = oh + (Math.ceil(Math.abs(h - oh) / s) * hd) + 'px' } } } } }(); TINY.alpha = function () { return { set: function (e, a, s) { e = typeof e == 'object' ? e : $(e); var o = e.style.opacity || TINY.style.val(e, 'opacity'), d = a > o * 100 ? 1 : -1; e.style.opacity = o; clearInterval(e.ai); e.ai = setInterval(function () { TINY.alpha.tw(e, a, d, s) }, 20) }, tw: function (e, a, d, s) { var o = Math.round(e.style.opacity * 100); if (o == a) { clearInterval(e.ai) } else { var n = o + Math.ceil(Math.abs(a - o) / s) * d; e.style.opacity = n / 100; e.style.filter = 'alpha(opacity=' + n + ')' } } } }(); TINY.style = function () { return { val: function (e, p) { e = typeof e == 'object' ? e : $(e); return e.currentStyle ? e.currentStyle[p] : document.defaultView.getComputedStyle(e, null).getPropertyValue(p) } } }(); pra usa-lo eu utilizo: <script type="text/javascript">//<![CDATA[ $('slideshow').style.display='none'; $('wrapper').style.display='block'; var slideshow=new TINY.slideshow("slideshow"); window.onload=function(){ slideshow.auto=true; slideshow.speed=5; slideshow.link="linkhover"; slideshow.info="information"; slideshow.left="slideleft"; slideshow.right="slideright"; slideshow.scrollSpeed=4; slideshow.spacing=5; slideshow.active="#fff"; slideshow.init("slideshow","image","imgprev","imgnext","imglink"); } //]]> </script> e o jquery se encontra nesta página: http://www.l2ouro.com/lineage2/js/jquery.min.js
  11. RodrigoGomes

    Anti spam..

    sim, grave o IP do usuário junto com o comentário (no banco de dados) e o horário, e no script onde envia o comentário faça uma verificação por IP + a hora atual em comparação com a hora do comentário. outro método é adicionar captcha antes de adicionar um comentário.
  12. RodrigoGomes

    PROXY Detect 2.0

    algum moderador pode mover para repositório de scripts?
  13. RodrigoGomes

    PROXY Detect 2.0

    alguma opinião a respeito do script ou dica?
  14. RodrigoGomes

    PROXY Detect 2.0

    Melhorei um pouco a função e adicionei mais opções de verificação de proxy. PROXY Detection 2.0 <?php function proxy_detect ($null) { $proxyports=array(80,8080,6588,8000,3128,3127,3124,1080,553,554); for ($i = 0; $i <= count($proxyports); $i++) { if(@fsockopen($_SERVER['REMOTE_ADDR'],$proxyports[$i],$errstr,$errno,0.5)){ $sockport=true; } } if( $_SERVER['HTTP_FORWARDED'] || $_SERVER['HTTP_X_FORWARDED_FOR'] || $_SERVER['HTTP_CLIENT_IP'] || $_SERVER['HTTP_VIA'] || $_SERVER['HTTP_XROXY_CONNECTION'] || $_SERVER['HTTP_PROXY_CONNECTION'] || $sockport == true ) { return true; }else{ return false; } } if(proxy_detect($null) == false){ echo 'Nenhum proxy detectado.'; }else{ echo 'Proxy DETECTADO!'; } ?>
  15. RodrigoGomes

    PROXY Detect 2.0

    Bom pessoal, fiz este script que detecta se o usuário esta usando proxy, com 4 tipos de modalidades. Basicamente apenas Elite Proxy (super anônimo proxy) conseguiria passar pelo script. <?php function proxy_detect ($null) { $ip=$_SERVER['REMOTE_ADDR']; if($_SERVER['HTTP_X_FORWARDED_FOR']){ return true; }elseif ($_SERVER['HTTP_VIA']){ return true; }elseif ($_SERVER['HTTP_PROXY_CONNECTION']){ return true; }elseif(@fsockopen($ip,80,$errstr,$errno,0.5)){ return true; }elseif(@fsockopen($ip,8080,$errstr,$errno,0.5)){ return true; }elseif(@fsockopen($ip,6588,$errstr,$errno,0.5)){ return true; }elseif(@fsockopen($ip,8000,$errstr,$errno,0.5)){ return true; }elseif(@fsockopen($ip,3128,$errstr,$errno,0.5)){ return true; }elseif(@fsockopen($ip,3127,$errstr,$errno,0.5)){ return true; }elseif(@fsockopen($ip,3124,$errstr,$errno,0.5)){ return true; }elseif(@fsockopen($ip,1080,$errstr,$errno,0.5)){ return true; }elseif(@fsockopen($ip,553,$errstr,$errno,0.5)){ return true; }elseif(@fsockopen($ip,554,$errstr,$errno,0.5)){ return true; }else{ return false; } } if(proxy_detect($null) == false){ echo 'Nenhum proxy detectado.'; }else{ echo 'Proxy DETECTADO!'; } ?> Recomendo que utilizem apena onde realmente precisa, devido a verificação de cada porta de proxys, ele demora a carregar o script. Se alguém tiver alguma dica de como melhora-lo ou algo que eu esteja esquecendo, por favor, compartilhe. Testando o script: Link: http://www.l2ouro.com/proxy.php Proxys: http://zend2.com/ http://www.webproxyonline.info/ http://bind2.com/ http://www.nedproxy.com/ Abraços! algum moderador após avaliar o script, pode mover para repositório de scripts? obrigado.
  16. descobri que o problema era o INT do mysql, mesmo setando ele para 30 caracteres ele só aceita 11.
  17. se alguém por favor, souber qualquer coisa sobre o erro "Out of range value for column 'confirmacao' at row 1", poste, isso esta me trazendo serios problemas. agradeço desde já!
  18. aproveitando o tópico, gostaria de saber se esta correto obter os valores assim com o MySQLi: $sql = mysqli_query($mysqli_conn,"SELECT * FROM characters WHERE pvpkills > 0 ORDER BY pvpkills DESC LIMIT 5") or die(sql_error(mysqli_error($mysqli_conn),$doc_file)); $sqlrnk = mysqli_num_rows($sql); while ($i <= 5) { $SQLresult = mysqli_fetch_array($sql,MYSQLI_ASSOC); $sqlrnk_char = $SQLresult['char_name']; $sqlrnk_pvp = $SQLresult['pvpkills']; $sqlrnk_acc = $SQLresult['account_name']; $i++; } eu não consegui definir qual valor eu queria com o $i, igual fazia com o mysql comum, porém funciona normalmente.. antigo exemplo: $sqlrnk_char = mysql_result($sql,$i,"char_name"); gostaria de saber se estou fazendo isso corretamente
  19. bom pessoal, eu apliquei meu site para funcionar com o novo MySQLi.. e tudo funciona perfeitamente. Meu site é configurado para me enviar erros por email caso ocorra, e eu estou recebendo "algumas" vezes este erro do MySQL: Out of range value for column 'confirmacao' at row 1 a configuração da tabela é a seguinte: -- Table "usuarios" DDL CREATE TABLE `usuarios` ( `id` int(20) NOT NULL AUTO_INCREMENT, `login` varchar(16) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL, `email` varchar(100) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL, `senha` varchar(16) COLLATE utf8_bin NOT NULL, `registro` int(1) NOT NULL, `confirmacao` int(30) NOT NULL, `data` date NOT NULL, `ip` varchar(100) COLLATE utf8_bin DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=33219 DEFAULT CHARSET=utf8 COLLATE=utf8_bin; caso necessitem, postarei os scripts.. gostaria de saber o que pode criar este erro?
  20. esta é a forma de "centralizar" o conteúdo, com um valor fixo é impossível centralizar.. talvez se eu fizesse o layout de outra forma, com mais divs.. mas sinceramente não imagino como faria isso, parece um problema sem solução.. talvez uma limitação de código..
  21. Estou tendo problemas em centralizar o conteúdo do meu site, aparentemente tudo funciona bem, menos em monitores pequenos. vou tentar explicar, o meu DIV central fica por cima do DIV superior e do DIV inferior quando a área de exibição é menor. e eu gostaria que não ficasse por cima, e a página ficassem com barra de rolagem. fiz uns desenhos pra tentar explicar melhor: Layout Normal, em uma área de exibição grande: Layout em uma área de exibição pequena Layout na forma que eu gostaria que ficasse em uma área de exibição pequena css: #topo{ position: absolute; width:100%; height:80px; background-color: rgba(0,0,0,0.8); min-width:800px; } #rodape{ position: absolute; bottom:0; width:100%; height:50px; background-color: rgba(0,0,0,0.8); min-width:800px; } #conteudo{ position: absolute; left:50%; top:50%; margin:-215px 0 0 -385px; width:770px; height:460px; background-color: rgba(0,0,0,0.8); min-width:770px; border-radius: 10px; } site: www.l2ouro.com --- eu já tentei adiciona min-width:800px / min-height:600px no body e funcionava só a barra de rolagem, ela aparecia porem o conteúdo do site continuava ficando em cima das divs por terem posição absoluta.. alguém sabe o que devo fazer? desde já agradeço!
  22. RodrigoGomes

    Erro função mail()

    isso deve ser corrigido pelo administrador do sistema, se você mudar o ini_set sem ter as configurações corretas do servidor de email não adianta nada, entre em contato com o administrador do sistema.
  23. meu amigo, o script funciona ok, sem erro nenhum, a função sql_error() envia para o meu email qualquer erro no mysql. o problema é não haver erro, e também por ser algo incerto, não é sempre que acontece estas falhas e quando acontece não reporta erro nenhum. o servidor MySQL é um só, porém as bases são diferentes.
  24. http://www.php.net/manual/pt_BR/function.array-pop.php
×
×
  • Criar Novo...