Ir para conteúdo
Fórum Script Brasil

Leo Todeschini

Membros
  • Total de itens

    30
  • Registro em

  • Última visita

Sobre Leo Todeschini

  • Data de Nascimento 12/03/1979

Contatos

  • MSN
    leotodeschini@hotmail.com
  • Website URL
    http://www.todeschini.info
  • ICQ
    23147401

Perfil

  • Interests
    Web:<br>PHP, MySQL, HTML, CSS, DHTML, XML, JAVASCRIPT<br><br>Linguagens:<br>C/C++, ASM,Pascal, Delphi, C++ Builder, Lex/Flex, Yacc/Bison.<br><br>Sist. Operacionais:<br>Linux, FreeBSD, NT/2003Server/XP

Leo Todeschini's Achievements

0

Reputação

  1. Leo Todeschini

    Pdf

    Eu achei este artigo que pode te ajudar!!! Muito simples de entender e o mais legal... usa uma extensão open-source Ahh e de quebra é em português... o que você quer mais Leonardo Todeschini
  2. Leo Todeschini

    Mais Outra Ajuda?

    Bom... vamos lá... fiz um exemplo simples, porém completamente funcional... O formulário de envio pode ser um .php pu um .html, você decide... O código de form.php ou form.html seria: O código acima faz referência a um arquivo chamado sendmail.php, que ai está: Espero ter ajudado... Qualquer dúvida pode dizer!!!! Uma abraço Leonardo Todeschini
  3. Leo Todeschini

    Desafio Php

    Existe outras sim fsphp... Podemos citar funções de casting (conversão de tipo) da mesma linha de intval como: Função: strval Sintaxe: string strval ( mixed var) Objetivo: converte qualquer tipo NÃO string em um string... Ex.: $inteiro = 10; $str = "O resultado é ".$inteiro; Repare que será executado $str = "O resultado é ".strval(10); ou seja $str = "O resultado é "."10"; Outra Função: floatval Sintaxe: float floatval ( mixed var) Objetivo: converte uma variável em float... a mesma filosofia de intval Ex.: $variavel = '122.34343STRING'; $valor_float = floatval ($variavel); print $valor_float; // mostra 122.34343 (Obs.: Código retirado da documentação do PHP) Bom, uma coisa que muitas pessoas não sabem é que pode-se declarar variáveis em PHP, talvez nós não às declaramos por conveniência ou por preguiça (hehehe) ou quem sabe porque o PHP já faz isso pra nós... Vejamos como declarar variáveis em PHP: Sem declarações: $a = 10; // automaticamente essa variável se torna um inteiro, pela atribuição recebida.. $b = 20.48; // a mesma coisa acontece aqui.. pela atribuição a variável se torna um float... $c = $a + $b; // Na soma por questões de precedência... tudo é transformado em float e o resultado obtido em $c é 30.48 Com declarações: settype($a,"integer"); settype($b,"float"); settype($c,"float"); $a = 10; $b = 20.48; $c = $a + $b; Obs.: a vantagem aqui é que sabemos quais são os tipos das variáveis, porém vale lembrar que se $c tivesse sido declarado como um inteiro, tb teríamos um $c float no final.. por respeito a essa precedência de tipos. Nota: Os tipos suportados pelo PHP são: - boolean - integer - float - string - array - object - null //disponível só a partir da versão 4.2.0 do PHP Bom fsphp, acho que está ilustrado mais algumas funções que agem por debaixo dos panos em PHP, espero ter respondido a dúvida e obrigado por se interessar pelo tópico... Abraços Leonardo Todeschini, ou simplesmente Leo
  4. Leo Todeschini

    Desafio Php

    Deixarei minha resposta ao enigma... Bom vamos lá: Antes falarei sobre um tema que discuti com Daniel Kushner o diretor educacional da Zend (Empresa responsável pelo PHP que trabalhamos hj) em um email sobre uma dúvida que tive na função intval, cuja sintaxe é: int intval ( mixed var [, int base]) Bom, essa função é chamada automaticamente quando tentamos realizar uma operação lógica ou aritmética entre inteiros e strings, em especial nas strings, tentando transformar essas em um possível inteiro. O PHP só realiza esse casting (conversão de tipos) por não haver uma definição prévia das variáveis envolvidas num script. Então, se analisando uma situação do tipo: $a = (10=="10"); PHP trataria assim: $a = (10==intval("10")); O resultado disso é mais previsível... seria: $a = (10==10); $a = 1; Até ai tudo bem... mas nossos problemas e dúvidas ainda não se esgotaram.. Como seria o resultado de: $a = (10=="10a"); Ai sim dissecamos o modo de trabalho de intval, pois pensamos em qual seria a lógica no tratamento dessa string? Será que a conversão NÃO seria feita por se tratar dessa string possuir um caracter alpha? Ou trataria somente a parte numérica separadamente? Bem, a resposta é simples. intval lê a matriz unidimensional "10a" e verifica se esta começa com um número.. se sim então procura por números adjacentes até o fim ou até encontrar um alpha. Se encontrar um alpha depois de um número qualquer na posição 0 desconsidera o restante e fica com o início numérico convertido em inteiros. Se a função encontrar um alpha na posição 0 então já encara a string como 0. Interessante isso, porque inval é chamada sem ser mostrada, é chamada automaticamente no sistema interno do PHP. Agora fica fácil de resolver o problema: $a = (10=="10a"); Internamente seria: $a = (10==intval("10a")); Agora sabemos que intval considera o início inteiro e quando encontra o caractere alpha "a" o ignora, assim como ignoriaria tudo que viesse depois, mesmo sendo um número. O resultado então seria: $a = (10==10); ou seja $a=1; outra vez. Outros exemplos de caso: $a = (15=="aeiou15"); intval trataria a string "aeiou15" como "false" ou 0, porque a mesma inicia-se com um alpha.. logo tudo que vem depois foi ignorado... inclusive os caracteres numéricos. Traduzindo seria: $a = (15==0); ou seja $a=0; Outro exemplo: $a = (12=="12b13c14f"); Na solução, a função intval verifica que a posição 0 da string é numérica ai então analisa o que há de números após a posição 0, enquanto houver números esses serão considerados, em nosso caso a posição 0 e 1.. porém o que vem depois é totalmente desconsiderado pelo fato de existir um b na posição 2 da string... mesmo tendo números após a posição 2, todo o resto é desconsiderado. Tento em mãos essas informações.. é simples como 2+2 resolver o enigma, veja: $r = ((($a==$d)+(($a==$d)&&(!$b))+(12==$c))*2); Traduzindo: $r = (((10==intval("10b"))+((10==intval("10b"))&&(!false)+(12==intval("a12")))*2); $r = (((10==10) + ((10==10)&&(true)) + (12==0))*2); $r = (((1)+(1&&1)+(0))*2); $r = (((1)+(1)+(0))*2); $r = ((2)*2); $r = 4; Espero que depois de entender intval, possa fazer sentido a explicação que dei. O problema aqui Não era saber o resultado, e sim entender melhor o funcionamento interno do PHP, para que possamos entender certas armadilhas. Obrigado pela atenção de todos, e espero ter adicionado algum conhecimento a vocês.. Abraços, Leonardo Todeschini
  5. Leo Todeschini

    Desafio Php

    Pessoal... ninguém se aventura? Ou ainda não tiveram tempo de tentar?
  6. Leo Todeschini

    Chmod 777

    me explica uma coisa... você quer mudar essa permissão usando um script php? ou usando um programa? Tenho várias opções pra oferecer... (1) Utilize um utilitário que fiz que se encontra aqui (2) Utilizando um prompt do ms-dos Vá em Iniciar -> Executar -> Escreva command e pressione ok faça os seguintes comandos: ftp www.seudominio.com.br (Obs.: Lógico que seudominio deve ser o nome de teu site... caso não seja .com.br coloque a extensão apropriada) digite o seu login digite sua senha entre no diretório onde está o arquivo que você queira mudar as permissões Ex.: cd public_html/diretorio no diretorio... faça o seguinte quote chmod 0777 nome_do_arquivo.txt pronto.. a permissão foi modificada Nota: Só usei o prompt do ms-dos por saber q é algo que qualquer um tem em seu sistema operacional.. Caso esteja operando um sistema Linux sobre um GUI (Interface gráfica) faça os mesmos passos, porém em um shell de comando.. (pode-se abrir um com o comando ALT-F2 e digitando xterm na tela que aparecerá) (3) Usando um script PHP (Recomendo pela segurança) <?php // Configure as variáveis abaixo $servername = "Nome do seu servidor ftp"; $login = "Login do ftp server"; $senha = "Senha de acesso"; $perm = "0"."PERMISSÃO DESEJADA.. Ex.: 777"; $path = "Caminho de sua pasta ou arquivo Ex.: /public_html/diretorio/arquiv.ext"; $on_error = "Nome de um script de retorno caso aconteça um erro.. "; $on_success "Nome de um script de retorno caso tudo corra bem.." // Não modifique o código abaixo deste comentário se não souber o que está fazendo $ftpcon = @ftp_connect($servername); if (!$ftpcon) { echo "<script>alert('Houve um erro na conexão ftp com o servidor!');</script>"; echo "<meta http-equiv='refresh' content='0; url=$on_error'>"; exit; } else { $ftp_log = ftp_login($ftpcon,$login,$senha); if (!$ftp_log) { echo "<script>alert('Login Inválido!');</script>"; echo "<meta http-equiv='refresh' content='0; url=$on_error'>"; exit; } else { $command = "CHMOD ".$perm." ".$path; if (ftp_site($ftpcon,$command)) { echo "<script>alert('Alteração realizada com sucesso!\\nCaminho: $path\\nNova permissão: $perm');</script>"; echo "<meta http-equiv='refresh' content='0; url=$on_success'>"; exit; } else { echo "<script>alert('Houve um erro na tentativa de modificar as permissões de $path');</script>"; echo "<meta http-equiv='refresh' content='0; url=$on_error'>"; exit; } } ftp_close($ftpcon); } ?> Claro que existe formas de fazer isso utilizando programas como o WSFtp o CuteFTP, 3D-FTP e etc... existem muitos... o que eu quis mostrá-lo é uma visão geral de como fazer isso de várias formas... Espero ter ajudado... []'s Leonardo Todeschini
  7. Leo Todeschini

    Desafio Php

    É exatamente essa a questão... O porque do seguinte: 12 ser diferente de a12 e 10 ser igual a 10b Mas sua resposta não deixa de estar parcialmente correta
  8. Leo Todeschini

    Desafio Php

    Tentem desvendar o mistério do código abaixo! <? // Analise o script abaixo: $a = 10; $b = false; $c = "a12"; $d = "10b"; $r = ((($a==$d)+(($a==$d)&&(!$b))+(12==$c))*2); echo $r; // Pergunta: porque $r no final tem o valor 4? ?>
  9. Amigo, o phptriad mudou de nome, agora existe uma versão nova desta ferramenta chamada Sokkit Dê uma olhada...
  10. Tive esse problema tb... faz assim.. Baixe este pacote ftp://ftp.gnu.org/non-gnu/flex/flex-2.5.4a.tar.gz copie pra uma pasta temporária (Talvez já saiba de tudo isso, só por protocolo mesmo) Ex.: /root/flextmp nesta pasta faça o seguinte Obs.: (Você precisa ser root) tar xfvz flex-2.5.4a.tar.gz cd /flex-2.5.4a ./configure --prefix=/usr/local/flex make make install link /usr/local/flex/bin/flex /usr/bin/flex Pronto.... não terá mais esse problema... visto que o analisador léxico Flex já terá sido instalado, porém aconselho a instalar o Bison tb. O processo de instalação do bison é o mesmo do Flex, e endereço de onde baixá-lo é o seguinte: ftp://ftp.gnu.org/gnu/bison/bison-2.0.tar.gz Obs.: Bison é um analisador semântico que trabalha em conjunto ao Flex. Espero ter ajudado!
  11. Leo Todeschini

    Header (resolvido)

    Você pode usar o seguinte: <meta http-equiv='refresh' content='0; url=urlqualquer.php'> Modifique o valor 0 pelo número de segundos que você deseja esparar pelo redirecionamento e urlqualquer.php pela url da sua escolha
  12. É simples, você está violando a chave primária, ou seja, está tentando inserir um registro que já existe nesta tabela!
  13. Obrigado pela ajuda grande Fabyo. Estou ai às ordens tb se precisar.
  14. Cecília, posso te ajudar nesse problema, usando recursos simples do PHP. Caso tenha interesse, me encontre em leotodeschini@hotmail.com (MSN)
  15. Se você puder mandar essa base de dados pra mim ficaria muito agradecido. Você pode enviar para os seguintes emails leotodeschini@gmail.com leo@todeschini.info Muito Obrigado Estou no MSN em leotodeschini@hotmail.com
×
×
  • Criar Novo...