Ir para conteúdo
Fórum Script Brasil

lucke

Membros
  • Total de itens

    236
  • Registro em

  • Última visita

Posts postados por lucke

  1. Olá!

    Estou desenvolvendo uma aplicação de chat, porém sem necessidade de servidor, isto é, uma aplicação estilo P2P, em que cada cliente conecte à outro diretamente. Tenho dúvidas de como proceder, pesquisei alguns exemplos, porém não entendi muito bem... Percebi também que seria melhor usar UDP ao invés de TCP nesse caso, isso também procede? Se puderem me dar uma luz com alguns códigos de exemplo, já me ajudaria bastante para uma futura adaptação. 

  2. Olá!

    Fiz um servidor FTP usando o IdFtp e o mesmo funciona perfeito localmente. Mas quando ativo para conexões externas, retorna esse erro em qualquer client usado: "Data port can only be used by the same IP address used by the control connection". Minha net vem de um modem/roteador, e uso endereço no-ip como host. No modem já está redirecionado a porta, tanto é que o client chega a conectar e a logar, mas na hora do comando de listar diretórios, aborta a conexão e retorna aquele erro. Alguém conhece alguma solução?

  3. Olá!

    Estou desenvolvendo um certo programa e meu problema é o seguinte:

    Preciso criar um "texto" dinamicamente e depois passar para um memo. Crio o Stringlist normalmente e dentro de um laço vou adicionando o texto que quero (tudo dentro de uma thread, pra não travar a aplicação), e ao finalizar o texto, passo todo o conteúdo da stringlist pro memo. O problema, é que o texto na versão final já dentro do memo fica nesse "formato":

     

    palavra1

    palavra2

    palavra3

     

    E quero que o texto fique "corrido", desse jeito: 

    palavra1 palavra2 palavra3

     

    Sei que o próprio nome da classe já indica que devido a seu formato ser em "lista", a cada conteúdo adicionado, ocorre a "quebra de linha"... Mas eu precisaria desse texto no formato corrido... Daria alguma sugestão, alguma outra classe sem ser TStringList pra criação de texto temporário? Rascunho do meu código:

    procedure Add;
    var
    i: Integer;
    Texto: TStringList;
    begin
    Texto:= TStringList.Create;
     for i:= 0 to 100 do
      begin
        Texto.text:=Texto.Text+'palavra'+IntToStr(i);
      end;
    MemoTexto.text:= Texto.text;
    Texto.Free;
    end;  

    Dsd já, obrigado!

  4. Olá!

    O cálculo de porcentagem é simples no PHP.Veja os exemplos:

    Ex: 1 - Um produto com valor de R$ 178,00. Quanto fica um desconto de 15%? Veja o código em PHP:

    $valor = 178.00; // valor original
    $percentual = 15.0 / 100.0; // 15%
    $valor_final = $valor + ($percentual * $valor);
    
    echo "O valor final do produto é: " . $valor_final;
    
    Ex: 3 - Em um concurso de perguntas e respostas, um jovem acertou 72 das 90 perguntas apresentadas. Qual foi a porcentagem de acertos? E a porcentagem de erros? Veja o código em PHP:
    $perguntas = 90;
    $acertos = 72;
    
    echo "Porcentagem de acertos: " .
    (($acertos / $perguntas) * 100) . "%" . "
    ";
    
    // O resultado será 204,70
    

    Tem uma página que explica bem sobre porcentagens no php, inclusive tirei os exemplos acima, dessa página.Veja clicando aqui.

    Flws!

  5. Olá a todos!

    Pessoal, meu problema é o seguinte...

    Como alterar o ícone de um executável feito no delphi?Não usando o menu da própria IDE, mas sim, por código?

    Procurei na net, e achei este código:

    procedure UpdateIcons(const FileName, IcoFileName: String);
    type
      PIcoItemHeader = ^TIcoItemHeader;
      TIcoItemHeader = packed record
        Width: Byte;
        Height: Byte;
        Colors: Byte;
        Reserved: Byte;
        Planes: Word;
        BitCount: Word;
        ImageSize: DWORD;
      end;
      PIcoItem = ^TIcoItem;
      TIcoItem = packed record
        Header: TIcoItemHeader;
        Offset: DWORD;
      end;
      PIcoHeader = ^TIcoHeader;
      TIcoHeader = packed record
        Reserved: Word;
        Typ: Word;
        ItemCount: Word;
        Items: array [0..MaxInt shr 4 - 1] of TIcoItem;
      end;
      PGroupIconDirItem = ^TGroupIconDirItem;
      TGroupIconDirItem = packed record
        Header: TIcoItemHeader;
        Id: Word;
      end;
      PGroupIconDir = ^TGroupIconDir;
      TGroupIconDir = packed record
        Reserved: Word;
        Typ: Word;
        ItemCount: Word;
        Items: array [0..MaxInt shr 4 - 1] of TGroupIconDirItem;
      end;
      
    function GetResLang(hModule: Cardinal; lpType, lpName: PAnsiChar; var wLanguage: Word): Boolean;
    function EnumLangs(hModule: Cardinal; lpType, lpName: PAnsiChar; wLanguage: Word; lParam: Integer): BOOL; stdcall;
    begin
      PWord(lParam)^ := wLanguage;
      Result := False;
    end;
    begin
      wLanguage := 0;
      EnumResourceLanguages(hModule, lpType, lpName, @EnumLangs, Integer(@wLanguage));
      Result := True;
    end;
    
      function IsIcon(P: Pointer; Size: Cardinal): Boolean;
      var
        ItemCount: Cardinal;
      begin
        Result := False;
        if Size < Cardinal(SizeOf(Word) * 3) then
          Exit;
        if (PChar(P)[0] = 'M') and (PChar(P)[1] = 'Z') then
          Exit;
        ItemCount := PIcoHeader(P).ItemCount;
        if Size < Cardinal((SizeOf(Word) * 3) + (ItemCount * SizeOf(TIcoItem))) then
          Exit;
        P := @PIcoHeader(P).Items;
        while ItemCount > Cardinal(0) do begin
          if (Cardinal(PIcoItem(P).Offset + PIcoItem(P).Header.ImageSize) < Cardinal(PIcoItem(P).Offset)) or
             (Cardinal(PIcoItem(P).Offset + PIcoItem(P).Header.ImageSize) > Cardinal(Size)) then
            Exit;
          Inc(PIcoItem(P));
          Dec(ItemCount);
        end;
        Result := True;
      end;
    
    var
      H: THandle;
      M: HMODULE;
      R: HRSRC;
      Res: HGLOBAL;
      GroupIconDir, NewGroupIconDir: PGroupIconDir;
      I: Integer;
      wLanguage: Word;
      F: TFileStream;
      Ico: PIcoHeader;
      N: Cardinal;
      NewGroupIconDirSize: LongInt;
    begin
      if Win32Platform <> VER_PLATFORM_WIN32_NT then
        ShowMessage('Somete Plataformas NT');
      Ico := nil;
      try
        F := TFileStream.Create(IcoFileName, FmOpenRead);
        try
          N := F.Size;
          if Cardinal(N) > Cardinal($100000) then  { sanity check }
            ShowMessage('Tamanho de Icone não suportado');
          GetMem(Ico, N);
          F.ReadBuffer(Ico^, N);
        finally
          F.Free;
        end;
        if not IsIcon(Ico, N) then
          ShowMessage('Formato de icone desconhecido');
        H := BeginUpdateResource(PChar(FileName), False);
        if H = 0 then
          ShowMessage('Falhou no Passo (1)');
        try
          M := LoadLibraryEx(PChar(FileName), 0, LOAD_LIBRARY_AS_DATAFILE);
          if M = 0 then
            ShowMessage('Falhou no Passo (2)');
          try
            R := FindResource(M, 'MAINICON', RT_GROUP_ICON);
            if R = 0 then
              ShowMessage('Falhou no Passo (3)');
            Res := LoadResource(M, R);
            if Res = 0 then
              ShowMessage('Falhou no Passo (4)');
            GroupIconDir := LockResource(Res);
            if GroupIconDir = nil then
              ShowMessage('Falhou no Passo (5)');
            if not GetResLang(M, RT_GROUP_ICON, 'MAINICON', wLanguage) then
              ShowMessage('Falhou no Passo (6)');
            if not UpdateResource(H, RT_GROUP_ICON, 'MAINICON', wLanguage, nil, 0) then
              ShowMessage('Falhou no Passo (7)');
            for I := 0 to GroupIconDir.ItemCount-1 do begin
              if not GetResLang(M, RT_ICON, MakeIntResource(GroupIconDir.Items[I].Id), wLanguage) then
                ShowMessage('Falhou no Passo (8)');
              if not UpdateResource(H, RT_ICON, MakeIntResource(GroupIconDir.Items[I].Id), wLanguage, nil, 0) then
                ShowMessage('Falhou no Passo (9)');
            end;
            NewGroupIconDirSize := 3*SizeOf(Word)+Ico.ItemCount*SizeOf(TGroupIconDirItem);
            GetMem(NewGroupIconDir, NewGroupIconDirSize);
            try
              NewGroupIconDir.Reserved := GroupIconDir.Reserved;
              NewGroupIconDir.Typ := GroupIconDir.Typ;
              NewGroupIconDir.ItemCount := Ico.ItemCount;
              for I := 0 to NewGroupIconDir.ItemCount-1 do begin
                NewGroupIconDir.Items[I].Header := Ico.Items[I].Header;
                NewGroupIconDir.Items[I].Id := I+1; //assumes that there aren't any icons left
              end;
              for I := 0 to NewGroupIconDir.ItemCount-1 do
                if not UpdateResource(H, RT_ICON, MakeIntResource(NewGroupIconDir.Items[I].Id), 1033, Pointer(DWORD(Ico) + Ico.Items[I].Offset), Ico.Items[I].Header.ImageSize) then
                  ShowMessage('Falhou no Passo (10)');
              if not UpdateResource(H, RT_GROUP_ICON, 'MAINICON', 1033, NewGroupIconDir, NewGroupIconDirSize) then
                ShowMessage('Falhou no Passo (11)');
            finally
              FreeMem(NewGroupIconDir);
            end;
          finally
            FreeLibrary(M);
          end;
        except
          EndUpdateResource(H, True);  { discard changes }
          raise;
        end;
        if not EndUpdateResource(H, False) then
          ShowMessage('Falhou no Passo (12)');
      finally
        FreeMem(Ico);
      end;
    end;
    

    E usei desta forma:

    UpdateIcons('Endereço da aplicação', 'Endereço do icone')
    
    

    Mas o problema, é que as vezes funciona e as vezes, para de funcionar do nada, dando erro sempre no passo 3!

    alguém poderia me ajudar?

    (

    OBS:Vou usar para alterar apenas arquivos executaveis criados pelo próprio Delphi;

    Todas as vezes, uso a mesma imagem .ico e as vezes funciona e as vezes não;

    )

  6. Fala galera.. to precisando de uma ajudinha aqui.

    A questão é a seguinte:

    Tenho um formulário de cadastro;

    Esse formulário é validado por um JS;

    No JS, é que tem a "junção" de php com js..A como posso explicar..O JS é que envia os dados para o PHP.

    Acho que pode ser um erro besta, mas resolvi postar aqui a dúvida.Vejam:

    Formulário:

    <h3>Formulário</h3>
          <form id="cad" method=POST action="?page=cadastro&ac=cad">
              <div class="success"> Cadastro efetuado! <strong>Por favor, abra seu email e confirme sua conta.</strong> </div>
              <fieldset>
                <div>
                  Nome completo:<label class="name">
                    <input type="text" name="name" value="Seu nome e sobrenome">
                    <br>
                    <span class="error">*Nome inválido.</span> <span class="empty">*Campo obrigatório.</span> </label>
                </div>
                            <div>
                  Senha<label class="nome">
                    <input type="password" name="senha" value="">
                    <br>
                    <span class="error">*Senha inválido.</span> <span class="empty">*Campo obrigatório.</span> </label>
                </div>
                <div>
                  Email:<label class="email">
                    <input type="email" name="email" value="Email:">
                    <br>
                    <span class="error">*Email inválido.</span> <span class="empty">*Campo obrigatório.</span> </label>
                </div>
                <div>
                  Telefone(DDD+TEL):<label class="phone">
                    <input type="tel"  name="telefone" value="Telefone:">
                    <br>
                    <span class="error">*Telefone inválido.</span> <span class="empty">*Campo obrigatório.</span> </label>
                </div>
         <div>
                  Endereço<label class="nome">
                    <input type="email" name="endereco" value="Endereço completo">
                    <br>
                    <span class="error">*Endereço inválido.</span> <span class="empty">*Campo obrigatório.</span> </label>
                </div>
                <div>
                Bairro<label class="nome">
                    <input type="email" name="bairro" value="Bairro">
                    <br>
                    <span class="error">*Bairro inválido.</span> <span class="empty">*Campo obrigatório.</span> </label>
                </div>
                <div>
                Número( + complemento caso tenha):<label class="phone">
                    <input type="email" name="numero" value="Numero da casa">
                    <br>
                    <span class="error">*Numero inválido.</span> <span class="empty">*Campo obrigatório.</span> </label>
                </div>
     <div>
                Cep:<label class="phone">
                    <input type="email" name="cep" value="Cep">
                    <br>
                    <span class="error">*Cep inválido.</span> <span class="empty">*Campo obrigatório.</span> </label>
                </div>
                 <div>
                CPF:<label class="phone">
                    <input type="email" name="cpf" value="CPF">
                    <br>
                    <span class="error">*CPF inválido.</span> <span class="empty">*Campo obrigatório.</span> </label>
                </div>
                <div>
            <input type=checkbox name=termos><b><font color=white>Li e concordos com os termos</font><BR></b><b><font color=red>Atenção: leia os termos ao lado e clique na  caixinha acima</font> </b>
                <div class="buttons-wrapper"><a class="button" data-type="submit">Cadastrar-me!</a></div>
              </fieldset>
            </form>
    

    Arquivo JS:

    //forms
    ;(function($){
    	$.fn.forms=function(o){
    		return this.each(function(){
    			var th=$(this)
    				,_=th.data('forms')||{
    					errorCl:'error',
    					emptyCl:'empty',
    					invalidCl:'invalid',
    					notRequiredCl:'notRequired',
    					successCl:'success',
    					successShow:'4000',
    					mailHandlerURL:'bat/cad.php',
    					ownerEmail:'support@template-help.com',
    					stripHTML:true,
    					smtpMailServer:'localhost',
    					targets:'input,textarea',
    					controls:'a[data-type=reset],a[data-type=submit]',
    					validate:true,
    					rx:{
    						".name":{rx:/^[a-zA-Z'][a-zA-Z-' ]+[a-zA-Z']?$/,target:'input'},
    						".state":{rx:/^[a-zA-Z'][a-zA-Z-' ]+[a-zA-Z']?$/,target:'input'},
    						".email":{rx:/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i,target:'input'},
    						".phone":{rx:/^\+?(\d[\d\-\+\(\) ]{5,}\d$)/,target:'input'},
    						".fax":{rx:/^\+?(\d[\d\-\+\(\) ]{5,}\d$)/,target:'input'},
    						".message":{rx:/.{20}/,target:'textarea'}
    					},
    					preFu:function(){
    						_.labels.each(function(){
    							var label=$(this),
    								inp=$(_.targets,this),
    								defVal=inp.val(),
    								trueVal=(function(){
    											var tmp=inp.is('input')?(tmp=label.html().match(/value=['"](.+?)['"].+/),!!tmp&&!!tmp[1]&&tmp[1]):inp.html()
    											return defVal==''?defVal:tmp
    										})()
    							trueVal!=defVal
    								&&inp.val(defVal=trueVal||defVal)
    							label.data({defVal:defVal})
    							inp
    								.bind('focus',function(){
    									inp.val()==defVal
    										&&(inp.val(''),_.hideEmptyFu(label),label.removeClass(_.invalidCl))
    								})
    								.bind('blur',function(){
    									_.validateFu(label)
    									if(_.isEmpty(label))
    										inp.val(defVal)
    										,_.hideErrorFu(label.removeClass(_.invalidCl))
    								})
    								.bind('keyup',function(){
    									label.hasClass(_.invalidCl)
    										&&_.validateFu(label)
    								})
    							label.find('.'+_.errorCl+',.'+_.emptyCl).css({display:'block'}).hide()
    						})
    						_.success=$('.'+_.successCl,_.form).hide()
    					},
    					isRequired:function(el){
    						return !el.hasClass(_.notRequiredCl)
    					},
    					isValid:function(el){
    						var ret=true
    						$.each(_.rx,function(k,d){
    							if(el.is(k))
    								ret=d.rx.test(el.find(d.target).val())
    						})
    						return ret
    					},
    					isEmpty:function(el){
    						var tmp
    						return (tmp=el.find(_.targets).val())==''||tmp==el.data('defVal')
    					},
    					validateFu:function(el){
    						el.each(function(){
    							var th=$(this)
    								,req=_.isRequired(th)
    								,empty=_.isEmpty(th)
    								,valid=_.isValid(th)
    
    							if(empty&&req)
    								_.showEmptyFu(th.addClass(_.invalidCl))
    							else
    								_.hideEmptyFu(th.removeClass(_.invalidCl))
    
    							if(!empty)
    								if(valid)
    									_.hideErrorFu(th.removeClass(_.invalidCl))
    								else
    									_.showErrorFu(th.addClass(_.invalidCl))
    						})
    					},
    					getValFromLabel:function(label){
    						var val=$('input,textarea',label).val()
    							,defVal=label.data('defVal')
    						return label.length?val==defVal?'nope':val:'nope'
    					}
    					,submitFu:function(){
    						_.validateFu(_.labels)
    						if(!_.form.has('.'+_.invalidCl).length)
    							$.ajax({
    								type: "POST",
    								url:_.mailHandlerURL,
    								data:{
    									nome:_.getValFromLabel($('.name',_.form)),
    									email:_.getValFromLabel($('.email',_.form)),
    									phone:_.getValFromLabel($('.phone',_.form)),
    									fax:_.getValFromLabel($('.fax',_.form)),
    									state:_.getValFromLabel($('.state',_.form)),
    									message:_.getValFromLabel($('.message',_.form)),
    									owner_email:_.ownerEmail,
    									stripHTML:_.stripHTML
    								},
    								success: function(){
    									_.showFu()
    								}
    							})
    					},
    					showFu:function(){
    						_.success.slideDown(function(){
    							setTimeout(function(){
    								_.success.slideUp()
    								_.form.trigger('reset')
    							},_.successShow)
    						})
    					},
    					controlsFu:function(){
    						$(_.controls,_.form).each(function(){
    							var th=$(this)
    							th
    								.bind('click',function(){
    									_.form.trigger(th.data('type'))
    									return false
    								})
    						})
    					},
    					showErrorFu:function(label){
    						label.find('.'+_.errorCl).slideDown()
    					},
    					hideErrorFu:function(label){
    						label.find('.'+_.errorCl).slideUp()
    					},
    					showEmptyFu:function(label){
    						label.find('.'+_.emptyCl).slideDown()
    						_.hideErrorFu(label)
    					},
    					hideEmptyFu:function(label){
    						label.find('.'+_.emptyCl).slideUp()
    					},
    					init:function(){
    						_.form=_.me
    						_.labels=$('label',_.form)
    
    						_.preFu()
    
    						_.controlsFu()
    
    						_.form
    							.bind('submit',function(){
    								if(_.validate)
    									_.submitFu()
    								else
    									_.form[0].submit()
    								return false
    							})
    							.bind('reset',function(){
    								_.labels.removeClass(_.invalidCl)
    								_.labels.each(function(){
    									var th=$(this)
    									_.hideErrorFu(th)
    									_.hideEmptyFu(th)
    								})
    							})
    						_.form.trigger('reset')
    					}
    				}
    			_.me||_.init(_.me=th.data({forms:_}))
    			typeof o=='object'
    				&&$.extend(_,o)
    		})
    	}
    })(jQuery)
    $(window).load(function(){
    			 $('#cad').forms({
     	     ownerEmail:'#'
     	     })
       })
    

    Arquivo php (cad.php)(OBS: Aqui a citação ta sem o $sql, mas aqui no meu código tem o $sql):

    <?php
    $nome = $_POST['nome'];
    $senha = $_POST['senha'];
    $email = $_POST['email'];
    $telefone = $_POST['telefone'];
    $endereco = $_POST['endereco'];
    $bairro = $_POST['bairro'];
    $numero = $_POST['numero'];
    $cep = $_POST['cep'];
    $cpf = $_POST['cpf'];
    $termos = $_POST['termos'];
    	try{
    		if($sql){
    			throw new Exception('mail failed');
    		}else{
    			echo 'mail sent';
    		}
    	}catch(Exception $e){
    		echo $e->getMessage() ."\n";
    	}
    ?>
    

    Lembrando que peguei esse js e tentei adaptar, por que ele é usado na verdade para validar um form de contato.

    Ajuda please!

  7. Olá!

    Consegui criar um programa que cria, e compila um res a partir do BRCC32.

    O "problema" é que queria saber se posso extrair todos os arquivos de um .res de uma vez só.

    Todos os exemplos que vi, citava um "título" para cada arquivo incluido, tipo "res1 RCDATA arquivo".

    Teria uma maneira de extrair tudo de uma vez só?

    Se não for abusar, e se tiver como extrair, teria como por um progressbar :D ?

    Flws!

  8. Olá a todos!

    Gostaria que se alguém soubesse como substituir aquele menu de opções do TWebBrowser quando navegando, me desse uma luz.

    Estou em um pequeno projeto, e me deparei com esse problema, e queria saber se tinha como fazer isso, para retirar aquele menu igual ao do IE e colocar um meu.

    Já fiz umas "gambiarras" mas sem sucesso, e pesquisei e tambem não encontrei nada.

    Aguardo resposta.

    Flws!

  9. Olá!

    Simples!

    Se quer sempre exibir "Olá $user" no começo, porque não poe seu esquema de mostrar o nome do usuário e depois pega a frase do banco e "trunca" com o "Olá $user"?

    Mais ou menos assim:

    <?
    //Código que busque o nome do usuário
    //Supondo que sua variavel que contem o nome do usuário seja "$user"
    
    //Código para buscar mensagem no Db
    //E Supondo que sua variavel que contem a mensagem seja "$msg"
    
    //Faça assim:
    echo "Olá, $user!$msg";
    
    //Fim busca de mensagem
    //Fim do código da busca de nome de usuário
    
    ?>
    
    
    
    

    Exemplo: você coloca a mensagem "Estamos em manutenção!", o script retornará "Olá, AllNet!Estamos em manutenção!".

    Qualquer coisa posta ae.

    Flws!

  10. Olá!

    Script meio confuso ehin :wacko: ...

    Mas acho que sei onde tá o erro.

    O erro: "<br /><b>Notice</b>: Undefined variable: _SESSION in <b>D:\Programas\xampp\htdocs\TCC\Cadastro.php</b> on line <b>31</b><br />"

    Como pode ver o erro começa na linha 31.

    Linha 31:

    <td><input type="password" name="Senha2" size="40" value="<?php echo $_SESSION['Senha2']?>"></td>
    

    Concerteza essa session "Senha2" não existe.

    Mas se é um cadastro, porque esta utilizando sessions em todos os campos?

  11. Oá!

    O erro pode estar acontecendo talvez porque quando voce quer adicionar algo no campo $classificação1,e o campo pode ainda não estar preparado/criado.

    Coloque a linha $atualizapessoa em outra página, e coloque um link para a outra página (ou coloque na mesma página, só que só rodando o script após a criação do campo na tabela tipo o script abaixo:) .

    if($class == "1") {
    $idSessao = $_SESSION['id'];
    $atualizaClass = mysql_query("UPDATE postagens SET class1 = '".$classificacao1."' WHERE id = '".$idPostClass."'");
    $atualizaNumero = mysql_query("ALTER TABLE postagens ADD  `".$classificacao1."` VARCHAR( 100 ) NOT NULL");
    echo"<a href=?area=continue&class=$classificacao1>Continuar</a>";
    }
    if ($_GET['area']==continue){
    $idSessao = $_SESSION['id'];
    $atualizaPessoa = mysql_query("INSERT INTO postagens ( ".{$_GET['class']}." ) VALUES ( '".$idSessao."' ) ")or die(mysql_error());
    if($atualizaPessoa) { echo "ok"; }
    }
    

    Flws!

  12. Olá!

    Não entendi pra que gerar link temporário.(sim eu li que pode sobrecarregar o servidor.).

    Dei uma pesquisada e não achei o que queria.

    Um script de download(que talvez não de um "stack overflow"):

    <?php
    $file = $_GET['file'];
    // pega o endereço do arquivo
    // ou o nome dele se o arquivo
    // estiver na mesma pagina!! 
    header("Content-Type: application/save"); 
    header("Content-Length:".filesize($file)); 
    header('Content-Disposition: attachment; filename="' . $file . '"'); 
    header("Content-Transfer-Encoding: binary");
    header('Expires: 0'); 
    header('Pragma: no-cache'); 
    // nesse momento ele le o arquivo e envia
    $fp = fopen("$file", "r"); 
    fpassthru($fp); 
    fclose($fp);
    // chamar assim na página html <a href=download.php?file=teste.txt>Arquivo</a>
    ?>
    

    Flws!

  13. Olá!

    Verifique se a pasta existe ou se tem erro de ortografia.Se não tiver tente este script:

    <?php
     
    if($_GET['area']==post)
    {
    $md5 = md5($REMOTE_ADDR);
    $arquivo= $_FILES["Arquivo"]["name"];
    $arquivo_name = $md5.$arquivo;
    $temp = substr(md5(uniqid(time())), 0, 10);
    $extensao = strtolower(end(explode('.', $arquivo_name)));
    $arquivo_name = $temp . "$arquivo_name" . $extensao;
    $copy= (copy($arquiivo,"./arquivos/maqnotafiscal/".$arquivo_name)) ;
    }
     
    ?>
    <html> 
    <body> 
    <form action="upload.php?area=post" method="post" enctype="multipart/form-data" > 
    <!--input type="file" name="Arquivo" id="Arquivo"-->
    <input name="Arquivo" type="file" class="tit_red" id="Arquivo" size="20"  tabindex="5" />  
    <br> 
    <input type="submit" value="Enviar"> 
    <input type="reset" value="Apagar"> 
    </form> 
    </body> 
    </html>
    

    Outra coisa isso que você está fazendo de colocar "http://localhost/sit...menu=upload.php" te coloca em risco se você colocar seu sistema online e visiviel a todos.Porque algum cracker pode usar isto a favor dele e colocar ao invés de "upload.php", coloca "http://sitemalicioso/arquivomalicioso.php" e neste tal "arquivo malicioso" pode ter instruções para pegar suas váriaveis de conexões com banco de dados ou outras coisas.Se for colocar seu sistema visivel arruma isso ai.

    Flws!

×
×
  • Criar Novo...