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

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)

Demostração básica sobre Encapsulamento utilizando PHP OO

O Encapsulamento é um recurso de proteção de acesso a propriedades de uma classe.

Public -> qualquer um pode acessar
Private -> apenas acesso interno
Protected -> sub-classes podem acessar

 

http://php.net/manual/pt_BR/language.oop5.php

Exemplo

Classe Agenda

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
class Agenda
{
    private $evento;
    private $data;
    private $descricao;
 
		public function setEvento( $evento ) {
			$this->evento = $evento;
		}
		public function getEvento() {
			return $this->evento;
		}
 
		public function setData( $data ) {
			$this->data = $data;
		}
		public function getData() {
			return $this->data;
		}
 
		public function setDescricao( $escricao ) {
			$this->escricao = $escricao;
		}
		public function getDescricao() {
			return $this->escricao;
		}
}

testanto a classe Agenda

1
2
3
4
5
6
7
$agenda = new Agenda();
$agenda->setEvento("Festa dos 100 dias");
$agenda->setData("14/03/2012");
$agenda->setDescricao("A festa mais esperado do ano!!!");
 
 
print_r($agenda);

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.

listar os arquivos de um diretorio

1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
//caminho do diretório
$diretorio_data = "/home/www/data_txt/";
 
$$dir = @opendir($diretorio_data);
$i=0;
while (false !== ($file = readdir($$dir))) {// while pastas
//ignora diretorios
	if ($file != "." && $file != ".." && $file != "Thumbs.db" && $file != $dir) { // if pastas
		$i++;
		$indice[$i] = "$file";
		echo $nm_arquivo 	= $indice[$i] = "$file";
	}
} // fecha while

Script para criar conta de email no cpanel

Antes de começar acesse o cpanel para descobrir qual o tema(skin) que esta em uso. Geralmente esta informação fica no lado esquerdo.
Veja imagem abaixo;

Tema Skin cPanel

Tema Skin cPanel

Crie um arquivo com um nome qualquer, aqui no exemplo usarei cpanel_criar_email.php

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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
<?php
$cpuser = 'usuario'; // Usuário cPanel
$cppass = 'sua-senha'; // Senha de acesso ao cPanel
$cpdomain = 'coloqueseudominio.com.br'; // Seu dominio ou IP do servidor.. ex. seusite.com.br
$cpskin = 'x3';  // indique o tema(skin) que esta em uso
 
 
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Script para criar conta de email no cpanel</title>
<link rel='stylesheet' id='nextgen_gallery_related_images-css'  href='http://blog.fabianobento.com.br/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_gallery_display/static/nextgen_gallery_related_images.css?ver=3.8' type='text/css' media='all' />
<link rel='stylesheet' id='open-sans-css'  href='//fonts.googleapis.com/css?family=Open+Sans%3A300italic%2C400italic%2C600italic%2C300%2C400%2C600&subset=latin%2Clatin-ext&ver=3.8' type='text/css' media='all' />
<link rel='stylesheet' id='dashicons-css'  href='http://blog.fabianobento.com.br/wp-includes/css/dashicons.min.css?ver=3.8' type='text/css' media='all' />
<link rel='stylesheet' id='admin-bar-css'  href='http://blog.fabianobento.com.br/wp-includes/css/admin-bar.min.css?ver=3.8' type='text/css' media='all' />
<link rel='stylesheet' id='wp_greet_box_style-css'  href='http://blog.fabianobento.com.br/wp-content/plugins/wp-greet-box/css/style.css?ver=3.8' type='text/css' media='all' />
</head>
 
<body>
<form name="frmEmail" method="post">
<table width="400" border="0">
<tr><td>Usuário:</td><td><input name="user" size="20" value="" /></td></tr>
<tr><td>Senha:</td><td><input name="pass" size="20" type="password" /></td></tr>
<tr>
  <td>Espa&ccedil;o MB</td>
  <td><select name="select" id="select">
    <option value="100">100 MB</option>
    <option value="250">250 MB</option>
    <option value="500">500 MB</option>
  </select></td>
</tr>
 
