Instalando as dependências para o trabalhar com o Framework Laravel
C:\wamp\bin\php\php***\php.ini
Configurar as variáveis de ambiente – PHP
Como instalar Apache, MySQL e PHP (LAMP) no CentOS 6.3
30/09/2012
Neste artigo vou descrever a maneira mais simples e rapida para configurar um servidor LAMP Apache, MySQL e PHP
Instalar o Apache
yum install httpd
instalar MySQL
yum install mysql-server
Iniciar o serviço do MySQL
service mysqld start
mysql_secure_installation
yum install php php-mysql
chkconfig httpd on
chkconfig mysqld on
service http start
Zebra – Impressora de Pulseiras HC 100
A Zebra HC100 foi desenvolvida especificamente para atender às necessidades de hospitais, clinicas de saude, laboratórios de analises clínicas e lugares que precisem ter uma identificação constante das pessoas, como lugares de lazer, hotéis, academias.
Com a Zebra HC100 o custo da pulseira fica mais barato e ainda é mais fácil e mais eficaz que as soluções em impressão a laser.
// Código de Barras ^FO60,2625^BCN,100,N,N,N,N^FD&variavel^FS
^FO200,2000^A0B,70,60^FD&nm_paciente^FS
alto
^FO40,2000^A0B,20,60^FDPRONTUARIO:&nr_prontuario^FS
Comprido e baixo
^FO90,2000^A0B,30,40^FDATENDIMENTO:&nr_atendimento^FS
Curto e alto
^XA ^FO60,2625^BCN,100,N,N,N,N^FD&nr_atendimento^FS ^FO30,2250^A0B,30,40^FDPRONTUARIO: &nr_prontuario^FS ^FO60,2225^A0B,30,40^FDATENDIMENTO: &nr_atendimento^FS ^FO100,2050^A0R,70,60^FD&nm_paciente^FS ^FO40,1500^A0B,30,40^FDNASC: 26/04/1990^FS ^FO40,1200^A0B,30,40^FDIDADE: 24a2m^FS ^FO200,1950^A0B,30,30^FDMEDICO: &nm_medico^FS ^FO250,2200^A0B,30,30^FDRESPONSÁVEL: &nm_responsavel^FS ^FO270,1450^A0B,20,30^FD** &ds_estab **^FS ^PRA ^PQ&nr_etiquetas ^FDvertical^FS ^XZ
Vertical
^FO40,240^A0,24,20^FDRESPONSÁVEL: &nm_responsavel^FS
^FO40,31^A0,30,30^FD&nm_paciente^FS
^FO40,60^BCN,70,N,N,N,N^FD&atend^FS
^FO400,75^A0,24,20^FDPRONT: &nr_prontuario^FS
^FO550,75^A0,24,20^FDINTER: &atend^FS
^FO400,95^A0,24,20^FDENTRADA: &dt_entrada^FS
^FO40,150^A0,24,20^FDNASC: &dt_nascimento^FS
^FO235,150^A0,24,20^FDIDADE: &ds_anos_meses^FS
^FO400,150^A0,24,20^FDSEXO: &ds_sexo^FS
^FO40,180^A0,24,20^FDEND: &ds_endereco^FS
^FO390,180^A0,24,20^FD&nr_endereco^FS
^FO440,180^A0,24,20^FD&ds_complemento^FS
^FO510,180^A0,24,20^FD&ds_bairro^FS
^FO40,210^A0,24,20^FDCIDADE: &ds_municipio^FS
^FO330,210^A0,24,20^FDUF: &sg_estado^FS
^FO400,210^A0,24,20^FDTEL: &nr_telefone^FS
^FO40,240^A0,24,20^FDRESPONSÁVEL: &nm_responsavel^FS
Para aprender mais sobre a programaçaõ ZPL II, clique nos links abaixo para ver o manual.
Editado em 01/05/2013 19:20h
Desenvolvendo um sistema de enquete (Novo) PHP/MySQL Parte 1 (Planejamento)
A pedido de alguns de visitantes estou reformulando o tutorial antigo de enquete.
O primeiro passo é definirmos a estrutura que iremos trabalhar. Esta estapa é um levantamento das informações que vamos precisar.
Este será um sistema para enquetes com ilimitadas opções, sendo que no tutorial anterior eu havia criado o banco de dados com varias colunas, porém não é o ideal, pois não devemos ter colunas na tabela que não serão utilizadas.
Na segunda parte, estarei fazendo um código mais simplificado pois o foco deste tutorial é trabalhar mais o conceito da enquete.
Abaixo vou colocar o código das tabelas do banco e irei explicar o que será armazenado em cada uma.
Para entender o porque usei algumas siglas nas colunas, sugiro a leitura do Artigo:
Padrões para Nomenclatura em um banco de dados
http://blog.fabianobento.com.br/2011/09/padroes-para-nomenclatura-em-um-banco-de-dados/
Diagrama
Começando pela tabela das perguntas.
Precisamos, de um código para a enquete, a data do cadastro para sabermos quando foi cadastrada. Eu coloquei a coluna DT_INICIO, DT_FIM, para configuramos no código fonte quando a enquete será iniciada e encerrada, desta forma não seria necessário acessar o painel de controle para esta tarefa.
CREATE TABLE IF NOT EXISTS `enquete_perguntas` ( `CD_ENQUETE` int(11) NOT NULL AUTO_INCREMENT COMMENT 'codigo da enquete', `DT_CADASTRO` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'data do cadastro', `NM_ENQUETE` varchar(150) NOT NULL COMMENT 'nome da enquete', `DS_PERGUNTA` varchar(150) NOT NULL COMMENT 'pergunta da enquete', `DT_INICIO` date NOT NULL COMMENT 'data inicio que será exibida', `DT_FIM` date NOT NULL COMMENT 'data final da exibição no site', `IE_SITUACAO` enum('A','I') NOT NULL COMMENT 'situação da enquete, Ativa ou Inativa', PRIMARY KEY (`CD_ENQUETE`), UNIQUE KEY `DT_INICIO` (`DT_INICIO`), UNIQUE KEY `DT_FIM` (`DT_FIM`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='Entidade para armazenar as perguntas das enquetes' AUTO_INCREMENT=2 ; -- -- Extraindo dados da tabela `enquete_perguntas` -- INSERT INTO `enquete_perguntas` (`CD_ENQUETE`, `DT_CADASTRO`, `NM_ENQUETE`, `DS_PERGUNTA`, `DT_INICIO`, `DT_FIM`, `IE_SITUACAO`) VALUES (1, '2013-04-25 17:48:15', 'Operadora de Celular', 'Qual sua operadora de celular?', '2013-04-25', '2013-04-30', 'A');
Como estamos fazendo um sistema para ilimitadas opções, precisamos de uma outra tabela para armazenas estes dados.
-- -- Estrutura da tabela `enquete_opcoes` -- CREATE TABLE IF NOT EXISTS `enquete_opcoes` ( `NR_OPCAO` int(11) NOT NULL AUTO_INCREMENT COMMENT 'numero da opção', `CD_ENQUETE` int(11) NOT NULL COMMENT 'FK codigo da enquete', `DS_OPCAO` varchar(150) NOT NULL COMMENT 'descrição da opção', `QT_VOTO` int(11) NOT NULL DEFAULT '0' COMMENT 'quantidade de votos', PRIMARY KEY (`NR_OPCAO`), KEY `FK_enquete_opcoes` (`CD_ENQUETE`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='Entidade para armazenar as opções das enquetes' AUTO_INCREMENT=7 ; -- -- Extraindo dados da tabela `enquete_opcoes` -- INSERT INTO `enquete_opcoes` (`NR_OPCAO`, `CD_ENQUETE`, `DS_OPCAO`, `QT_VOTO`) VALUES (1, 1, 'Claro', 0), (2, 1, 'Tim', 0), (3, 1, 'Vivo', 0), (4, 1, 'Oi', 0), (5, 1, 'Não tenho celular.', 0), (6, 1, 'Outra operadora', 0);
Tabela para armazenar os comentários das enquetes.
-- -- Estrutura da tabela `enquete_comentarios` -- CREATE TABLE IF NOT EXISTS `enquete_comentarios` ( `NR_SEQUENCIA` int(11) NOT NULL AUTO_INCREMENT COMMENT 'Numero sequencial', `CD_ENQUETE` int(11) NOT NULL COMMENT 'FK codigo da enquete', `DT_ENVIO` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'Data que o comentário foi enviado', `NR_IP` varchar(20) NOT NULL COMMENT 'numero de IP da pessoa que enviou', `NM_PESSOA` varchar(30) NOT NULL COMMENT 'nome da pessoa', `DS_EMAIL` varchar(60) NOT NULL COMMENT 'email da pessoa', `DS_COMENTARIO` tinytext NOT NULL COMMENT 'comentario sobre a enquete', `IE_SITUACAO` enum('A','P','R') NOT NULL COMMENT 'situação, Ativo, Bloqueado, Pendente de aprovação', PRIMARY KEY (`NR_SEQUENCIA`), KEY `FK_enquete_comentarios` (`CD_ENQUETE`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='Entidade para armazenar os comentários' AUTO_INCREMENT=1 ;
Esta tabela é uma das mais importantes, pois estaremos armazenando os logs de tudo o que acontecer com nossa enquete como; quem votou, quando, IP, e caso algum engraçadinho tente negativar sua enquete você poderá analisar os logs para identificar se houve alguma tentativa de burlar a enquete.
-- -- Estrutura da tabela `enquete_logs` -- CREATE TABLE IF NOT EXISTS `enquete_logs` ( `NR_SEQUENCIA` int(11) NOT NULL AUTO_INCREMENT, `CD_ENQUETE` int(11) NOT NULL, `NR_OPCAO` int(11) NOT NULL, `DT_ENVIO` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `NR_IP` varchar(20) NOT NULL, PRIMARY KEY (`NR_SEQUENCIA`), KEY `NR_OPCAO` (`NR_OPCAO`), KEY `CD_ENQUETE` (`CD_ENQUETE`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='Entidade para armazenar os LOGs' AUTO_INCREMENT=19 ; -- -- Extraindo dados da tabela `enquete_logs` -- INSERT INTO `enquete_logs` (`NR_SEQUENCIA`, `CD_ENQUETE`, `NR_OPCAO`, `DT_ENVIO`, `NR_IP`) VALUES (6, 1, 4, '2013-04-30 03:26:58', '127.0.0.1'), (7, 1, 1, '2013-04-30 03:27:01', '127.0.0.1');
Relacionamentos entre as tabelas
-- -- Restrições para a tabela `enquete_comentarios` -- ALTER TABLE `enquete_comentarios` ADD CONSTRAINT `FK_enquete_comentarios` FOREIGN KEY (`CD_ENQUETE`) REFERENCES `enquete_perguntas` (`CD_ENQUETE`); -- -- Restrições para a tabela `enquete_logs` -- ALTER TABLE `enquete_logs` ADD CONSTRAINT `FK_enquete_logs` FOREIGN KEY (`NR_OPCAO`) REFERENCES `enquete_opcoes` (`NR_OPCAO`); -- -- Restrições para a tabela `enquete_opcoes` -- ALTER TABLE `enquete_opcoes` ADD CONSTRAINT `FK_enquete_opcoes` FOREIGN KEY (`CD_ENQUETE`) REFERENCES `enquete_perguntas` (`CD_ENQUETE`);
PHP – Upload de arquivos
Para upload maiores de 2MB, localizar e editar o arquivo php.ini.
http://php.net/file-uploads
file_uploads = On
Diretório temporário para upload de arquivos HTTP (vai usar o padrão do sistema, se não especificado).
http://php.net/upload-tmp-dir
upload_tmp_dir = “e :/ wamp / tmp”
O tamanho máximo permitido para arquivos enviados.
http://php.net/upload-max-filesize
upload_max_filesize = 2M
Tamanho máximo de dados POST que o PHP irá aceitar.
http://php.net/post-max-size
post_max_size = 8M
Configurando conexão com PHP + Oracle usando CentOS 6.3 / Red Hat 6.3
Neste artigo vou descrever a maneira mais simples e rapida para configurar o PHP para suporte com Oracle.
Antes de iniciar é necessário ter alguns pacotes básicos instalados;
1 | # yum install gcc gcc-c++ autoconf libaio |
Instalar o servidor web Apache
O comando abaixo instala o servidor web apache.
1 | # yum -y install httpd |
Configure para iniciar junto co o boot
Agora configuramos o apache para iniciar junto com o boot.
1 | # chkconfig httpd on |
Instalar o PHP
Instalando o PHP
1 | # yum -y install php php-devel php-pear |
Para instalar todas as bibliotecas do PHP – esta etapa não é obrigatoria
O comando abaixo instala todas as extensões disponíveis para o PHP
1 | # yum -y install php* |
Configurar o SELINUX
Agora vamos desabilitar SELINUX para não interferir no servidor httpd
1 2 3 | /etc/sysconfig/selinux # SELINUX=disabled |
Instalar o Oracle client
Agora precisamos baixar o client do oracle no site Oracle.com é necessário fazer um cadastro rápido e gratuito.
Lembrando que você deve baixar de acordo com a arquitetura i686 ou x64
O comando abaixo instala os pacotes RPM.
x86_64
oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64.rpm
oracle-instantclient11.2-devel-11.2.0.3.0-1.x86_64.rpm
1 2 | # rpm -ivh oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64.rpm # rpm -ivh oracle-instantclient11.2-devel-11.2.0.3.0-1.x86_64.rpm |
i686/i386
oracle-instantclient11.2-basic-11.2.0.1.0-1.i386.rpm
oracle-instantclient11.2-devel-11.2.0.1.0-1.i386.rpm
1 2 | # rpm -ivh oracle-instantclient11.2-basic-11.2.0.1.0-1.i386.rpm # rpm -ivh oracle-instantclient11.2-devel-11.2.0.1.0-1.i386.rpm |
Agora é necessário setar a variável D_LIBRARY_PATH para o caminho da instalação do oracle client, que será carregado durante a Instalação do OCI8
1 2 | # export LD_LIBRARY_PATH=/usr/lib/oracle/ # export LD_LIBRARY_PATH=/usr/lib64/oracle/ |
PHP – Instalação das extensões PECL
http://php.net/manual/pt_BR/install.pecl.php
Instalar o OCI – http://pecl.php.net/package/oci8
1 | # pecl install oci8 |
Quando for solicitado o caminho do oracle_home, pressione enter caso tenha usado o comando export LD_LIBRARY_PATH apontando para o caminho do oracle client ou informar o caminho da instalação
Lembrando que tem diferença entre as plataformas i686 e x64(de acordo com a versão de plataforma e client do oracle usados)
Para suporte
http://php.net/manual/pt_BR/install.pecl.php
Editar o arquivo php.ini
1 | # /etc/php.ini |
Acrescentar a linha
1 | # extension=oci8.so |
reiniciar o host
1 | # reboot |
após reiniciar crie um arquivo phpinfo.php
1 | <!--?php phpinfo(); ?--> |
Se tudo ocorreu bem deverá aparecer o modulo OCI conforme a imagem abaixo
1 2 3 4 5 6 7 8 9 10 | When running the CLI version of PHP from the command line, you may receive errors like the following: [root@myserver /root]$ php -v PHP Warning: Module 'pcre' already loaded in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/php5/lib/php/extensions/no-debug-non-zts-20060613/spl.so' - /usr/local/php5/lib/php/extensions/no-debug-non-zts-20060613/spl.so: Undefined symbol "pcre_exec" in Unknown on line 0 PHP Warning: Module 'SimpleXML' already loaded in Unknown on line 0 PHP Warning: Module 'session' already loaded in Unknown on line 0 PHP Warning: Module 'exif' already loaded in Unknown on line 0 PHP 5.2.3 (cli) (built: Jun 14 2007 15:29:17) Copyright (c) 1997-2007 The PHP Group Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies |
Como resolver?
-Verifique se desabilitou o SELINUX após a configuração é necessário reiniciar o host.
Atualizado em 28/04/2018
Para instalar o suporte para PHP 5.4 no Linux CentOS 7
pecl install oci8-2.0.12
Extra: Quando tiver problemas para conexão pelo SQL PLUS (sqlplus command not found on Linux)
(para usar o SQLPLUS)
# yum install glibc.i686
Você pode abrir o SQLPLUS para testar a conexão com o banco de dados
Digite no terminal o comando sqlplus
# sqlplus
Para descobrir o diretorio de instalação do Oracle
#find / -name sqlplus -print
Resultado será parecido com:
# /u01/app/oracle/product/database/bin/sqlplus
Execute o comando para indicador o local
ORACLE_HOME=/u01/app/oracle/product/database
export ORACLE_HOME
PATH=$PATH:$ORACLE_HOME/bin
export PATH
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | function log_sql_erro($mensagem){ $descricao = mysql_error(); $nr_erro = mysql_errno(); $error = "MySQL erro: $descricao"; $error .= "Numero do erro: $nr_erro"; $error .= "Data:" . date ("D, F j, Y H:i:s"); $error .= "IP: " . getenv("REMOTE_ADDR"); $error .= "Browser" . getenv("HTTP_USER_AGENT"); $error .= "Referer" . getenv("HTTP_REFERER"); $error .= "Server name" . getenv("SCRIPT_NAME"); $error .= "Script Name" . getenv("SERVER_NAME"); $error .= "Server" . getenv("SERVER_SOFTWARE"); $error .= "OS" .PHP_OS; $error .= "PHP Versao" . PHP_VERSION; $error .= ""; echo $error; exit(); } |
Tendo a necessidade para um maior controle das ligações que são feitas e dividir os custos por setor da empresa, iremos integrar o LOG que o software remora cria a cada ligação que é feita.
O PABX intelbras permite controlar as ligações atráves de usuário e senha, os usuário vão de 00 a 99, o pabx está conectado no servidor atraves da porta serial.
O remora gera 2 tipos de LOG, sendo um por ramal onde originou as ligações e outro por codigo de usuário que fez as ligações. Este logs ficam dentro na pasta(INTEGRA) onde o remora foi instalado.
Esta integração será feita usando um script PHP que ficara como uma tarefa agendada(CRON), para ser executada 2 vezes por dia, as 12h e 24h.
arquivos de log
Por código sendo os 2 ultimos caracteres no nome do arquivo o codigo de usuário.
CODIGO00.TXT, CODIGO01.TXT, CODIGO02.TXT, CODIGO03.TXT, CODIGO04.TXT…
CONTEUDO DO ARQUIVO CODIGO00.TXT
1 2 3 4 | Hora T OP TR RRRRR NNNNNNNNNNNNNNNNNNNN HH:MM:SS HH:MM:SS DD/MM/AAAA CL 99999,99 CP DDDDDDDDDDDDDDDDDDDDDDDDD 15:55:43 S 12 32 304 99999999 15:36:35 00:00:18 20/10/2011 5 0,28 00 CELULAR DDD 016 15:55:45 S 12 04 304 99999999 15:37:24 00:00:14 20/10/2011 7 0,13 00 FRANCA 16:00:06 S 12 31 304 99999999 15:59:41 00:00:23 20/10/2011 5 0,00 00 Fabiano celular |
CONTEUDO DO ARQUIVO RMO00300.TXT
Por ramal sendo os 5 ultimos caracteres no nome do arquivo o numero do ramal.
RMO00300.TXT
1 2 3 | 03 300 99999999 10:30:54 00:00:07 20110627 0,15 12 32 300 99999999 10:41:51 00:02:46 20110627 2,10 12 01 300 99999999 10:50:51 00:00:07 20110627 0,15 12 |
Obs.: não esqueça de configurar o PHP para conectar ao oracle
Caso seu servidor web esteja em um ambiente separado do servidor com o remora instalado, você poderá criar scripts em shell para transferir os arquivos ou compartilhar a pasta, enfim faça da maneira que irá te atender.
Vamos ao que interessa;
O codigo está comentado, por isso não vou explicar passo a passo.
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 | set_time_limit(0); //definiar tempo para execução do script caso o arquivo tenha muitas linhas ob_start(); require_once('conecta_oracle.php'); //configure conforme o seu ambiente. // "\ip_servidorpasta_compartilhadaarquivos do LOG" $diretorio_data = "C:\intranet\www\data_txt\"; //listar arquivos do diretorio. $$dir = @opendir($diretorio_data); $i=0; while (false !== ($file = readdir($$dir))) {// while pastas if ($file != "." && $file != ".." && $file != "Thumbs.db" && $file != $dir) { // if pastas $i++; $indice[$i] = "$file"; $nm_arquivo = $indice[$i] = "$file"; $tipo = substr($indice[$i], 0, 6); $codigo_ramal = substr($indice[$i], 6, 2); // recebe parametros if($tipo == 'CODIGO'){ //imprimi o nome do arquivo echo $nm_arquivo; echo ' -- '.$i.'<br />'; $arquivo = $diretorio_data.$nm_arquivo; if (file_exists($arquivo)) { $ponteiro = fopen ("$arquivo", "r"); $num_linhas = 0; $caracteres = 0; while (!feof ($ponteiro)) { if ($linha = fgets($ponteiro, 4096)){ $num_linhas++; $caracteres += strlen($linha); if ($num_linhas != "1"){ // ignorar a primeira linha do arquivo cabeçalho. $DATA_IMPORTACAO = date('d/m/Y');//; $DS_USUARIO = 'import'; $CD_PABX = $codigo_ramal; $HR_LEITURA = substr($linha, 0, 9); $DS_TIPO = substr($linha, 9, 1); $DS_OP = substr($linha, 11, 2); $DS_TR = substr($linha, 14, 2); $NR_RAMAL = substr($linha, 17, 5); $NR_LIGACAO = substr($linha, 23, 20); $HR_LIGACAO = substr($linha, 44, 8); $DS_DURACAO = substr($linha, 53, 8); $DT_LIGACAO = substr($linha, 62, 10); $DS_CL = substr($linha, 73, 2); $VL_LIGACAO = substr($linha, 76, 8); $DS_CP = substr($linha, 85, 2); $DS_DESTINO = substr($linha, 88, 25); $consulta = "INSERT INTO hak_pabx_registro_codigo_tb ( NR_SEQUENCIA, DATA_IMPORTACAO, DS_USUARIO, CD_PABX, HR_LEITURA, DS_TIPO, DS_OP, DS_TR, NR_RAMAL, NR_LIGACAO, HR_LIGACAO, DS_DURACAO, DT_LIGACAO, DS_CL, VL_LIGACAO, DS_CP, DS_DESTINO ) VALUES ( HAK_TELEFONIA_SEQ.Nextval, '$DATA_IMPORTACAO', '$DS_USUARIO', '$CD_PABX', '$HR_LEITURA', '$DS_TIPO', '$DS_OP', '$DS_TR', '$NR_RAMAL', '$NR_LIGACAO', '$HR_LIGACAO', '$DS_DURACAO', '$DT_LIGACAO', '$DS_CL', '$VL_LIGACAO', '$DS_CP', '$DS_DESTINO' )"; $stid = oci_parse( $conexao, "".$consulta."" ) or die ( " erro " . oci_error() ); oci_execute ( $stid ); //$exec = oci_execute( $stid , OCI_DEFAULT); oci_commit( $conexao ); // commits all new values: 1, 2, 3, 4, 5 }//if ignora primeira linha }//if }//while echo 'total de importações: ' . $num_linhas_total = $num_linhas_total + $num_linhas; fclose ($ponteiro);//FECHA O PONTEIRO DO ARQUIVO // você poderá apagar o arquivo para não importar o mesmo arquivo 2 vezes, ou renomear //unlink("$arquivo"); //rename($arquivo, "importado".$arquivo."000");// }//exists else { // FILE EXISTS echo "O arquivo $arquivo não FOI FOI ENCONTRADO"; } }//tipo } } // fecha while oci_free_statement($stid); oci_close($conexao);//fecha a conexão atual |
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.
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)