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)
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;
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ç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!"; } ?> |