Bom pessoal, o objetivo desse tutorial é ensinar a vocês como enviar SMS atraves de um script PHP usando um modem, ou seu aparelho de celular.

Neste tuto estou usando o programa de gateway OZEKI NG, que pode ser baixado e usado por 30 dias grátis.

Eu andei pesquisando e não encontrei muita coisa sobre o assunto, porém existem várias empresas que oferecem o serviço gateway de SMS e cobram cerca de 0,20 por mensagem enviada.

As operadoras de telefonia movel cobram R$ 0,50 centavos por dia, para você enviar ilimitadas mensagens resumindo você gastaria apenas R$ 15,00 por mês para enviar ilimitados SMS.
Para começar baixe o programa no site: Ozekisms
http://www.ozekisms.com/index.php?owpn=112
http://www.ozekisms.com/index.php?owpn=433&dpath=%2Fattachments%2F113%2Finstall_1327415285_OzekiNG-SMS-Gateway_4.2.5.zip&dname=Ozeki+NG+SMS+Gateway+v4.2.5&dsize=+%289.3+MB%29+

Em seguida instale o programa(não vou entrar em detalhes da instalação) pois é bem simples além de ter uma opção para detectar automaticamente seu dispositivo e a porta(ex. das portas COM1, COM2, COM3, COM4).

Após instalado você poderá acessar o gateway para fazer as configurações.
http://127.0.0.1:9501/

Você pode se certificar em qual porta seu dispositivo esta atraves do gerenciador de dispositivos do windows.

Apos configurado aguarde alguns minutos para o programa reconhecer o dispositivo e enviar as mensagens.

O proximo passo é criar um formulário e o script php que enviára as informações para o gateway.

Read More →

Oracle/PLSQL: Criando Sequence (CREATE SEQUENCE)

Uma sequence é um gerador de numeros sequenciais, e pode ser parametrizada conforme sua necessidade.

Comando para criar a sequence
Sintaxe

create sequence TESTE_SEQ
minvalue 1
maxvalue 9999999999
start with 1
increment by 1
nocache
cycle;

minvalue = Valor minimo
max value = valor máximo que poderá chegar
start with = valor inicial
increment by 1 = (incremento), se este valor for 2, a sequence será incrementada como; 1,3,5,7,…
CYCLE = Sequencia será recomeçada ao atingir o valor maximo
NO CYCLE = default
OWNED BY table.col = Associa a uma coluna
OWNED BY NONE = sem associação

para testar a sequence

Read More →

Cria um arquivo com o nome teste.bat e coloque o codigo abaixo.

WINDOWS – teste.bat

1
2
md pasta_teste
exit

LINUX – teste.sh

1
2
mkdir /var/www/html
exit

O SCRIPT PHP

1
2
3
4
5
//WINDOWS
exec ('C:intranetwwwscriptsteste.bat');
 
//LINUX
exec('/home/teste/teste.sh');

Não esqueça de atribiur as permissões de leitura, escrita e execução para o script.(777)

Imprimir direto pelo PHP

Primeiro você deve configurar o php, abra o arquivo php.ini e descomente a linha a seguir;

1
extension=php_printer.dll

Em seguida reinicie o servidor web.

Crie um arquivo com o nome de teste.txt, e coloque algum texto dentro dele(apenas para testar).
teste.txt

1
estamos testando nosso arquivo teste.txt

O próximo passo é verificar o nome da impressora, a minha esta com o nome de (hplasercolor).

Crie um arquivo com o nome imprimir.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//configure o nome da sua impressora
$printer = "hplasercolor";
if($ph = printer_open($printer))
{
   // Get file contents
//abrindo o arquivo de texto
   $fh = fopen("teste.txt", "rb");
//llendo o arquivo de texto
   $content = fread($fh, filesize("teste.txt"));
   fclose($fh);
 
   // Set print mode to RAW and send PDF to printer
   printer_set_option($ph, PRINTER_MODE, "RAW");
   printer_write($ph, $content);
   printer_close($ph);
}
else "Couldn't connect...";

Para maiores informações visite o site oficial do PHP
http://br2.php.net/manual/pt_BR/book.printer.php

Cannot modify header information – headers already

Recebi alguns emails de usuários com duvidas sobre um erro bem comun que aparece ao usar o comando header. Para corrigir ou fazer com que o erro não apareça mais é bem simples.

Usando a função do PHP (ob_start — Ativa o buffer de saída) é uma das soluções.
http://www.php.net/manual/pt_BR/function.ob-start.php

