Jump to content
Fórum Script Brasil

RodrigoGomes

Membros
  • Content Count

    364
  • Joined

  • Last visited

Community Reputation

0 Neutro

5 Followers

About RodrigoGomes

  • Rank
    Rodrigo
  • Birthday 11/13/1990

Contatos

  • Website URL
    http://
  • ICQ
    0

Perfil

  • Gender
    Male
  • Location
    Espirito Santo
  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. algum moderador pode mover para repositório de scripts?
  13. alguma opinião a respeito do script ou dica?
  14. 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!'; } ?>
×
×
  • Create New...