Acessar pasta tmp

cd /tmp

1- Download
64 bit
wget http://www.zvps.co.uk/downloads/centos/10-1-0/installer-10-1-0-centos-64.sh.x.tar.gz
32
wget http://www.zvps.co.uk/downloads/centos/10-1-0/installer-10-1-0-centos-32.sh.x.tar.gz

2- Descompactar
64 bit
tar -xf installer-10-1-0-centos-64.sh.x.tar.gz

32 bit
tar -xf installer-10-1-0-centos-32.sh.x.tar.gz

3- permissão
64 bit
chmod +x installer-10-1-0-centos-64.sh.x

32 bit
chmod +x installer-10-1-0-centos-32.sh.x

4-Pré requisitos

yum install ld-linux.so.2 curl

5-Instalando
64 bit
./installer-10-1-0-centos-64.sh.x

32 bit
./installer-10-1-0-centos-32.sh.x

America/Sao_Paulo
server.fabianobento.com.br
y

Após a instalação acess o diretório root, e abra o arquivo passwords.txt para ver os dados de acesso.

Caso perca a senha do

Login to your SSH console or open a console windows if you have physical acces to your server, then type in:
http://docs.zpanelcp.com/?node=43
setzadmin –set new-password

Links:

Informações:http://docs.zpanelcp.com/?node=7
Desinstalar: forums.zpanelcp.com/thread-4648.html
http://www.zpanelcp.com/download/
http://www.zvps.co.uk/zpanelcp/centos-6
http://www.php.net/manual/pt_BR/timezones.america.php

http://www.google.com.br/#biw=1280&bih=852&sclient=psy-ab&q=instalar+zpanel+centos&oq=instalar+zpanel+centos&gs_l=hp.3..0i13i30l3j0i10i30.1043.6089.0.6177.24.24.0.0.0.0.312.5315.2-22j1.23.0…0.0…1c.1.16.psy-ab.BNtvjnemK5Q&pbx=1&bav=on.2,or.r_qf.&bvm=bv.47534661,d.dmg&fp=9034b8c58fa6c127

Arquivo db/conexao.php

/*
arquivo de conexão com o banco
bd/conexao.php
*/
$host = "localhost";
$database = "enquete";
$login_db = "root";
$senha_db = "";
$conexao = mysql_connect ($host, $login_db, $senha_db) or die (mysql_error());
$db = mysql_select_db($database);

arquivo enquete.php


 
= '$data' LIMIT 1"; $limite_enquete = mysql_query("$sql_enquete"); $row_enquete = mysql_num_rows($limite_enquete); if ($row_enquete != 1){ echo "Neste momento, não existe enquete para votação!"; }else { $dados_enquete=mysql_fetch_array($limite_enquete); $cod_enquete = $dados_enquete['CD_ENQUETE']; $DtInicio = $dados_enquete['DT_INICIO']; $arrayinicio = explode('-', $DtInicio); $DtInicio_dta = $arrayinicio[0]; $DtInicio_dtm = $arrayinicio[1]; $DtInicio_dtd = $arrayinicio[2]; $DtFinal = $dados_enquete['DT_FIM']; $arrayfinal = explode('-', $DtFinal); $DtFinal_dta = $arrayfinal[0]; $DtFinal_dtm = $arrayfinal[1]; $DtFinal_dtd = $arrayfinal[2]; $nome_enquete = $dados_enquete['NM_ENQUETE']; echo '
Inicio da enquete:' . $DtInicio_dtd."/".$DtInicio_dtm."/".$DtInicio_dta; echo '
Fim da enquete:' . $DtFinal_dtd."/".$DtFinal_dtm."/".$DtFinal_dta; $pergunta_enquete = $dados_enquete['DS_PERGUNTA']; echo '
' . ucfirst($nome_enquete); echo '
'; echo '
' . ucfirst($pergunta_enquete); echo '
'; $limite_opcoes = mysql_query("SELECT * FROM `enquete_opcoes` WHERE `CD_ENQUETE` = ".$cod_enquete.""); while ($dados_opcao =mysql_fetch_array($limite_opcoes)){ $NR_SEQUENCIA = $dados_opcao['NR_OPCAO']; $DS_OPCAO = $dados_opcao['DS_OPCAO']; echo " $DS_OPCAO
"; } } ?> Resultado parcial

Ficará como a imagem abaixo.

arquivo_enquete

arquivo enquete-salvar-voto.php


require('db/conexao.php');


				$resultado = $_POST['enquete'];

				if($resultado==""){
echo "nenhuma opção foi selecionada.";
				exit;
				}else {

				$data_envio		= date('Y-m-d');
				$hora_envio		= strftime("%H:%M:%S");
				$ip_envio		= getenv('REMOTE_ADDR');

				$cod_enquete = $_POST['cod_enquete'];

				 mysql_query("INSERT INTO  `enquete_logs` (`NR_SEQUENCIA`, `CD_ENQUETE`, `NR_OPCAO`, `DT_ENVIO`,`NR_IP`) VALUES ('NULL',  '$cod_enquete', '$resultado', CURRENT_TIMESTAMP ,  '$ip_envio');");


				echo "obrigado pelo voto!";

				}

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
diagram_enquete
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

Problemas comuns

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();
}

Hoje vou mostrar como instalar e configurar o script PHPSysInfo no Red Hat 6.2,
O PhpSysInfo é um script PHP que exibe as informações do Hardware e Sistema, mas antes temos que instalar e configurar o Apache + PHP.
print_phpsysinfo

Para ver uma demostração do script funcionando acesse o link
http://phpsysinfo.sourceforge.net/phpsysinfo

Começando vamos instalar o apache e PHP, no terminal digite o comando abaixo lembrando que é necessário estar logado como root.

1
yum install httpd php php-xml -y

vamos configurar servidor web para iniciar junto com o OS.

1
chkconfig httpd on

agora inicie o servidor web com o comando

1
service httpd start

abra o navegador e digite o ip do servidor para ver se esta funcionando, será mostrada uma tela conforme imagem abaixo.
Red Hat

agora vamos criar uma pasta com o nome ‘phpsysinfo’ dentro do diretorio /var/www/

1
mkdir /var/www/phpsysinfo

Baixe o script no link http://phpsysinfo.sourceforge.net/ e descompacte ele no diretorio que criamos acima.

Renomeie o arquivo config.php.new para config.php

1
rename config.php.new config.php

em seguida vamos alterar a pagina padrão do apache para mostrar o script como principal.

Edite o arquivo /etc/httpd/conf/httpd.conf acrescente no final do arquivo as linhas abaixo, alterando conforme as configurações do seu server.

1
2
3
4
5
6
7
8
NameVirtualHost *:80
<virtualHost *:80>
    ServerAdmin eu@fabianobento.com.br
    DocumentRoot /var/www/phpsysinfo
    ServerName srv01.fabianobento.com.br
    ErrorLog logs/srv01.fabianobento.com.br-error_log
    CustomLog logs/srv01.fabianobento.com.br-access_log common
</virtualHost>

vamos editar o arquivo welcome.conf para não carregar mais a pagina padrão do apache.
usando o vi ou um outro de sua preferencia abra o arquivo /etc/httpd/conf/conf.d/welcome.conf e comente todas as linhas usando o #(sharp) na primeira coluna.

1
/etc/httpd/conf/conf.d/welcome.conf

reinicie o serviço apache

1
service httpd restart

Não esqueça de liberar a porta 80 no firewall (IPTABLES)

Pronto! agora você ja pode ver as estatisticas do sistema.

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

Read More →

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 →

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)