session_start — Inicia dados de sessão
http://www.php.net/manual/pt_BR/function.session-start.php

Para corrigir esse problema no dreamweaver, pressione CTRL + U(janela de preferencias), em categorias selecione new document(novo documento) e desmarque a opção include unicode signature.

Geralmente esse erro aparece por causa de espaçõs em branco antes da TAG PHP ou por midificação do header apos ja ter impresso informações na tela do usuário, caso esteja chamando arquivos por include, require verifique estes arquivos também.

Até a proxima.

Oi pessoal, estou publicando um dos exercícios da prova de Estrutura de Dados sobre listas dinâmicas que fiz em parceria com meu amigo Thiago Castello que é fera em linguagem C.
segue o código.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
 
 
#include <stdio.h> //carrega as bibliotecas
#include <stdlib.h>
 
//declaracao da lista
struct No{
        int valor;
        struct No * prox;
       };
 
struct No * Lista;
 
int main (void){
  Lista = NULL;
  int opcao;
  int x;
 
  do {
   printf ("nn Digite a opcao desejada:");
   printf ("n 1-inserir ");
   printf ("n 2-remover ");
   printf ("n 3-buscar ");
   printf ("n 4-Sair do programa nn");
   scanf ("%d", &opcao);
 
   switch (opcao){
 
     case 1:
           {
             printf ("nDigite o preco: ");
             scanf ("%d", &x);
 
             struct No * aux= (struct No *) malloc (sizeof (struct No));
             aux -> valor = x;
             aux-> prox = Lista;
             Lista =aux;
             printf ("n preco adicionado!n");
             break;
             }
 
    case 2: //remover
             {
               printf ("npreco a ser removido");
               scanf ("%d", &x);
               struct No * aux;
               struct No * ant;
 
               aux = Lista;
               ant = NULL;
               while (aux != NULL){
                     if (aux->valor == x){
 
                       if (aux == Lista)
                       {
                          Lista = aux->prox;
 
                       }
                       else{
                            ant->prox= aux-> prox;
                           }
                       printf ("nRemovido com sucesso!");
                       break;
                     }
                     else{
                           ant = aux;
                           aux = aux ->prox;
                         }
               }
 
             }
             break;
    case 3 : //buscar
                {
              int vlbusca;
             printf("digite o valor da busca:");
             scanf("%d",&vlbusca);
 
 
               struct No * aux;
               aux= Lista;
               while (aux != NULL)
               {
                   if(aux->valor == vlbusca)
                   { printf ("n o valor existe:", vlbusca);
 
                   } else {
                          printf ("n o valor nao existe:", vlbusca);
                          }
 
                  aux = aux -> prox;
 
               }
 
               break;
                }
 
 
    case 4: {
        break;
 
           }
   } //fim do switch
  } while (opcao != 4); //sair do programa
}

Para implementar editar e criar o executavel indico o programa Dev-C++ que pode sei baixado atraves de um dos links abaixo.
http://www.baixaki.com.br/download/dev-c-.htm
http://www.bloodshed.net/devcpp.html
O Dev-C++ é gratuito e de código aberto

Projeto Service manager

01 Introdução – http://blog.fabianobento.com.br/2011/09/projeto-service-manager/
02 Padrões para o projeto e especificações – http://blog.fabianobento.com.br/2011/09/projeto-service-manager-padroes-para-projeto-especificacoes/

Padrões para Nomenclatura em um banco de dados
1. INTRODUÇÃO

O objetivo deste documento é prover informações para formalizar a nomenclatura dos objetos de banco de dados, bem como apresentar regras para sua utilização evitando assim o hábito de existir diferentes nomenclaturas dentro da aplicação.
O documento apresenta os objetos de banco de dados com três itens:
Sintaxe, regras e exemplo. Isto para facilitar o entendimento do desenvolvedor.

2. BANCO DE DADOS

O nome do banco de dados deverá identificar o negócio que está sendo automatizado ou deverá refletir a sigla da aplicação.

Sintaxe:

{[a.. z]} _ xxxxxx , onde:

xxxxxx – indica o nome da aplicação que o banco de dados irá atender.
Para o nome da aplicação utilizar tudo em minúsculo com no máximo 25 caracteres de ‘a’ a ‘z’.

3. TABELAS

Exemplos:

