Ir para conteúdo
Fórum Script Brasil

Fernando Lima (IPIS)

Membros
  • Total de itens

    29
  • Registro em

  • Última visita

Tudo que Fernando Lima (IPIS) postou

  1. Humm, Ele está aparecebdo extamente onde? Em substituição a tag "<?" do php? Poste ai uma pagina html em que isso ocorre. falou.
  2. Há beleza! e, há proposito: Query String são os dados passados a pagina php (neste caso), na url, ex: www.seusite.com.br/paginas/login.php?usuario=x&senha=y Isto. "usuario=x&senha=y" é a query string passada a pagina www.seusite.com.br/paginas/login.php. Abraço brother, até mais.
  3. Deu certo? Post se funcionou pra ajudar outros usuarios xD!
  4. Ok. Então tente o seguinte: Tente remover a adição da query string ao linkm contida nesta linha, ou melhor, comente-a, assim, pode voltar depois se der erro, substitua: Aqui: $updateGoTo = "principal.php?link=2&atualizado=ok"; if (isset($_SERVER['QUERY_STRING'])) { $updateGoTo .= (strpos($updateGoTo, '?')) ? "&" : "?"; $updateGoTo .= $_SERVER['QUERY_STRING']; } Toque por: // $updateGoTo = "principal.php?link=2&atualizado=ok"; // Como voce já mudou: $updateGoTo = "principal.php?link=2"; if (isset($_SERVER['QUERY_STRING'])) { $updateGoTo .= (strpos($updateGoTo, '?')) ? "&" : "?"; // $updateGoTo .= $_SERVER['QUERY_STRING']; // LINHA COMENTADA }
  5. Opa, Não sei se entendi bem, mas aqui esta uma forma de fazer algo parecido com o exemplo supracitado por você: $Indices_i = 18; // Numero de indicies // Formacao sequencial do array For ($i = 0; $i < $Indices_i; $i++) { // Valor $Indices[$i]['Valor'] = rand(13, 100); // numero randomico entre 13 e 100 // Textos Switch ($i) { Case '0': $Indices[$i]['Texto'] = 'Fim de execução'; Break; // Indice 0 Case '17': $Indices[$i]['Texto'] = 'Última estação desligada'; Break; // Indice 17 --> último índice Default: $Indices[$i]['Texto'] = 'Estação desligada'; // Todos os outros indides } } // REORDENACAO $Valor_13 = $Indices[13]['Valor']; // salva o valor, antes de apagar $Texto_13 = $Indices[13]['Texto']; // salva o texto, antes de apagar unSet($Indices[13]); // apaga o indice $Valor_0 = $Indices[0]['Valor']; // salva o valor, antes de apagar $Texto_0 = $Indices[0]['Texto']; // salva o texto, antes de apagar unSet($Indices[0]); // apaga o indice // Recoloca, no fim, aqui, a ordem dos fatores altera o produto, hauhauahaua! $Indices[13] = Array('Valor' => $Valor_13, 'Texto' => $Texto_13); $Indices[0] = Array('Valor' => $Valor_0, 'Texto' => $Texto_0); // IMPRIME O ARRAY foreach ($Indices as $Chave => $Dados) { Echo $Chave.' '.$Dados['Valor'].' - '.$Dados['Texto'].'<br>'; } Echo '<br><pre>'; print_r($Indices); Echo '</pre><br>'; Espero que resolva seu problema, qualquer coisa, posta ai! Abraço.
  6. Pelo que entendi, etá indo pro link errado, correto? Para onde ele deve redirecionar? :D
  7. Olá pessoal, Depois de algum tempo estudando a manipulação de datas no php, assunto que creio dá muita dor de cabeça, principalmente a quem tá iniciando e precisa executar tarefas como somar e subtrair datas, resolvi postar aqui algumas funções que escrevi para facilitar a minha vida no desenvolvimento dos meus sistemas. Vamos lá! Conversão de formatos de data: /* FORMATO DE DATA */ Function Geral_Data($Data = '', $Entrada = 'M', $Saida = 'L') { # Formatos de Entrada/Saida: # M => MySQL (formato do banco de dados) # L => Local (formato do Brasil) # P => PHP (formato usado nas comparacoes e operacoes de data) // Validacao $Formatos = Array('M', 'L', 'P'); If (empty($Data) || !is_string($Data) || $Entrada == $Saida || !in_array($Entrada, $Formatos) || !in_array($Saida, $Formatos)) { Return $Data; } // Conversao Switch ($Entrada) { Case 'L': $Data = explode('/', $Data); Switch ($Saida) { Case 'P': $RT = $Data[1].'/'.$Data[0].'/'.$Data[2]; Break; Case 'M': $RT = $Data[2].'-'.$Data[1].'-'.$Data[0]; Break; } Break; Case 'M': $Data = explode('-', $Data); Switch ($Saida) { Case 'P': $RT = $Data[1].'/'.$Data[2].'/'.$Data[0]; Break; Case 'L': $RT = $Data[2].'/'.$Data[1].'/'.$Data[0]; Break; } Break; Case 'P': $Data = explode('/', $Data); Switch ($Saida) { Case 'L': $RT = $Data[1].'/'.$Data[0].'/'.$Data[2]; Break; Case 'M': $RT = $Data[2].'-'.$Data[0].'-'.$Data[1]; Break; } Break; } Return $RT; } Está é útil quando precisamos converter as datas para os formatos do MySQL (Hoje é 2010-09-03) -para, por exemplo gravar no db e depois poder consultar períodos-, PHP (Hoje é 09/03/2010) -formato usado pelas funcoes de tratamento de data do php como mktime()- ou local (Hoje é 03/09/2010). Conversão data/hora em Timestamp: Function Geral_DataTS($Data = '', $Soma_Dia = 0, $Soma_Mes = 0, $Soma_Ano = 0, $Hora = '', $Soma_Hora = 0, $Soma_Minuto = 0, $Soma_Segundo = 0) { // Validacao If (!Geral_ValidaData($Data) || (!empty($Hora) && !Geral_ValidaHora($Hora))) { Return 0; } // Converte para o formato PHP $Data = Geral_Data($Data, 'L', 'P'); $Data = explode('/', $Data); If (empty($Hora)) { $RT = mktime(0, 0, 0, $Data[0] + $Soma_Mes, $Data[1] + $Soma_Dia, $Data[2] + $Soma_Ano); } Else { $Hora = explode(':', $Hora); $RT = mktime($Hora[0] + $Soma_Hora, $Hora[1] + $Soma_Minuto, $Hora[2] + $Soma_Segundo, $Data[0] + $Soma_Mes, $Data[1] + $Soma_Dia, $Data[2] + $Soma_Ano); } Return $RT; } Essa é utilíssima quando se trata de executar operações aritiméticas com datas, o Timestamp (data convertida em um valor interior longo) pode ser depois subtraido/somado e assim podemos saber, por exemplo quanto tempo passou de uma data para outra! Legal né? Exemplo: <? $Hoje = date('d/m/Y'); $Agora = Geral_DataTS($Hoje, 0, 0, 0); $Amanha = Geral_DataTS($Hoje, 5, 0, 0); // mais 5 dias // Se Passaram -> Valores TS devem ser divididos por 86400 $Passou = ($Amanha - $Agora) / 86400; Echo 'De '.Geral_TSData($Agora, 'L', 'Data').' para '.Geral_TSData($Amanha, 'L', 'Data').' passou '.$Passou.' dia(s).'; ?> Irá imprimir: "De 03/09/2010 para 08/09/2010 passou 5 dia(s)." Conversão de Timestamp em data (novamente, após cálculos, por exemplo): Function Geral_TSData($TS = 0, $Saida = 'L', $RT_Forma = 'Data') { # Formatos de Saida: # M => MySQL (formato do banco de dados) # L => Local (formato do Brasil) # P => PHP (formato usado nas comparacoes e operacoes de data) # # Formatos de Retorno: # String => data e hora (se houver) numa string unica # Data => somente a data no formato de saida # Hora => somente a hora # Array => Array com data e hora separados Switch ($RT_Forma) { Case 'String': Switch ($Saida) { Case 'L': $RT = date('d/m/Y H:i:s', $TS); Break; Case 'P': $RT = date('m/d/Y H:i:s', $TS); Break; Case 'M': $RT = date('Y-m-d H:i:s', $TS); Break; Default: $RT = date('d/m/Y H:i:s', $TS); } Break; Case 'Data': Switch ($Saida) { Case 'L': $RT = date('d/m/Y', $TS); Break; Case 'P': $RT = date('m/d/Y', $TS); Break; Case 'M': $RT = date('Y-m-d', $TS); Break; Default: $RT = date('d/m/Y H:i:s', $TS); } Break; Case 'Hora': $RT = date('H:i:s', $TS); Break; Case 'Array': Switch ($Saida) { Case 'L': $RT['Data'] = date('d/m/Y', $TS); Break; Case 'P': $RT['Data'] = date('m/d/Y', $TS); Break; Case 'M': $RT['Data'] = date('Y-m-d', $TS); Break; Default: $RT['Data'] = date('d/m/Y H:i:s', $TS); } $RT['Hora'] = date('H:i:s', $TS); Break; } Return $RT; } Esta transforma um valor Timestamp em data novamente. Por fim, estas duas são usadas pela funções acima para validar se o valor passado para a função realmente é data e/ou hora válida: Validação: /* DATA => Deve ser passado em formato local com "/" */ Function Geral_ValidaData($Data = '') { If (empty($Data) || !is_string($Data)) { Return 0; } $Data = explode('/', $Data); If (!checkdate($Data[1], $Data[0], $Data[2])) { Return 0; } Else { Return 1; } } /* HORA => Deve ser passado em formato local com ":" */ Function Geral_ValidaHora($Hora = '') { If (empty($Hora) || !is_string($Hora) || strpos($Hora, ':') === False) { Return 0; } $Hora = explode(':', $Hora); If ((!is_numeric($Hora[0]) || $Hora[0] < 0 || $Hora[0] > 60) || (!is_numeric($Hora[1]) || $Hora[1] < 0 || $Hora[1] > 60) || (!is_numeric($Hora[2]) || $Hora[2] < 0 || $Hora[2] > 60)) { Return 0; } Else { Return 1; } } É isso ai, espero ajudar a quem tem pro ai com as datas! Se alguém se dispuser a transformar tudo isso numa classe, acho que facilitará mais pra os iniciantes. Post ai o que achou, erros ou sugestões para melhorar! Abraço a todos, até a próxima. Att. Fernando. :D
  8. Olá parceiro! Tente substituir o comando que rediriona! Toque isto: header("Location: %s", $updateGoTo); Por isto: Echo('<script>location.href = "'.$updateGoTo.'";</script>'); Geralmente da problemas quando você tenta redireionar usando header() se o o head da página já foi carregado, assim, não é possível modificá-lo! Assim sendo, use javascript. Poste ai se funcionou, abraço.
  9. Opa parceiro! O script esta realmente repetindo os dados, tente mudar a rotina de impressão dentro do wilhe: AO invés DE: while($dados=mysql_fetch_array($query)) { extract($dados); echo "<tr><td> $item_id</td><td> $item_id</td><td> $item_id </td><td> $item_id</td><td> $item_id</td><td> $item_id</td></tr><br>"; } TENTE: while($dados=mysql_fetch_array($query)) { echo "<tr><td>$dados['item_id']</td></tr>"; }
  10. Fala parceiro, bem vindo! ISTO -> $db = mysql_select_db ("cida13680"); or die (Erro ao selecionar a base de dados."); Não pode haver " ; " antes do "OR DIE" e ta faltando uma aspa dupla no inicio da mensagem de erro que sera exibida em caso de erro (or die), neste caso faça assim: $db = mysql_select_db ("cida13680") or die ("Erro ao selecionar a base de dados.");
  11. Arquivos prontos e online, mas não rodou... Cliente: <? $Cliente = new SoapClient(null, Array('location' => 'http://www.ipis.com.br/web/soap_s.php', 'uri' => 'http://www.ipis.com.br/web/', 'trace' => 1)); $var = 'Fernando Lima'; $var_e = $Cliente->SIS_Encode($var); $var_d = $Cliente->SIS_Decode($var_e); Echo $var.'<br><br>'; Echo $var_e.'<br><br>'; Echo $var_d.'<br><br>'; ?> Servidor: <? $Servidor = new SoapServer(null, Array('uri' => 'http://www.ipis.com.br/web/')); /* ENTRADA */ Function SIS_Encode($String) { Return base64_encode($String); } /* SAIDA */ Function SIS_Decode($String) { Return base64_decode($String); } $Servidor->addFunction('SIS_Encode'); $Servidor->addFunction('SIS_Decode'); /* $Funcoes = $Servidor->getFunctions(); foreach ($Funcoes as $Funcao) { Echo '<br><br>'.$Funcao; } */ ?> SOAP já habilitado no cliente, instalado e carregado no servidor... Descomentei o foreach para verificar e as funções foram corretamente carregadas pela SoapServer, conforme script acima, link aqui.
  12. jissa, Sua sugestão realmente é o que preciso pela descrição do artigo que me passou, contudo, gostaria de saber se você tem conhecimento de algum link para a extensão soap para linux, .so, pois somente encontrei em formato .dll, windows. Grato. Acrescentando: rpms.famillecollet.com/fedora/9/remi/i386/php-soap-5.3.2-1.fc9.remi.i386.rpm, será que este rpm para o fedora 9 serve no meu CentOS 5.4? Minha versão php no servidor é 5.3.2-1. Instalação resolvida! Esqueci de verificar o meu repo do php 5.3.2 :). Ele já contém a extension necessária. Posto aqui assim que tiver uma posição sobre o funcionamento da sugestão do colega jissa.
  13. Bruno, Infelizmente não conheço nada free para sua necessidade, nem em outros fóruns. Se você tem algum conhecimento em php e mysql, porque não tenta fazer, me disponho a te ajudar com eventuais erros e com sugestões, pois sinceramente acho pouco provavél que encontre alguém disposto a desenvolver este sistema pra você gratuitamente. Do contrário, se você dispuser de tempo e interesse, incentivo a você a ler e estudar php + mysql, ai podemos ajudar você aqui no fórum. lamento não poder ajudar, abraço.
  14. Oi Bruno! Você está procurando um código free que atenda sua necessidade?
  15. Opa jissa! Obrigado, vou avaliar sua sugestão, posto aqui o resultado. Grato pela ajuda.
  16. Olá laurinha2004! E ai? A sugestão funcionou? Post aqui se deu certo para que a solução possa ajudar outras pessoas no futuro, caso contrário, post se não deu certo, faremos o possível pra te ajudar.
  17. Fernando Lima (IPIS)

    Arrays

    Opa cassianooliver! Olha só uma solução: Tendo em vista que o valor retornado ai é um array e que não vi nesta classe como retornar diretamente o name do arquivo, façamos assim: Ao invés de: for ($i=0; $i<$za->numFiles;$i++) { print_r($za->statIndex($i)); } Use: for ($i=0; $i<$za->numFiles;$i++) { $Zip_Array = $za->statIndex($i); Echo $Zip_Array['name'].'<br>'; } Solução: Passamos o resultado retornado por - $za->statIndex($i) - para um novo array que indexou todos os valores do retorno do arquivo atual, assim, você pode pegar todos os valores separadamente (name, index, crc, size, mtime, comp_size e comp_method). Espero ter ajudado e post se der tudo certo... Abraço.
  18. Fernando Lima (IPIS)

    Arrays

    Ok. Vou verificar a função e ver como posso te ajudar... :)
  19. Fernando Lima (IPIS)

    Arrays

    Tente inverter as chaves no exemplo do *FIT*, assim: echo $za->statIndex[$i][name]; Pois pelo que mostrou do seu código não dá pra sabermos como sua array está indexada. Qualquer dúvida, posta ai, abraço. Se der certo post também pra compartilhar a solução.
  20. Nesta situação, Na sua tabela de vendas, você poderia por um campo a mais para destinguir que tipo de produto foi vendido naquele pedido, ficando +/- assim: Filmes: INSERT INTO vendas ( codigo, tipo, nome, preço ) VALUES ( filmes.codigo, 'filme', filmes.titulo, filmes.preço ); Produtos: INSERT INTO vendas ( codigo, tipo, nome, preço ) VALUES ( produtos.codigo, 'produto', produtos.nome, produtos.preço ); Assim, quando quiser alterar a quantidade de um produto, por exemplo, a sql ficaria: UPDATE vendas SET quantidade = 5 WHERE codigo = produtos.codigo AND tipo = 'produto'; Isto elimiraria os conflitos quando os códigos fossem iguais, pois você está dizendo que é para alterar o codigo x mas do registro na tabela de vendas com o tipo = 'produto'. Espero ter ajudado. Qualquer dúvida, posta ai, abraço.
  21. Oi laurinha2004! A sua inteção é lançar as vendas, de ambos os tipos, em uma única tabela de pedidos? Tipo: Filmes: INSERT INTO vendas ( codigo, nome, preço ) VALUES ( filmes.codigo, filmes.titulo, filmes.preço ); Produtos: INSERT INTO vendas ( codigo, nome, preço ) VALUES ( produtos.codigo, produtos.nome, produtos.preço );
  22. Olá, boa tarde a todos! A Situação: Tenho um arquivo de funções em meu site que preciso chamar nos sistemas de alguns clientes que usam hospedagem compartilhada, onde não posso rodar as extensões do programa encoder que uso nos meus scripts. Assim sendo, pensei em em habilitar url_fopen e url_include e dar include/require no arquivo com as funcoes que, por segurança (por não poder codificá-los e deixar no servidor do cliente), deixo sem codificar em ambiente seguro do meu servidor. O Problema: Habilitando url_fopen e url_include através de um .htaccess na hospedagem do cliente, incluo o arquivo de funcoes, mas quando chamo uma função qualquer, contida nele, o php não localiza... include 'http://dominio/funcoes.php'; $var = 'Teste'; Echo FuncaoX($var); Resultado: Fatal error: Call to undefined function funcaox() in ... on line 18 Alguém pode me ajudar? :)
  23. Fernando Lima (IPIS)

    Somar valores

    Oi, tudo bem? Posta ai o script que esta usando, Sum() deve funcionar...
×
×
  • Criar Novo...