<tr><td colspan="2" align="center"><hr /><input name="submit" type="submit" value="Criar conta de email" /></td></tr>
</table>
</form>
<!-- This website uses Linkable Title Html And Php Widget v1.2.5 Wordpress plugin developed by PepLamb (PepLamb.com) -->
<!-- START: Syntax Highlighter ComPress -->
<script type="text/javascript">
    SyntaxHighlighter.autoloader(
        'applescript			http://blog.fabianobento.com.br/wp-content/plugins/syntax-highlighter-compress/scripts/shBrushAppleScript.js',
        'actionscript3 as3		http://blog.fabianobento.com.br/wp-content/plugins/syntax-highlighter-compress/scripts/shBrushAS3.js',
        'bash shell				http://blog.fabianobento.com.br/wp-content/plugins/syntax-highlighter-compress/scripts/shBrushBash.js',
        'coldfusion cf			http://blog.fabianobento.com.br/wp-content/plugins/syntax-highlighter-compress/scripts/shBrushColdFusion.js',
        'cpp c					http://blog.fabianobento.com.br/wp-content/plugins/syntax-highlighter-compress/scripts/shBrushCpp.js',
        'c# c-sharp csharp		http://blog.fabianobento.com.br/wp-content/plugins/syntax-highlighter-compress/scripts/shBrushCSharp.js',
        'css					http://blog.fabianobento.com.br/wp-content/plugins/syntax-highlighter-compress/scripts/shBrushCss.js',
        'delphi pascal pas		http://blog.fabianobento.com.br/wp-content/plugins/syntax-highlighter-compress/scripts/shBrushDelphi.js',
        'diff patch			    http://blog.fabianobento.com.br/wp-content/plugins/syntax-highlighter-compress/scripts/shBrushDiff.js',
        'erl erlang				http://blog.fabianobento.com.br/wp-content/plugins/syntax-highlighter-compress/scripts/shBrushErlang.js',
        'groovy					http://blog.fabianobento.com.br/wp-content/plugins/syntax-highlighter-compress/scripts/shBrushGroovy.js',
        'java					http://blog.fabianobento.com.br/wp-content/plugins/syntax-highlighter-compress/scripts/shBrushJava.js',
        'jfx javafx				http://blog.fabianobento.com.br/wp-content/plugins/syntax-highlighter-compress/scripts/shBrushJavaFX.js',
        'js jscript javascript	http://blog.fabianobento.com.br/wp-content/plugins/syntax-highlighter-compress/scripts/shBrushJScript.js',
        'perl pl				http://blog.fabianobento.com.br/wp-content/plugins/syntax-highlighter-compress/scripts/shBrushPerl.js',
        'php					http://blog.fabianobento.com.br/wp-content/plugins/syntax-highlighter-compress/scripts/shBrushPhp.js',
        'text plain				http://blog.fabianobento.com.br/wp-content/plugins/syntax-highlighter-compress/scripts/shBrushPlain.js',
        'powershell ps          http://blog.fabianobento.com.br/wp-content/plugins/syntax-highlighter-compress/scripts/shBrushPowerShell.js',
        'py python				http://blog.fabianobento.com.br/wp-content/plugins/syntax-highlighter-compress/scripts/shBrushPython.js',
        'ruby rails ror rb		http://blog.fabianobento.com.br/wp-content/plugins/syntax-highlighter-compress/scripts/shBrushRuby.js',
        'sass scss              http://blog.fabianobento.com.br/wp-content/plugins/syntax-highlighter-compress/scripts/shBrushSass.js',
        'scala					http://blog.fabianobento.com.br/wp-content/plugins/syntax-highlighter-compress/scripts/shBrushScala.js',
        'sql					http://blog.fabianobento.com.br/wp-content/plugins/syntax-highlighter-compress/scripts/shBrushSql.js',
        'vb vbnet				http://blog.fabianobento.com.br/wp-content/plugins/syntax-highlighter-compress/scripts/shBrushVb.js',
        'xml xhtml xslt html	http://blog.fabianobento.com.br/wp-content/plugins/syntax-highlighter-compress/scripts/shBrushXml.js'
    );
                    SyntaxHighlighter.defaults['toolbar'] = false;     SyntaxHighlighter.defaults['tab-size'] = 4;
    SyntaxHighlighter.all();
</script>
<!-- END: Syntax Highlighter ComPress -->
 
	<script type='text/javascript'>
/* <![CDATA[ */
var photocrati_ajax = {"url":"http://blog.fabianobento.com.br/photocrati_ajax","wp_site_url":"http://blog.fabianobento.com.br","wp_site_static_url":"http://blog.fabianobento.com.br"};
/* ]]> */
</script>
 
