alissong 1 Denunciar post Postado Novembro 28, 2007 Apolo Lira, Veja essa função que criei em vb06 é possível transformá-la em php. Private Sub cmdgeramensalidades_Click() Dim Dia As String Dim Mes As Integer Dim Ano As Integer Dim Data As String Dim Fevereiro As Integer On Error GoTo cmdgeramensalidades 'Erro ao gerar registro Screen.MousePointer = vbHourglass Data = Text1.Text Dia = Mid(Data, 1, 2) Mes = Mid(Data, 4, 2) Ano = Mid(Data, 7, 4) Mes = Format(Text1.Text, "mm") Ano = Format(Text1.Text, "yy") For i = 1 To Val(txtparcelas.Text) Mes = Mes + 1 If Mes > 12 Then Mes = 1 Ano = Ano + 1 End If 'Verificando os meses que podem ter até o dia 31 If (Mes = 1) Or (Mes = 3) Or (Mes = 5) Or (Mes = 7) Or (Mes = 8) Or (Mes = 10) Or (Mes = 12) Then If (Dia > 0) Or (Dia > 30) Then Dia = Format(Text1.Text, "dd") End If ElseIf (Mes = 4) Or (Mes = 6) Or (Mes = 9) Or (Mes = 11) Then If (Dia = 31) Then Dia = Format(Text1.Text, "dd") - 1 End If 'Verificando o mes de fevereiro ElseIf (Mes = 2) Then If (Dia <= 28) Then Dia = Format(Text1.Text, "dd") Else If Fevereiro = Ano Mod 4 Then Dia = 29 Else Dia = 28 End If End If End If Data = Dia & "/" & Format(Mes, "00") & "/" & Format(Ano, "00") parcela = CCur((txtvalor.Text) * txttaxas.Text) * (1 + txttaxas.Text) ^ txtparcelas.Text / ((1 + txttaxas.Text) ^ txtparcelas.Text - 1) If AdoTempContrato.State = 1 Then Set AdoTempContrato = Nothing AdoTempContrato.Open "select * from temp_contrato where n_contrato = '" & n_contrato.Text & "'", gconexao, adOpenDynamic, adLockPessimistic With AdoTempContrato If .EOF Then .AddNew .Fields(0) = n_contrato.Text .Fields(1) = CLng(busca_cliente.Text) .Fields(2) = CCur(txtvalor.Text) .Fields(3) = txtparcelas.Text .Fields(4) = CCur(txttaxas.Text) .Update .Requery .Close End If End With If AdoMensalidade.State = 1 Then Set AdoMensalidade = Nothing AdoMensalidade.Open "select * from temp where n_contrato = '" & n_contrato.Text & "' order by vencimento", gconexao, adOpenDynamic, adLockPessimistic With AdoMensalidade .AddNew .Fields(1) = n_contrato.Text .Fields(2) = GeraQuanty .Fields(3) = Format(CDate(Data), "dd/mm/yyyy") .Fields(4) = CCur(txttaxas.Text) .Fields(5) = CCur(parcela) .Fields(6) = "NAO" .Update .Requery .Close End With Next MontarLista SQL = " delete from temp" gconexao.Execute SQL txttotal.Text = (Format((ComputeAmount), "currency")) cmdGravar.Enabled = True Screen.MousePointer = vbDefault cmdgeramensalidades_exit: Exit Sub cmdgeramensalidades: MsgBox Err.Description, vbInformation, "Erro ao [cmdgeramensalidades]" End Sub Um abraço. Alissong Compartilhar este post Link para o post Compartilhar em outros sites
IntDigital.com.br 0 Denunciar post Postado Novembro 28, 2007 vamos a função data válida que você pediu... função data tentando ao máximo ser igual ao que você fez no visualbasic PHP <? //função de repetição de datas válidas //autor: Apolo Lira (apololira@gmail.com) //retorno: data verificada e possívelmente alterada para válida. //criada em 27/11/2008 1h50. //argumentos: $data (data entrada), $format(formato da data, 1 para dd/mm/yyyy ou 2 para dd-mm-yyyy). function verifica_data($data, $format){ if($format == "1"){ //verifica o formato pedido, se é 1 ou 2. //função explode, separa em array os valores, e tira o carácter que está no índice da função, no caso / //sendo $date[0] == dia, $date[1] == mes, $date[2] == ano, pode ser feito com qualquer string que você precise. $date = explode("/", $data); }elseif($format == "2"){ $date = explode("-", $data); } //verifica os meses que tem 31 dias if($date[1] == "01" or $date[1] == "03" or $date[1] == "05" or $date[1] == "07" or $date[1] == "08" or $date[1] == "10" or $date[1] == "12"){ if($date[0] >= "32"){ //se o dia for maior ou igual a 32, faça. $return_dia = "31"; //dia igual a 31, no caso de termos uma data inválida com dia maior que 31 }else{ $return_dia = $date[0];//se o dia é um valor menor que 31, colocamos na variável $return_dia, o mesmo valor. } //verifica os meses que tem 30 dias }elseif($date[1] == "04" or $date[1] == "06" or $date[1] == "09" or $date[1] == "11"){ if($date[0] >= "31"){ //se dia eh maior ou igual a 31 $return_dia = "30"; //transforma para uma data válida }else{ $return_dia = $date[0]; } //verifica o mes de fevereiro }elseif($date[1] == "02"){ if($date[0] >= "29"){ //se dia eh maior ou igual a 28 $return_dia = "28"; //transforma para uma data válida }else{ $return_dia = $date[0]; } } //monta a data de retorno. $data_valida = $return_dia."/".$date[1]."/".$date[2]; return $data_valida; } //TESTE DE RETORNO //verifica_data("32/12/2007","1"); //retorno: 31/12/2007 //verifica_data("31/02/2007","1"); //retorno: 28/02/2007 ?> para chamar a função fora de códigos PHP PHP <?=verifica_data("31/02/2007","1"); ?>//se for usar variável dentro do argumento da função, assim exemplo. <?=verifica_data($data_v,"1"); ?> função mail() PHP //ela não função via localhost, se você nao definir o servidor de SMTP, no arquivo de configuração do php.ini que fica na pasta c:/windows $header = "From: seuemail@.com.br<seuemail@.com.br> n"; $header .= "Content-Type: text/html; charset=pt-brn"; $header .= "X-Mailer: PHP4 Script Languagen"; $header .= "X-Accept-Language: enn"; $header .= "MIME-Version: 1.0n"; $header .= "Content-Transfer-Encoding: 7bitn"; $assunto = "testando e-mail"; $msg = "Qualquer coisa <b>aceita HTML</b>"; $para = "emailpara@exemplo.com.br"; if(mail($para, $assunto, $msg, $header)){ echo "enviado com sucesso !"; }else{ echo "erro"; } beleza, depois qualquer coisa você me fala, para implementar naquela nossa aplicação, ainda precisa repetir os meses e trocar o ano se necessário, essa função ela altera mesmo é o dia, mês ela só analisa, e ano não faz nada.. essa parte temos que fazer no código, mas acho que no primeiro código, você já tinha feito algo parecido sim no primeiro script... respondendo ao outro tópico... é realmente você fazer uma aplicação em php seria muito melhor, e se você utilizasse um serviço de hospedagem, melhor ainda, pois você dá manutenção no sistema de qualquer lugar do mundo né ? HTML, que coisa chata, hehehe, eu detesto, passei a gostar muito mais depois da evolução ( que não é bem evolução, é apenas os programadores caíndo na real que é muito melhor) para xHTML, e dividem a página toda em camadas, um código mais limpo em organizado, porém requer mais habilidade do programador, em modelar o sistema... o melhor site para ver assuntos de CSS, xHTML é o imasters.com.br que o colunista é administrador do www.maujor.com site muito bom, e ele tá pra lançar um livro agora, sobre o mesmo, naquele script de simulador que eu coloquei na área de laboratório de scripts, ele está em xHTML, e usando table no momento necessário, que é para listagem de dados, e nao colocar o site inteiro, como todos vêem usando... Ícones, e imagens, bom realmente isso tudo é jpg, png ou gif, esses que você viu no meu sistema são ícones free que baixei e coloquei no sistema. sobre a aplicação se tornar PHP, olha, você tah na iniciando agora em PHP né ? pois é, realmente é algo bem trabalhoso, alguém com experiência em PHP, e sem conhecimento em VB já iria demorar...ou no caso que é o inverso.. você precisará de tempo, e bastante esforço e força de vontade...precisa está preparado.. PHP 5, nova versão,eu ainda não me acostumei, to esperando terminar esse sistema que te mandei as imagens, para migrar para a nova versão, pois ela veio quente em mudanças, e a maioria dos sistemas em PHP, não estão suportando o PHP 5, inclusive vários datacenters não estão disponibilizando, quando estão, mantém os dois, servidor com php5, e outros com o php4.... tá complicado isso... bom acho que chega né ? veja bem você tah com dois acidentes de percusso, primeiro HTML (mais fácil, porém não recomendado), PHP 4(mais fácil, porém versão inferior).... Abraços, Apolo Lira, fumarei meu último cigarro da noite, e vou durmir, heheh até manhã ai amigo... Compartilhar este post Link para o post Compartilhar em outros sites
alissong 1 Denunciar post Postado Novembro 29, 2007 Apolo Lira, Aquele site que você me indicou tem coisas que fazia em vb06, mas via em alguns sites na net, mas não tinha idéia de como fazer. Sobre a função data vou testá-la amanhã, pois hoje tive dois pregões muito chatos. A função e-mail que me enviou testarei amanhã. Contudo, o sistema que tenho busca o e-mail da base de bados e disparam para os fornecedores cadastrados para uma certa atividade. Exemplo: Quero pedir o orçamento para os fornecedores cadastrados na atividade - Material de Expediente. Bom, estava tentando fazer um script que envia a senha por e-mail quando solicitada pelo usuário. Transformei o código em mysql. Veja o código. 1- Conexão com o Banco <?php //mysql $host = "localhost"; //end. do servidor $usuario = "seu usuario"; //usuario do banco de dados $senha = "seua senha"; //senha do banco de dados $banco = "seu banco"; //nome do banco de dados mysql_connect($host,$usuario,$senha); mysql_select_db($banco); ?> 2- Formulário senha.php <form name="senha" method="post" action="enviar_senha.php"> <table width="400" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="150"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Login:</font></td> <td width="250"><input name="nome" type="text" id="nome"></td> </tr> <tr> <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Email:</font></td> <td><input name="e_mail" type="text" id="e_mail"></td> </tr> <tr> <td> </td> <td> </td> </tr> <tr> <td colspan="2"><div align="center"> <input name="enviar" type="submit" id="enviar" value="Enviar minha Senha"> </div></td> </tr> </table> </form> 3- script enviar_senha.php <?php # Função para conectar o banco de dados include("config.php"); $e_mail = $_POST['e_mail']; # Inclusão do arquivo de funções $confirmacao = mysql_query("select * from usuarios WHERE nome= '$nome' AND e_mail = '$e_mail'"); //verifica se o login e a email conferem while ($row = mysql_fetch_assoc($confirmacao)) { $nome = $row["nome"]; //adiciona a variavel $login o login do usuario $senha = $row["senha"]; //adiciona a variavel $senha a senha do usuario $email = $row["e_mail"]; //adiciona a variavel $email o email do usuario } $contagem = mysql_num_rows($confirmacao); //traz o resultado da pesquisa acima if ( $contagem == 1 ) { $msg = "Recuperação de senha" . chr(13) . chr(10); $msg .= "Senha enviada em " . date("d/m/Y") . ", os dados seguem abaixo: " . chr(13) . chr(10) . chr(10); $msg .= "Nome : " . $nome . chr(13) . chr(10); $msg .= "Email : " . $email . chr(13) . chr(10); $msg .= "Senha : $senha"; $cabecalho = "From:<scompras@arq.ufmg.br>"; $assunto = "Recuperação de Senha"; $cabecalho = mail($email, $assunto ,$msg, $cabecalho); //campos do email na ordem, email destinho (não deve ser alterada), assunto, conteudo (não deve ser alterado), remetente (também não altere) echo "<div align=center><font size=2 face=Verdana, Arial, Helvetica, sans-serif>Sua senha foi enviada com sucesso para o email: $email</font></div>"; //resposta se o email foi enviado com sucesso } else { echo "<div align=center><font size=2 face=Verdana, Arial, Helvetica, sans-serif>Seu login ou email está incorreto.</font></div>"; //resposta se não foi possivel enviar o email } ?> 1- Dúvida: Tudo isso está rodando no windows 2000, exibe a mensagem "sua senha foi enviado com sucesso para o email", mas email não chega. 2- Dúvida: Apache está instalado como localhost 3- Dúvida: Email do remetente: scompras@arq.ufmg.br 4- Dúvida: O que é smtp no ini.php que vocês falam em configurá-lo. 5- Dúvida: O que é phpmailer para windows Se conseguir fazer esse script funcionar outro é o mesmo raciocínio. OBS: Sabe quando aquela autor vai lançar o livro, pois vou comprá-lo. Um abraço. Alissong Compartilhar este post Link para o post Compartilhar em outros sites
IntDigital.com.br 0 Denunciar post Postado Novembro 29, 2007 Salve Alissong (falei igual o Bial do BBB agora, hahaha)... bom o script tá certinho bixo.. com relação ao email, você realmente vai precisar enviar email de localhost né ? cara tava uma época que o SMTP da uol funcionava.. SMTP você sabe é o endereço do servidor de saída do e-mail... no php.ini que fica na pasta c:/windows tem um algo escrito E-mail dá um pequisar, ou smtp, e deve estar vazia tenta mudar para esse servidor da uol..não te garanto funcionar não.. mas pode ser uma tentativa, sobre o phpmailer me desculpa, mas eu nunca o usei.. jah ouvi falar, mas não uso.. o teu PHP tá indo bem cara.. agora só precisa de um toque de design, hehehe.. abraços Apolo Lira ah o livro tá pra ir pro lançamento, eu me cadastrei no site lá uma parte que você compra com desconto e tal, ai já recebi um e-mail de confirmação e tudo...deve tá saindo pra dezembro, Compartilhar este post Link para o post Compartilhar em outros sites
alissong 1 Denunciar post Postado Novembro 30, 2007 Apolo Lira, Retirei esse código do php.ini. [mail function] ; For Win32 only. SMTP = arq.ufmg.br smtp_port = 25 ; For Win32 only. sendmail_from = scompras@arq.ufmg.br ; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). ;sendmail_path = Por que não entendi o que preciso configurá-lo:1- Dúvida: Sabe aquele computador que fica ligado 24h está em rede e o servidor e-mail do meu trabalho termina assim: arq.ufmg.br 2- Dúvida: Qual porta devo usar a padrão 25 3- Dúvida: Isso aqui deve ficar assim mesmo: sendmail_from = scompras@arq.ufmg.br Agora vou explicar como fiz isso em vb06, no windows 2000 tem uma dll chamada cdonts.dll que envia e-mail com anexo. Então, criei um formulário idêntico ao que vocês fazem em html com esse código abaixo: Private Sub Command1_Click() On Error GoTo Enviar ' Erro ao enviar e-mail Dim Msg As CDO.Message Dim Cof As CDO.Configuration Dim mensagem As String Dim sucesso As Boolean Dim Camp Set Msg = New CDO.Message Set Cof = New CDO.Configuration Set Camp = Cof.Fields If txtdestino.Text = Empty Then MsgBox " Digite o e-mail do destinatário", vbExclamation, "Campo Obrigatório" txtdestino.SetFocus Exit Sub End If If txtassunto.Text = Empty Then MsgBox " Digite o assunto da mensagem", vbExclamation, "Campo Obrigatório" txtassunto.SetFocus Exit Sub End If With Camp .Item(cdoSendUsingMethod) = 2 ' cdoSendUsingPort .Item(cdoSMTPServer) = "arq.ufmg.br" .Item(cdoSMTPConnectionTimeout) = 10 ' quick timeout .Item(cdoSMTPAuthenticate) = 1 .Item(cdoSendUserName) = "yyyyy" .Item(cdoSendPassword) = "xxxxxx" .Update End With With Msg Set .Configuration = Cof .AddAttachment (txtanexo.Text) .BCC = txtdestino.Text .CC = txtremetente.Caption .From = """compras"" <scompras@arq.ufmg.br>" .Subject = txtassunto.Text .TextBody = txttexto.Text .Send End With If sucesso = True Then mensagem = "O E-MAIL NÃO FOI ENVIADO COM SUCESSO!" Else mensagem = "O E-MAIL ENVIADO COM SUCESSO!" End If MsgBox mensagem, vbInformation, "Enviando emails usando CDONTS" Enviar_exit: gUltHora = Now Exit Sub Enviar: MsgBox Err.Description, vbInformation, "Erro ao [Enviar]" End Sub Isso aqui, gUltHora = Now conta 5 minutos sem movimento no sistema. Então o sistema retorna para tela do login. Então, você percebeu que não precisei configurar nada no servidor do meu trabalho e sim do próprio e-mail do setor. Portanto, existe ao parecido em php. Um abraço. Alissong Compartilhar este post Link para o post Compartilhar em outros sites
IntDigital.com.br 0 Denunciar post Postado Novembro 30, 2007 Bom, tenta ver o que o PHPMailer faz, eu nunca o usei... mas a configuração do php.ini tá ok, tenta assim, eu parei de tentar configurar servidor SMTP local aquele sendmail_from é o e-mail do administrador, quando dar erro de 500, 403 na página ele coloca o erro e esse e-mail do administrador, no caso ai você vai configurar no php.ini o servidor, ai na página onde você vai enviar o e-mail com a função mail() você coloca o e-mail from, e para enviar com anexo tem tópicos no fórum sobre mandar e-mail com anexo... abraços.. Apolo Lira Compartilhar este post Link para o post Compartilhar em outros sites
alissong 1 Denunciar post Postado Dezembro 2, 2007 Apolo Lira, Andei sumido, pois no fim do ano o bicho tá pegando em meu serviço. Bom, mas vamos ao que interessa. Conversei com meu diretor sobre a hospedagem do site em um provedor fora da universidade. A idéia não foi bem aceita, mas ele ficou de analisar a proposta. Portanto, faço uma pergunta. Existe um provedor meia boca grátis para testar o site fora do localhost. Vou esperá-lo até fevereiro de 2008 na decisão, pois não posso ficar com um sistema bom, porém não quero deixá-lo somente no desktop. O phpmailer testarei somente depois 07/12/07, pois na semana que vem não tenho tempo para trabalhar no sistema. Um abraço. Alissong Compartilhar este post Link para o post Compartilhar em outros sites