tb_ordem_servico – Tabela de ordens de serviços
tb_pessoa – Tabela de pessoa física
tb_cliente – Tabela de clientes.

4. NOME DAS COLUNAS

Identificação Descrição do atributo Tipo de dado utilizado
NM Nome de coluna que irá armazenar valores “string”, ou seja, caracteres.(utilizar para nome próprio) String
NR Nome de coluna que irá armazenar valores numéricos inteiros, para conteúdos significativos. Numérico
IE INDICAR SITUAÇÕES ESPECIAIS, 

Nome de coluna que irá armazenar valores numéricos inteiros, utilizado em um dicionário de dados (Domínio)

Ex. 0 Aberto, 1 Fechado, 3 Cancelado

Numérico/String
DS Nome de coluna que irá armazenar valores “string”, ou seja, caracteres que são descritivos. String (caracteres)
DT Nome de coluna que irá armazenar valores do tipo data Data
HR Nome da coluna que irá armazenar valores do tipo hora Hora
VL Nome de coluna que irá armazenar valores numéricos, ou seja, números que podem possuir casas decimais Numérico
CD Nome de coluna que irá armazenar valores numéricos inteiros, utilizado em atributos falsos. Numérico
ST Nome de coluna que irá armazenar valores do tipo caracteres com conteúdo pré-estabelecido. Ex. Coluna ST_Cliente pode ter seu conteúdo como sendo “A” ou “I” e nenhum outro valor a não ser esses estipulados String
SG Nome de coluna que irá armazenar siglas, EX. Coluna SG_ESTADO pode ter seu conteúdo como sendo as siglas de estados, SP, MG, GO, SC. String

Regras:

– Para siglas utilizar todas as letras em maiúsculo;
– Usar palavras no singular e sem acentuação;
– Usar nome que identifique e individualize o dado dentro da tabela;
– Dar nomes distintos para dados distintos;
– Utilizar o nome sempre no singular;
– Sempre acrescentar comentário sobre a informação da coluna

Exemplos:

Cd_pessoa – código da pessoa
nm_pessoa – nome da pessoa
dt_nascimento – data de nascimento
vl_salario – valor do salário

As informações da padronizção do banco de dados foram criadas a partir de estudos e pesquisas em outros sistemas e na internet.

Projeto Service manager

01 Introdução – http://blog.fabianobento.com.br/2011/09/projeto-service-manager/

Antes de iniciarmos as tarefas e criação da documentação decidimos criar padrões para o desenvolvimento para facilitar o trabalho entre os integrantes do grupo.

Fizemos uma discussão para definirmos um padrão para o projeto, layout das telas, idioma de desenvolvimento e algumas outras estruturas.

O resultado final ficou da seguinte maneira;

Idioma de desenvolvimento
(Inset, update, delete)
Ex.: InsereCliente
EX.: InsertCliente
Atualiza <-> Update
Apaga <-> Delete

Ficou definido a utilização no idioma português.

Layout das telas
Ficou definido que as telas serão compostas por campo de busca, opção de inserir novos cadastros, e lista de alguns registros com opção de edição a partir da lista.

A partir desta discussão sugeri uma padronização para nomenclatura do banco de dados, que deverá ser minha próxima publicação.

Link para o artigo:

http://blog.fabianobento.com.br/2011/09/padroes-para-nomenclatura-em-um-banco-de-dados/

Projeto Service manager

Iniciamos um trabalho no curso de SI, que será a apresentação do projeto de um sistema WEB funcionando, nosso grupo é composto por cinco integrantes; Adilson, Aldovrando, Eu(Fabiano), Heitor e Henrique. O tema definido pelo grupo foi o desenvolvimento de um Sistema de Gestão de Ordens de Serviços e Vendas.
Vou tentar publicar toda semana a documentação que estamos fazendo baseando nos estudos que vimos ao decorrer do Curso.

Discutimos sobre as tecnologias que iríamos usar, lembrando que o projeto deverá ser desenvolvido para WEB para funcionar em plataforma Windows ou Linux no padrão MVC(http://pt.wikipedia.org/wiki/MVC).
Linguagens da discussão; Java, PHP, .Net e Adobe Flex (AS – ActionScript)
Banco de dados: Oracle, MySQL

As tecnologias que escolhemos no final da discussão para usar no projeto são:

Linguagem: PHP / MySQL (ainda em discusão para usar Flex no visual)
Banco de Dados: MySQL

 

A próxima etapa será definir os padrões para o projeto e especificação dos use cases.