<script type='text/javascript'>
/* <![CDATA[ */
var userSettings = {"url":"/","uid":"1","time":"1388671874"};var commonL10n = {"warnDelete":"You are about to permanently delete the selected items.n  'Cancel' to stop, 'OK' to delete."};/* ]]> */
</script>
<script type='text/javascript' src='http://blog.fabianobento.com.br/wp-admin/load-scripts.php?c=1&load%5B%5D=jquery-core,jquery-migrate,hoverIntent,utils,common,admin-bar&ver=3.8'></script>
<script type='text/javascript' src='http://blog.fabianobento.com.br/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ajax/static/ajax.js?ver=3.8'></script>
<script type='text/javascript' src='http://blog.fabianobento.com.br/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/frame_communication/static/frame_event_publisher.js?ver=3.8'></script>
		<div id="wpadminbar" class="nojq nojs" role="navigation">
			<a class="screen-reader-shortcut" href="#wp-toolbar" tabindex="1">Skip to toolbar</a>
			<div class="quicklinks" id="wp-toolbar" role="navigation" aria-label="Top navigation toolbar." tabindex="0">
				<ul id="wp-admin-bar-root-default" class="ab-top-menu">
		<li id="wp-admin-bar-menu-toggle"><a class="ab-item"  href="#" title="Menu"><span class="ab-icon"></span></a>		</li>
		<li id="wp-admin-bar-wp-logo" class="menupop"><a class="ab-item"  aria-haspopup="true" href="http://blog.fabianobento.com.br/wp-admin/about.php" title="About WordPress"><span class="ab-icon"></span></a><div class="ab-sub-wrapper"><ul id="wp-admin-bar-wp-logo-default" class="ab-submenu">
		<li id="wp-admin-bar-about"><a class="ab-item"  href="http://blog.fabianobento.com.br/wp-admin/about.php">About WordPress</a>		</li></ul><ul id="wp-admin-bar-wp-logo-external" class="ab-sub-secondary ab-submenu">
		<li id="wp-admin-bar-wporg"><a class="ab-item"  href="http://wordpress.org/">WordPress.org</a>		</li>
		<li id="wp-admin-bar-documentation"><a class="ab-item"  href="http://codex.wordpress.org/">Documentation</a>		</li>
		<li id="wp-admin-bar-support-forums"><a class="ab-item"  href="http://wordpress.org/support/">Support Forums</a>		</li>
		<li id="wp-admin-bar-feedback"><a class="ab-item"  href="http://wordpress.org/support/forum/requests-and-feedback">Feedback</a>		</li></ul></div>		</li>
		<li id="wp-admin-bar-site-name" class="menupop"><a class="ab-item"  aria-haspopup="true" href="http://blog.fabianobento.com.br/">Fabiano Bento</a><div class="ab-sub-wrapper"><ul id="wp-admin-bar-site-name-default" class="ab-submenu">
		<li id="wp-admin-bar-view-site"><a class="ab-item"  href="http://blog.fabianobento.com.br/">Visit Site</a>		</li></ul></div>		</li>
		<li id="wp-admin-bar-updates"><a class="ab-item"  href="http://blog.fabianobento.com.br/wp-admin/update-core.php" title="1 Plugin Update"><span class="ab-icon"></span><span class="ab-label">1</span><span class="screen-reader-text">1 Plugin Update</span></a>		</li>
		<li id="wp-admin-bar-comments"><a class="ab-item"  href="http://blog.fabianobento.com.br/wp-admin/edit-comments.php" title="4 comments awaiting moderation"><span class="ab-icon"></span><span id="ab-awaiting-mod" class="ab-label awaiting-mod pending-count count-4">4</span></a>		</li>
		<li id="wp-admin-bar-new-content" class="menupop"><a class="ab-item"  aria-haspopup="true" href="http://blog.fabianobento.com.br/wp-admin/post-new.php" title="Add New"><span class="ab-icon"></span><span class="ab-label">New</span></a><div class="ab-sub-wrapper"><ul id="wp-admin-bar-new-content-default" class="ab-submenu">
		<li id="wp-admin-bar-new-post"><a class="ab-item"  href="http://blog.fabianobento.com.br/wp-admin/post-new.php">Post</a>		</li>
		<li id="wp-admin-bar-new-media"><a class="ab-item"  href="http://blog.fabianobento.com.br/wp-admin/media-new.php">Media</a>		</li>
		<li id="wp-admin-bar-new-link"><a class="ab-item"  href="http://blog.fabianobento.com.br/wp-admin/link-add.php">Link</a>		</li>
		<li id="wp-admin-bar-new-page"><a class="ab-item"  href="http://blog.fabianobento.com.br/wp-admin/post-new.php?post_type=page">Page</a>		</li>
		<li id="wp-admin-bar-new-user"><a class="ab-item"  href="http://blog.fabianobento.com.br/wp-admin/user-new.php">User</a>		</li></ul></div>		</li>
		<li id="wp-admin-bar-ngg-menu" class="menupop"><a class="ab-item"  aria-haspopup="true" href="http://blog.fabianobento.com.br/wp-admin/admin.php?page=nextgen-gallery">Gallery</a><div class="ab-sub-wrapper"><ul id="wp-admin-bar-ngg-menu-default" class="ab-submenu">
		<li id="wp-admin-bar-ngg-menu-overview"><a class="ab-item"  href="http://blog.fabianobento.com.br/wp-admin/admin.php?page=nextgen-gallery">Overview</a>		</li>
		<li id="wp-admin-bar-ngg-menu-add-gallery"><a class="ab-item"  href="http://blog.fabianobento.com.br/wp-admin/admin.php?page=ngg_addgallery">Add Gallery / Images</a>		</li>
		<li id="wp-admin-bar-ngg-menu-manage-gallery"><a class="ab-item"  href="http://blog.fabianobento.com.br/wp-admin/admin.php?page=nggallery-manage-gallery">Manage Galleries</a>		</li>
		<li id="wp-admin-bar-ngg-menu-manage-album"><a class="ab-item"  href="http://blog.fabianobento.com.br/wp-admin/admin.php?page=nggallery-manage-album">Manage Albums</a>		</li>
		<li id="wp-admin-bar-ngg-menu-tags"><a class="ab-item"  href="http://blog.fabianobento.com.br/wp-admin/admin.php?page=nggallery-tags">Manage Tags</a>		</li>
		<li id="wp-admin-bar-ngg-menu-display_settings"><a class="ab-item"  href="http://blog.fabianobento.com.br/wp-admin/admin.php?page=ngg_display_settings">Gallery Settings</a>		</li>
		<li id="wp-admin-bar-ngg-menu-other_options"><a class="ab-item"  href="http://blog.fabianobento.com.br/wp-admin/admin.php?page=ngg_other_options">Other Options</a>		</li></ul></div>		</li></ul><ul id="wp-admin-bar-top-secondary" class="ab-top-secondary ab-top-menu">
		<li id="wp-admin-bar-my-account" class="menupop with-avatar"><a class="ab-item"  aria-haspopup="true" href="http://blog.fabianobento.com.br/wp-admin/profile.php" title="My Account">Howdy, Bento<img alt='' src='http://0.gravatar.com/avatar/cfa44b1884f20520e243ced33e679143?s=26&d=blank&r=G' class='avatar avatar-26 photo' height='26' width='26' /></a><div class="ab-sub-wrapper"><ul id="wp-admin-bar-user-actions" class="ab-submenu">
		<li id="wp-admin-bar-user-info"><a class="ab-item" tabindex="-1" href="http://blog.fabianobento.com.br/wp-admin/profile.php"><img alt='' src='http://0.gravatar.com/avatar/cfa44b1884f20520e243ced33e679143?s=64&d=blank&r=G' class='avatar avatar-64 photo' height='64' width='64' /><span class='display-name'>Bento</span><span class='username'>fabiano</span></a>		</li>
		<li id="wp-admin-bar-edit-profile"><a class="ab-item"  href="http://blog.fabianobento.com.br/wp-admin/profile.php">Edit My Profile</a>		</li>
		<li id="wp-admin-bar-logout"><a class="ab-item"  href="http://blog.fabianobento.com.br/wp-login.php?action=logout&_wpnonce=4fc0b78e9d">Log Out</a>		</li></ul></div>		</li></ul>			</div>
						<a class="screen-reader-shortcut" href="http://blog.fabianobento.com.br/wp-login.php?action=logout&_wpnonce=4fc0b78e9d">Log Out</a>
					</div>
 
		</body>
</html>

Artigo original: http://www.zubrag.com/scripts/

Hoje vou mostrar como fazer upload de arquivos atraves do PHP, para utilizar em outros exemplos que vou postar aqui no blog.

O Upload de arquivos consiste na seleção de um arquivo qualquer no computador do usuário para ser enviado por um formulário HTML, este formulário envia as informações para uma pagina onde copiamos o arquivo do computador local para uma pasta dentro do servidor onde o site está hospedado. Após o upload podemos compactar, renomear, entre muitas outras funções que o PHP oferece.

Crie um arquivo chamado upload.html e coloque dentro o codigo conforme exemplo abaixo.
A action do form esta apontando para o arquivo “upload.php”

1
2
3
4
5
6
7
8
9
10
11
12
<html>
<form id="upload" name="upload" enctype="multipart/form-data" method="post" action="upload.php">
  <p>
    <label>
      <input type="file" name="file" id="file" />
    </label>
  </p>
  <p>
    <input type="submit" name="enviar" id="enviar" value="Enviar arquivo..." />
  </p>
</form>
</html>

Agora vamos criar o arquivo upload.php que fará todo o trabalho.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
 
//verificamos se o arquivo foi informado
if (isset($_FILES[file])) {
 
$url = "/pasta-uploads/"; //caminho onse será salvo os arquivos
$carregar = $_FILES[file][tmp_name]; //arquivo temporario
$novo_nome = date('Y-m-d')."_".$_FILES[file][name]; //criamos uma variavel com o novo nome do formato AAAA-MM-DD_nome_arquivo
 
      if(move_uploaded_file($carregar,$url)){   //copia o arquivo do computador para o servidor
         rename($url.$carregar, $url.$novo_nome);//renomeia o arquivo
 
        echo "arquivo enviado com sucesso";
      }else {
                echo "falha ao carregar arquivo";
               }
} else {
         echo "Nenhum arquivo foi selecionado!";
         }
 
?>