Jump to content

Search the Community

Showing results for tags 'php'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Bem-vindos ao Portugal-a-Programar
    • Sugestões, Críticas ou Dúvidas relativas ao P@P
    • Acerca do P@P
  • Comunidade a Trabalhar
    • Wiki P@P
    • Apresentação de Projectos de Programação
    • Downloads
  • Revista PROGRAMAR
    • Revista PROGRAMAR
  • Desenvolvimento Geral
    • C
    • C++
    • Java
    • Haskell
    • Pascal
    • Python
    • Bases de Dados
    • Visual Basic Clássico
    • Visual Basic for Applications (VBA)
    • Dispositivos Móveis
    • Outras Linguagens
  • Desenvolvimento Orientado para Web
    • PHP
    • HTML
    • CSS
    • Javascript
    • Outras Linguagens de WebDevelopment
    • Desenvolvimento Web
  • Desenvolvimento .NET
    • C#
    • Visual Basic .NET
    • ASP.NET
    • WPF & SilverLight
  • Software e Sistemas Operativos
    • Software de Produtividade
    • Sistemas Operativos
    • Apresentação de Software
  • Informática
    • Interfaces Visuais
    • Computação Gráfica
    • Algoritmia e Lógica
    • Segurança e Redes
    • Hardware
    • Electrónica
    • Automação Industrial
    • Matemática
    • Dúvidas e Discussão de Programação
    • Notícias de Tecnologia
  • Outras Áreas
    • Dúvidas Gerais
    • Discussão Geral
    • Eventos
    • Anúncios de Emprego
    • Tutoriais
    • Snippets / Armazém de Código
  • Arquivo Morto
    • Projectos Descontinuados
    • System Empires

Blogs

  • Blog dos Moderadores
  • Eventos
  • Notícias de Tecnologia
  • Blog do Staff
  • Revista PROGRAMAR
  • Projectos
  • Wiki

Categories

  • Revista PROGRAMAR
  • Tutoriais
  • Textos Académicos
  • Exercícios Académicos
    • Exercícios c/ Solução
    • Exercícios s/ Solução
  • Bibliotecas e Aplicações
  • Outros

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Found 7,336 results

  1. Boa tarde. Estou a fazer um BackOffice que vai permitir ao utilizador editar,eliminar e criar um novo site em HTML. Eu já tenho o template todo produzido do site que será editado, porém só consigo editar esse site a partir de código,ou seja, todas as fotos e todos os textos teriam que ser introduzidos por código, algo que não quero. Quero que o utilizador consiga fazer tudo a partir de um programa(a partir do BackOffice) que edite o site de forma a que nunca seja preciso usar o código HTML em nenhuma ocasião. Todo o meu BackOffice é em PHP, enquanto que os sites em questão são todos HTML. Alguma ideia para o meu problema?
  2. Adampt

    Recibo de envio de email

    Boa tarde amigos, sou iniciante em PHP e estou desenvolvendo um site para uma associação sem fins lucrativos. Neste site as pessoas interessadas em participar de uma determinada atividade fazem a sua inscrição e recebem um email de confirmação da inscrição, o qual é enviado via PHP. Depois, os administradores têm de validar cada uma das inscrições (pois não podem participar todos, uma vez que o número de participantes é limitado e têm de obedecer a alguns critérios). Ao fazer esta validação é enviado em email para a pessoa a informar que a sua inscrição foi aceite, sendo também enviado um link com os procedimentos a seguir (como o envio de alguma documentação). O que a Associação pretende é que seja enviado para o email da Associação um email com um comprovativo do respetivo envio, de forma a ficar com um comprovativo de que foi efetuado esse mesmo envio. Desde já o meu obrigado.
  3. Boas, Tenho como projeto fazer uma pagina WEB ou algo parecido com um dashboard com erros a partir de uma base de dados . Enquadramento; Tenho uma aplicação que gere utilizadores e permissões/acessos que esses mesmos utilizadores tem para aceder a aplicações, etc Muitas vezes essas permissões podem ficar em erro por variados motivos, como por exemplo falha de comunicação com sistemas destinos,.. E numa bases de dados em que tenho essas permissões e utilizadores e o seu estado queria com esses dados(directamente da BD) ter um dashboard com os erros a ser atualizado automaticamente na pagina web e por exemplo actualizava todos os dias ou algo parecido e com a possibilidade de sacar reports. A minha pergunta é: É possivel ? Como faria isso ? Que linguagens teria de usar ? Precisava mesmo guideness e de umas luzes Agradeço a todos desde já
  4. RicardoAugusto

    Email no BackOffice

    Boas. Na minha PAP de final de ano foi-me incumbido de fazer um BackOffice para alguns sites. Consiste em eu poder editar sites de apresentação de lugares. Nesse BackOffice quero meter um Email que quando o utilizador entre com a sua conta o email esteja logo disponível para também ser usado. Ou seja, vou fazer tópicos será mais facil: 1-O utilizador acede com a sua conta ao BackOffice. 2-O BackOffice terá as suas típicas opções e terá a opção de Email. 3-O utilizador pode aceder ao seu email pelo BackOffice sem ter que recorrer a outra pagina e sem ter que recorrer a outro login. Como é que posso fazer tal coisa? Necessito de PHP ou só HTML? Já fiz pesquisa, mas nada encontro.
  5. Joao Rosas

    Saf-t para seguradoras

    Ola a todos, foi necessário desenvolver um módulo de geração do documento XML SAF-T de facturação para uma companhia de seguros. Os salesInvoices, neste caso, são compostos por recibos-premio, recibos-estorno, ... A ferramenta de validação da AT faz a validação o documento com sucesso. No entanto, ainda permanecem algumas duvidas e a informação sobre geração de saf-t para seguros é escassa e difícil de obter. Se alguem tiver informação sobre saf-t para seguros, agradecia desde ja a partilha. 🙂 Cumprimentos e obrigado. JR
  6. RafaelB16

    Sistema de senhas

    Tenho de criar um sistema de marcaçao de senhas para minha escola e estou com muitas dificulades, alguem pode ajudar?
  7. carcleo

    Problemas com acentuação e PDO

    Tenho esse método: public function cadastrar (Clientes $cliente) : bool { $sql = "INSERT INTO clientes SET nome = ?, documento = ?, senha = ?, endereco = ?, numero = ?, complemento = ?, bairro = ?, estado = ?, cidade = ?, cep = ?, email = ?, telefone = ?, celular = ?, bloqueado = ?"; $cadastra = $this->pdo->prepare ($sql); $cadastra->bindValue ( 1, $cliente->getNome() ); $cadastra->bindValue ( 2, $cliente->getDocumento() ); $cadastra->bindValue ( 3, $cliente->getSenha() ); $cadastra->bindValue ( 4, $cliente->getEndereco() ); $cadastra->bindValue ( 5, $cliente->getNumero() ); $cadastra->bindValue ( 6, $cliente->getComplemento() ); $cadastra->bindValue ( 7, $cliente->getBairro() ); $cadastra->bindValue ( 8, $cliente->getEstado() ); $cadastra->bindValue ( 9, $cliente->getCidade() ); $cadastra->bindValue ( 10, $cliente->getCep() ); $cadastra->bindValue ( 11, $cliente->getEmail() ); $cadastra->bindValue ( 12, $cliente->getTelefone() ); $cadastra->bindValue ( 13, $cliente->getCelular() ); $cadastra->bindValue ( 14, $cliente->getBloqueado() ); print_r($cliente); $execucao = $cadastra->execute(); print_r($execucao); $this->ultimoRegistro = $this->pdo->lastInsertId(); return $execucao; } print_r($cliente); Me retorna o objeto classes\mvc\modelos\Clientes Object ( [id:classes\mvc\modelos\Clientes:private] => [nome:classes\mvc\modelos\Clientes:private] => Cleoni Tobias [documento:classes\mvc\modelos\Clientes:private] => 00432155844 [senha:classes\mvc\modelos\Clientes:private] => 1234 [endereco:classes\mvc\modelos\Clientes:private] => Rua Francisco [numero:classes\mvc\modelos\Clientes:private] => 6 [complemento:classes\mvc\modelos\Clientes:private] => Lote [bairro:classes\mvc\modelos\Clientes:private] => São Francisco [estado:classes\mvc\modelos\Clientes:private] => MG [cidade:classes\mvc\modelos\Clientes:private] => 36880 [cep:classes\mvc\modelos\Clientes:private] => 36881038 [email:classes\mvc\modelos\Clientes:private] => cleonitobias@gmail.com [telefone:classes\mvc\modelos\Clientes:private] => 3335254444 [celular:classes\mvc\modelos\Clientes:private] => 33988886655 [bloqueado:classes\mvc\modelos\Clientes:private] => Sim ) Mas quando passa para: $execucao = $cadastra->execute(); O atributo barro, com valor (no objeto) de São Francisco está sendo gravado com valor (no Banco) de São Francisco . Mas na classe de criação do banco está self::$instancia->setAttribute( PDO::MYSQL_ATTR_INIT_COMMAND, 'SET NAMES utf8'); O que será que está acontecendo? Obs.: na print_r($cliente);, sai normalmente acentuada. Ou seja, parece que na hora de montar a query, o PDO não observa os caracteres
  8. Ricardo Lopes

    Symfony 4 - Dúvida Sobre o Stripe

    Bom Dia Programadores, espero que todos tenham tido umas excelentes entradas em 2020 , a minha questão é a seguinte: Estou a fazer uma implementação do stripe num projecto e queria saber se é possível passar o valor data-name da tag script da página twig para o controller? <script src="https://checkout.stripe.com/checkout.js" class="stripe-button" data-key="Key" data-amount="{{ productBundles.price * 100 }}" data-name="{{ productBundles.title }}" data-description="{{productBundles.description }}" data-image="https://stripe.com/img/documentation/checkout/marketplace.png" data-locale="auto"> </script> para dentro desta função no controller public function promoteAnuncio(EntityManagerInterface $entityManager,Request $request,int $productId) { $productBundleRepository = $this->getDoctrine()->getRepository(ProductBundle::class); $productBundle = $productBundleRepository->findAll(); $productRepository = $entityManager->getRepository('App:Product')->findOneBy(['id' => $productId]); } os bundles estão num ArrayCollection e o que eu quero "apanhar" é o bundle seleccionado
  9. Fernanda Siqueira

    Fizzbuzz

    Dado um número n, para cada número inteiro i no intervalo de 1 a n, inclusive imprima um valor por linha da seguinte maneira: Se eu for múltiplo de 3 e 5, imprima o fizzbuzz Se i for múltiplo de 3(mas não 5), imprima fizz Se i for múltiplo de 5(mas não 3), imprima o Google Buzz Se i não for múltiplo de 3 e 5, imprima o valor de i
  10. mikeysantana

    Sistema de Login com password_verify em PDO

    Boa noite, Estava a fazer um sistema de login simples, pela primeira vez. Segui todos os pormenores, mas, ao que parece, o código consegue reconhecer quando as passwords estão incorretas e quando as contas não existem, mas quando o username e a password estão corretos, ele não redireciona para a página inicial, nem sei bem porquê. Se alguém puder ajudar, agradecia. Segui este tutorial: https://www.tutorialrepublic.com/php-tutorial/php-mysql-login-system.php O código no topo da página do login é este: <?php // Include config file require_once 'config.php'; // Define variables and initialize with empty values $username = $password = ""; $username_err = $password_err = ""; // Processing form data when form is submitted if($_SERVER["REQUEST_METHOD"] == "POST"){ // Check if username is empty if(empty(trim($_POST["LoginUtilizador"]))){ $username_err = 'Por favor, introduza o seu nome de utilizador.'; } else{ $username = trim($_POST["LoginUtilizador"]); } // Check if password is empty if(empty(trim($_POST['PasswordUtilizador']))){ $password_err = 'Por favor, introduza a sua palavra-passe.'; } else{ $password = trim($_POST['PasswordUtilizador']); } // Validate credentials if(empty($username_err) && empty($password_err)){ // Prepare a select statement $sql = "SELECT LoginUtilizador, PasswordUtilizador FROM Utilizadores WHERE LoginUtilizador = :LoginUtilizador"; if($stmt = $pdo->prepare($sql)){ // Bind variables to the prepared statement as parameters $stmt->bindParam(':LoginUtilizador', $param_username, PDO::PARAM_STR); // Set parameters $param_username = trim($_POST["LoginUtilizador"]); // Attempt to execute the prepared statement if($stmt->execute()){ // Check if username exists, if yes then verify password if($stmt->rowCount() == 1){ if($row = $stmt->fetch()){ $hashed_password = $row['PasswordUtilizador']; if(password_verify($password, $hashed_password)){ /* Password is correct, so start a new session and save the username to the session */ session_start(); $_SESSION['LoginUtilizador'] = $username; header("location: index.php"); } else{ // Display an error message if password is not valid $password_err = 'A palavra-passe inserida não é válida.'; } } } else{ // Display an error message if username doesn't exist $username_err = 'Nenhuma conta foi encontrada com esse nome de utilizador.'; } } else{ echo "Ups! Algo correu mal! Tente novamente mais tarde."; } } // Close statement unset($stmt); } // Close connection unset($pdo); } ?> No formulário, o código é assim: <form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="post"> <div class="form-group <?php echo (!empty($username_err)) ? 'has-error' : ''; ?>"> <input type="text" class="form-control" name="LoginUtilizador" id="LoginUtilizador" placeholder="Nome de Utilizador" value="<?php echo $username; ?>"> <span class="help-block"><?php echo $username_err; ?></span> </div> <div class="form-group <?php echo (!empty($password_err)) ? 'has-error' : ''; ?>"> <input type="password" class="form-control" name="PasswordUtilizador" id="PasswordUtilizador" placeholder="Palavra-passe"> <span class="help-block"><?php echo $password_err; ?></span> </div> <div class="row"> <div class="col-xs-6"> <div class="checkbox icheck"> <label> <input type="checkbox"> Lembrar-me </label> </div> </div> <!-- /.col --> <div class="col-xs-6"> <button type="submit" value="Submit" class="btn btn-primary btn-block btn-flat">Iniciar Sessão</button> </div> <!-- /.col --> </div> </form> mikeysantana
  11. Boas, Estou fazendo uma interação cliente servidor com PHP. Tenho a seguinte função no cliente: function login (string $_login, string $_senha) : string { $url = "https://acweb.net.br/api/orcamentos/login"; $fields = [ "login" => $_login, "senha" => $_senha ]; $headers = [ "Try : Trying", 'Content-Type : application/json' ]; $ch = curl_init(); curl_setopt( $ch, CURLOPT_URL, $url); curl_setopt( $ch, CURLOPT_POST, true); curl_setopt( $ch, CURLOPT_POSTFIELDS, $fields); curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, false ); #curl_setopt( $ch, CURLOPT_HTTPHEADER, $headers); curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true); return curl_exec( $ch ); } Que eu chamo dessa forma $retorno = login( "carcleo@gmail.com", "aaaa" ); No servidor, eu recupero as variáveis que foram enviadas pelo cURL via POST da forma abaixo var_dump( $_POST ); Agora, ainda no lado do servidor, desejo recuperar as variáveis que foram enviadas pela cURL mas no cabeçalho da requisição Se eu descomentar a linha abaixo: #curl_setopt( $ch, CURLOPT_HTTPHEADER, $headers); e fazer da forma que tenho visto nos fóruns: var_dump ($_SERVER [ "HTTP_TRY" ]); Obtenho o seguinte erro da cURL : string(432) "HTTP/1.1 400 Bad Request Date: Fri, 13 Dec 2019 17:49:23 GMT Server: Apache/2.4.41 (Win64) PHP/7.3.9 OpenSSL/1.1.1c Content-Length: 226 Connection: close Content-Type: text/html; charset=iso-8859-1 Bad Request Your browser sent a request that this server could not understand. Já não sei mais o que fazer para recuperar esse cabeçalho.
  12. JoaoMBarbosa

    Erro a ligar a servidores

    Estou com uma duvida quando mudo as credenciais da base de dados em localhost para as credenciais da base de dados em server da-me este erro no php Warning: mysqli::__construct(): php_network_getaddresses: getaddrinfo failed: Este anfitri�o n�o � conhecido. in C:\xampp\htdocs\CoreContactos_BD\conexao.php on line 6 Warning: mysqli::__construct(): (HY000/2002): php_network_getaddresses: getaddrinfo failed: Este anfitri�o n�o � conhecido. in C:\xampp\htdocs\CoreContactos_BD\conexao.php on line 6
  13. Lifeissosimple

    Imprimir PDF via PHP

    Boa noite, estou com uma pequena dúvida e precisa de uma grande ajuda . Tenho um formulário HTML que gera um ficheiro pdf com os dados inseridos. Gostava agora de, ao mesmo tempo que crio o ficheiro pdf, imprimir essa documentação para uma impressora (no caso RP80). Alguma dica? Alguma solução que possa utilizar? eternamente grato, AM
  14. Enziguri

    Administração de Loja

    Boa noite, Estou a fazer uma loja em php, acontece que estou na parte do formulario para inserir, remover e alterar os produtos... O que eu pretendia era fazer um formulario com uma "pre-visualização" do lado direito, aqui vai um screenshot do que pretendo. Quero que esta pre-visualização seja feita em tempo real... ou seja, em javascript, jquery, etc. Alguém sabe como o posso fazer? Obrigado https://dl.dropbox.com/u/12085850/Untitled-1%20copy.JPG
  15. happycode

    Erro ao ler o ficheiro XML

    Bom dia, Estou a importar produtos de um XML para o WooCommerce, onde está a dar o seguinte erro: No script de importação usava um ficheiro XML com 128MB e onde está tudo ok, agora no novo XML com actualização de preços dá o erro. Bloco de código: $xml_path = plugins_url( 'files/folder/file.xml', __FILE__ ); $xml = simplexml_load_file( $xml_path ); Alguém consegue indicar onde poderá estar a origem do problema?
  16. DiamondStyle

    Erro de uma ficha em PHP

    Boa tarde, Em aula deram-me este exercício para fazer : 1. Efetue um algoritmo PHP que receba os valores A, B, C e D. Efetue a soma entre A e C, a multiplicação entre B e D e verifique se o resultado da soma é maior, menor ou igual ao da multiplicação. Imprima: "O resultado da soma é maior que o da multiplicação ", O resultado da soma é menor que o da multiplicação " e “ O resultado da soma é igual ao da multiplicação”. Eu fiz o seguinte código: <? php $a = 10; $b = 24; $c = 13; $d = 20; echo ('Número A: '.$a); echo "<br>"; echo ('Número B: '.$b); echo "<br>"; echo ('Número C: '.$c); echo "<br>"; echo ('Número D: '.$d); echo "<br>"; if ($a + $c) > ($b * $d) echo('O resultado da soma é maior que o da multiplicação'); if ($a + $c) = ($b * $d) echo('O resultado da soma é igual ao da multiplicação'); if ($a + $c) < ($b * $d) echo('O resultado da soma é menor que o da multiplicação'); ?> E esta-me a dar o seguinte erro quando abro: "; echo ('Número B: '.$b); echo " "; echo ('Número C: '.$c); echo " "; echo ('Número D: '.$d); echo " "; if (($a + $c) > ($b * $d)) echo('O resultado da soma é maior que o da multiplicação'); if (($a + $c) = ($b * $d)) echo('O resultado da soma é igual ao da multiplicação'); if (($a + $c) < ($b * $d)) echo('O resultado da soma é menor que o da multiplicação'); ?> Será que alguém me pode ajudar? Obrigado!
  17. carcleo

    Obter a Query do PDO

    Bom, como exemplo vou postar abaixo: sql = "SELECT * FROM `example` WHERE `:field` = :value"; $this->statement = $this->db->prepare($sql); $dynamicField = "nome"; $this->statement->bindParam(':field', $dynamicField); $this->statement->bindParam(':value', 'mick'); $this->statement->execute(); O que pode ser feito para eu obter, como siada, a consulta SQL tratada? Tipo: SELECT * FROM `example` WHERE nome = 'nick' Isso após o execute?
  18. carcleo

    Problemas com file_exists

    $pathLogos = "../../../img/logos/"; $img = $pathLogos . $youtuber->getImagem(); echo '<img src="' . $img . '">'; echo file_exists( $img ) ? "OK" : "NÃO"; Tenho o código acima. A imagem echo '<img src="' . $img . '">'; aparece . Mas o file_exists echo file_exists( $img ) ? "OK" : "NÃO"; diz que ela não existe. Porquê? Veja: Quase lá: $pathLogos = "img/logos/"; //$pathLogos = "../../../img/logos/"; if ( $youtuber->getImagem() ) { $img = $pathLogos . $youtuber->getImagem(); //echo '<img src="' . $img . '">'; echo $pathLogos . $youtuber->getImagem(); //if ( file_exists( "img/logos/" . $youtuber->getImagem() ) ) if ( file_exists( $pathLogos . $youtuber->getImagem() ) ) $imagemLogo = $img; else $imagemLogo = $pathLogos . "semFoto.png" ; } else $imagemLogo = $pathLogos . "semFoto.png"; A imagem img, é exibida com $pathLogos = "../../../img/logos/"; Mas, usando file_exists, o path precisa ser $pathLogos = "img/logos/"; No entanto, se eu fizer: if ( file_exists( $pathLogos . $youtuber->getImagem() ) ) Não funciona. Mas se eu fizer: if ( file_exists( "img/logos/" . $youtuber->getImagem() ) ) Aí funciona. Existe alguma lógica nisso?
  19. Olá comunidade! Estou com um problema que não consigo resolver. Tenho um script para enviar e-mails e está tudo a funcionar corretamente, exceto um pormenor. Toda mensagem recebida no Outlook contém caracteres estranhos (no Gmail não há problemas). No Outlook o assunto é exibido assim: Formulário do Site (em vez de Formulário do Site). E o corpo da mensagem: Nome: João (em vez de João) E-mail: hello@hello.com Mensagem: olá! (em vez de olá!) Pesquisei e tentei durante horas resolver, mas não sei mais o que estou a fazer. A sugestão mais frequente que encontro é para usar a classe PHPMailer para resolver estas questões. Experimentei usar a classe, mas o problema mantém-se. Alguém sabe como posso resolver isto? Deixo abaixo aqui o código que estou a usar: <?php ////////////////////////// //Specify default values// ////////////////////////// //Your E-mail $your_email = 'kyrstie@outlook.com'; //Default Subject if 'subject' field does not exist $default_subject = 'Formulário do Site'; //Message if 'name' field not specified $name_not_specified = 'Por favor digite um nome válido'; //Message if 'message' field not specified $message_not_specified = 'Por favor digite uma mensagem válida'; //Message if e-mail sent successfully $email_was_sent = 'Sua mesagem foi enviada!'; //Message if e-mail not sent (server not configured) $server_not_configured = 'Sorry, mail server not configured'; /////////////////////////// //Contact Form Processing// /////////////////////////// $errors = array(); $response = array('error' => '', 'success' => ''); $params = array(); parse_str($_POST['data'], $params); header('Content-type: application/json charset=iso-8859-1'); if(isset($params['message']) and isset($params['username'])) { if(!empty($params['username'])) $sender_name = stripslashes(strip_tags(trim($params['username']))); if(!empty($params['message'])) $message = stripslashes(strip_tags(trim($params['message']))); if(!empty($params['email'])) $sender_email = stripslashes(strip_tags(trim($params['email']))); if(!empty($params['subject'])) $subject = stripslashes(strip_tags(trim($params['subject']))); //Message if no sender name was specified if(empty($sender_name)) { $errors[] = $name_not_specified; } //Message if no message was specified if(empty($message)) { $errors[] = $message_not_specified; } $from = (!empty($sender_email)) ? 'From: '.$sender_email : ''; $subject = (!empty($subject)) ? $subject : $default_subject; //$message = (!empty($message)) ? wordwrap($message, 70) : ''; $message = " Nome: $sender_name E-mail: $sender_email Mensagem: $message "; //sending message if no errors if(empty($errors)) { if (mail($your_email, $subject, $message, $from)) { $response['success'] = $email_was_sent; } else { $errors[] = $server_not_configured; $response['error'] = implode('<br>', $errors ); } } else { $response['error'] = implode('<br>', $errors ); } } else { // if "name" or "message" vars not send ('name' attribute of contact form input fields was changed) $response['error'] = '"name" and "message" variables were not received by server. Please check "name" attributes for your input fields'; } echo json_encode( $response ); ?>
  20. entering

    [PHP] Iniciação em PHP

    Introdução O que é PHP? PHP (Hypertext Preprocessor) originalmente chamado como Personal Home Page Tools é uma linguagem de scripting escrito por e para desenvolvedores de aplicações Web. Pode ser embebido em HTML e corre do lado do servidor (server-side scripting) ou seja "apenas é enviado HTML" para o cliente, sendo assim torna-o bastante seguro, pois o cliente apenas vê o desejado. PHP é um módulo oficial do Apache, como o Apache PHP pode correr em várias plataformas entre elas por ex: Unix, Mac, Windows ... Além de ser portável também é bastante usado, como tal existe muita documentação sobre PHP. Se anda a procura de uma linguagem de scripting a correr do lado do servidor, experimente PHP não se vai arrepender. A história de PHP PHP foi desenvolvido em 1994 por Rasmus Lerdorf, inicialmente desenvolvido com o objectivo de obter informações sobre as visitas a seu site, mais tarde surge uma nova versão PHP/FI que inclui o Form Interpreter. Em 1997, PHP já era usado aproximadamente por 50000 páginas na Internet e foi crescendo e evoluindo (na altura que estou a escrever isto já esta na versão 5.1.2). Para ter ideia do crescimento de PHP, apenas um ano mais tarde em vez de 50000 páginas na Internet a usar PHP existia aproximadamente o dobro e em 2000 atingiu a marca de dois milhões. Razões para usar PHP Performance elevada; Custo (usar PHP não custa nada 0€); Fácil de aprender; É estável; É popular (o que torna fácil encontrar documentação e source codes); Permite aceder a bases de dados (ODBC e suporte nativo por exemplo: MySQL e Oracle); PHP pode correr em quase todo o lado (ASP só corre em IIS, que na minha opinião é menos seguro que Apache). Adicionar PHP a HTML Chegamos finalmente ao ponto de escrever o primeiro script em PHP. <html> <head> <title>Olá Mundo</title> </head> <body> <?php echo "Olá Mundo!"; ?> </body> </html> Este código apenas mostra Olá Mundo, tudo que é PHP tem que estar dentro das tags <?php ?> ou então dentro de <? ?> (short tags). Não aconselho o uso dos short tags, pois é necessário estar no php.ini a opção short_open_tag on. Também se pode usar o HTML script tags <SCRIPT LANGUAGE="PHP"> </SCRIPT>. Se desejar ver informações sobre o PHP, Apache, ... <html> <head> <title>phpinfo</title> </head> <body> <?php phpinfo(); // Função que mostra informações do sistema ?> </body> </html> Irei agora mostrar um exemplo com um formulário e um campo de texto, o utilizador introduz um nome, que é recebido por PHP e consequentemente mostrado Olá NOME. Código HTML <html> <head> <title>ex01</title> </head> <body> <form name="form1" method="post" action=""> <!-- Inicio do formulario --> Nome: <input type="text" name="nome" maxlength="200"> <!-- Campo de texto máximo de 200 caracteres --> <br> <input type="submit" name="Submit" value="Enviar"> <!-- Botão para submeter --> </form> <!-- Fim do formulario --> </body> </html> Se premir o botão Enviar nada será feito (a página será recarregada), pois não existe nenhum tratamento da string recebida (campo nome). O código PHP deverá estar acima do código HTML. <?php if (isset($_POST['nome'])) { // Testa se a variável $_POST['nome'] existe echo "Olá ", $_POST['nome']; exit; // Termina a execução } ?> Iremos ver mais à frente melhor o $_POST (e também o $_GET) na secção Passar informações. Sintaxe e variáveis Nesta secção procuro abordar alguns aspectos gerais da linguagem, como usar variáveis e maneiras de mostrar texto na janela do browser. Aspectos gerais Não são necessárias declarações de variáveis; PHP não é HTML, PHP é embebido em HTML no entanto cada parte do documento é interpretado como PHP ou HTML consoante o caso; PHP tem uma sintaxe similar a C em alguns aspectos: Não interpreta espaços em branco (ex: $variavel=2; é igual a $variavel = 2;) Ao contrário de C o nome das funções não diferem minúsculas de maiúsculas Expressões são terminadas em ; Atribuições ($variável=valor) Comentários ( /* */ ou //) Chavetas separam blocos de instruções [*]PHP tem uma sintaxe similar a Perl em alguns aspectos: Comentários ( # texto ) Variáveis começam por o carácter dólar ($) Variáveis Uma das maneiras principais de armazenar informação é por meio de variáveis. Existem algumas regras sobre variáveis: Como já foi referido em cima começam por $; É atribuído um valor a variável usando o carácter =; O valor de uma variável é o valor da sua última atribuição; Os caracteres admitidos no nome das variáveis são a-z A-Z 0-9 e _ (no entanto o primeiro carácter a seguir ao $ não pode ser um número). <?php $var=3; echo $var; echo "<br />"; $var=5; echo $var; ?> Output: 3 5 Nota: uma variável cuja atribuição é feita num bloco de instruções (<?php ... ?>) estará disponível no resto dos blocos (<?php ... ?>). Tipos de variáveis PHP facilita a vida no tratamento de tipos de variáveis e é flexível (para programadores de linguagens estilo C podem esquecer declarações do estilo int variavel e char variavel[num]). <?php $teste = 2 + 0.15; echo $teste; ?> Output: 2.15 O output é o esperado, PHP converte o inteiro (2) num float (número real) e depois soma. <?php $teste="Olá"; echo $teste; // Igual a printf ("%s",$teste); ?> Output: Olá Output echo void echo (string arg1, [string arg2 ...]); O echo não é realmente uma função mas sim uma construção da linguagem, como tal os parênteses não são obrigatórios e no caso de se querer passar mais de um parâmetro não se podem usar. print int print (string arg); O print não é realmente uma função mas sim uma construção da linguagem, como tal os parênteses não são obrigatórios. Devolve um inteiro, que no entanto é sempre 1. Apenas permite passar um parâmetro. printf int printf (string,args); Produz um output formatado (equivalente ao printf de C), devolve o tamanho da string que foi enviada. Alguns formatos possíveis: %s - string %d - inteiro de base 10 %o - inteiro de base 8 %f - float, entre outros Constantes e Operadores Constantes Uma constante é um nome para um determinado valor, tal como o nome sugere não pode ser modificado ao longo da execução do script. O nome de uma constante obedece às mesmas regras que o nome de uma variável, ou seja: os caracteres admitidos no nome das constantes são a-z A-Z 0-9 e _ (no entanto o primeiro carácter não pode ser um número). <?php define ("TESTAR","xxx"); // Função que define a constante TESTAR com a string xxx echo TESTAR; ?> Output: xxx Pode-se obter o valor de uma constante através do seu nome (ao contrário das variáveis não possui um $ antes), ou então através da função constant. O exemplo que irei dar a seguir faz o mesmo que o exemplo acima dado, no entanto a função constant é especialmente útil quando à partida não se sabe o nome da constante, por exemplo porque se encontra armazenado numa variável ou é retornado por uma função. <?php define ("TESTAR","xxx"); echo constant("TESTAR"); ?> Output: xxx Se quiser verificar se uma função se encontra definida, bastara usar a função defined. Exemplo: <?php define ("TESTAR","xxx"); if (defined('TESTAR')) echo "Constante definida."; ?> Constantes "mágicas" PHP providencia um grande número de constantes predefinidas (http://pt.php.net/manual/en/reserved.constants.php). Também podem ser visualizadas usando a função get_defined_constants(), esta função devolve o nome e os valores de todas as constantes, devolvendo uma matriz (array). <?php print '<pre>'; // Esta tag mostra texto pre-formatador print_r(get_defined_constants()); print '</pre>'; ?> Output: Array ( [E_ERROR] => 1 [E_WARNING] => 2 [E_PARSE] => 4 [E_NOTICE] => 8 ... ) Operadores Aritméticos: + Adição (++ incrementa um valor) - Subtracção (-- decrementa um valor) * Multiplicação / Divisão % Módulo Lógicos (A diferença entre o and e &&, e or e || é ao nível de precedências): and Devolve TRUE quando ambos os argumentos são válidos or Devolve TRUE se pelo menos um argumento é válido ! Verdadeiro se o argumento não é verdadeiro xor Devolve TRUE se pelo menos um argumento é válido, mas não ambos && Devolve TRUE quando ambos os argumentos são válidos || Devolve TRUE se pelo menos um argumento é válido Comparação: == Igual (=== idêntico, ou seja analisa se são do mesmo tipo) != Diferente (!== não idêntico) < Menor > Maior <= Menor ou igual >= Maior ou igual Strings Existem dois operadores de strings, o . e o .= que servem para concatenar strings (para programadores de C que estão habituados a usar a função strcat em PHP tal não existe). <?php $s1="Olá "; $s2=$s1 . "Mundo."; // $s2 = Olá Mundo. //Ou $s1="Olá "; $s1.="Mundo."; ?> Estruturas de controlo If-Else-Elseif A estrutura de controlo if é muito importante em qualquer linguagem de programação pois permite fazer verificações de condições e consequentemente só executar alguns blocos de instruções. Para programadores em C que existem grande semelhanças. if (expressão) { instruções; } else { instruções; } Se pretende testar várias condições seguidas pode usar um conjunto de ifs encadeados. if (expressão) { instruções; } else if { // Ou então elseif é idêntico instruções; } else { instruções; } Exemplo: <html> <head> <title>ex02</title> </head> <body> <?php $d=date("D"); if ($d=="Fri") echo "Bom fim de semana."; else if ($d=="Mon") echo "Um bom inicio de uma semana de trabalho! "; else echo "Um bom dia."; ?> </body> </html> Switch A estrutura de controlo switch permite fazer várias verificações que poderiam ser feitas por N ifs encadeados mas assim torna-se muito mais simples. switch (expressão) { case valor1: instruções; [break;] case valor2: instruções; [break;] [default: instruções;] } Irei dar um exemplo, o mesmo que o exemplo do if faz mas usando um switch, poderá ver o que faz aqui. <?php $d=date("D"); switch ($d) { case "Fri": echo "Bom fim de semana."; break; case "Mon": echo "Um bom inicio de uma semana de trabalho!"; break; default: echo "Um bom dia."; } ?> While Dentro das construções de PHP de ciclos esta é sem dúvida a mais simples. Executa o bloco de instruções enquanto a expressão for TRUE. Caso seja FALSE logo de início nem sequer chega a executar as instruções, nesse caso devera ser usado um ciclo Do-While que iremos ver de seguida. while (expressão) instruções; Exemplo: <?php $cont=1; while ($cont<=5) { echo $cont."<br />"; ++$cont; } ?> Output: 1 2 3 4 5 Do-While O ciclo do while é similar ao while excepto que quando testa a expressão é no fim do ciclo e não no início. do instruções while (expressão); Exemplo: <?php $cont=2; do { echo $cont; ++$cont; } while ($cont>20); ?> Output: 2 Apenas mostra uma linha devido à expressão retornar FALSE. Se fosse um ciclo while em vez de um do while não mostrava uma única linha. For O ciclo mais complexo em PHP (em muitas outras linguagens também) sendo a sintaxe a seguinte: for (expressão inicial; expressão condicional; expressão final) instruções; expressão inicial - é executada apenas uma vez (normalmente usada para inicializar variáveis); expressão condicional - é analisada a cada ciclo se é FALSE o ciclo termina, caso contrário continua; expressão final - no fim de cada ciclo esta expressão é executada. Exemplo (o output será igual ao output da secção while só que desta vez é usado o for): <?php for ($cont=1;$cont<=5;++$cont) echo $cont."<br />"; ?> Output: 1 2 3 4 5 Nota: Se quiser incluir mais de uma instrução basta estarem entre chavetas, também é possível dentro de cada expressão ter várias instruções desde que separadas por vírgula. Ex: for ($cont=1;$cont<=5;++$cont,++$cont,--$cont) // Faz exactamente o mesmo Break e Continue A maneira mais comum de sair fora de um ciclo é a expressão tornar-se FALSE. Os comandos break e continue possibilitam outra opção. break Termina a execução de um ciclo. <?php $cont=1; while ($cont<=5) { echo $cont."<br />"; ++$cont; if ($cont==3) break; } ?> Output: 1 2 continue Salta o resto das instruções do ciclo actual que o contêm e continua a execução na expressão condicional. <?php $cont=0; while ($cont<5) { ++$cont; if ($cont==3) continue; echo $cont." "; } ?> Output: 1 2 4 5 Funções Funções definidas pelo utilizador não são realmente necessárias, pode-se produzir sites interessantes e úteis sem recorrer a funções definidas pelo utilizador mas apenas a construções básicas e funções já existentes no PHP. Se acha que os seus ficheiros em PHP estão a ficar demasiados grandes, difíceis de perceber, e difícil de fazer a gestão, pense em usar funções. O que é uma função? Função é uma maneira de pegar num pedaço de código dar-lhe um nome e pôr-lo à parte e quando quiser pode chamá-lo pelo nome. São especialmente úteis quando vamos usar esse pedaço de código várias vezes, no entanto em situações que só são usadas uma vez também são úteis por permite dividir bem o código tornando-o mais legível. Sintaxe function nome-da-função ($arg1, $arg2, ...) { instruções; [return $valor;] } Vou dar um exemplo de como fazer uma função a somar dois valores: <?php function soma ($valor1,$valor2) { return($valor1+$valor2); } if (isset($_POST['valor1']) && isset($_POST['valor2'])) { echo soma($_POST['valor1'],$_POST['valor2']); exit; } ?> O código HTML é o seguinte e deverá ser colocado após o código PHP: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <title>ex04</title> </head> <body> <form name="form1" method="post" action=""> Valor 1 <input name="valor1" type="text" id="valor1" maxlength="20"> <br> Valor 2 <input name="valor2" type="text" id="valor2" maxlength="20"> <br> <input type="submit" name="Submit" value="Enviar"> </form> </body> </html> Variáveis locais e globais Fora de funções as regras de variáveis são simples, se um valor for atribuído a uma variável, em qualquer parte do ficheiro em execução esse valor estará pronto a ser usado. As variáveis "declaradas" numa função são apenas acessíveis dentro dela, digamos que cada função tem um pequeno mundo seu e que não entra em conflito com o verdadeiro mundo. Se pretendem que numa função se refiram a variáveis globais deverão usar: global $variavel;. Include e Require (se o require falhar emite um erro e pára o processamento) É normal termos um conjunto de funções que vamos usar em várias páginas. Pode-se reunir esse conjunto de funções todo numa página PHP e incluir ao longo das páginas conforme necessário. Funções: include, include_once, require e require_once. Passar informações Alguma desta informação não é específica de PHP mas sim uma consequência da interacção PHP/HTML. HTML por si próprio é muito limitado. Imaginemos que quero guardar sempre numa variável de onde o utilizador veio para ter sempre um link 'Voltar atrás' correcto, tal não é possível com HTML; também podemos fazer umas forms todas giras mas de nada nos serve senão temos maneira de fazer o tratamento da informação recebida e guardá-la conforme o caso, aqui entra o PHP. Iremos abordar o $_POST e o $_GET. $_GET Variáveis fornecidas ao script através da URL. Similar ao $HTTP_GET_VARS (em desuso). Exemplo <?php if (isset($_GET['palavra'])) echo "A palavra é ".$_GET['palavra']; else echo "Erro, variável não definida."; ?> exemplos/ex05.php exemplos/ex05.php?palavra=TESTE Nota: Não recomendo a utilização do $_GET para sistemas de login, pois as passwords ficam a vista e também a utilização de URL grandes, mais de 255 caracteres é pedir problemas. $_POST Variáveis fornecidas ao script através de HTTP POST. Similar ao $HTTP_POST_VARS (em desuso). É mais seguro que o $_GET pois as passwords não ficam visíveis no URL e também permitem passar maior quantidade de informação. Ao longo deste manual já usei várias vezes o $_POST, cada campo de uma form tem um nome para ir buscar essa variável é $_POST['nome']. Exemplo: <input type="text" name="nome" maxlength="200"> : $_POST['nome']. Strings Strings são uma sequência de caracteres que podem ser manipulados, dados como input a funções, enviadas para o utilizador, recebias pelo utilizador através de forms, entre outras. $string1='Olá'; $string2="Olá"; A diferença é entre " e ', sendo esta ao nível da interpretação com " o PHP interpreta as variáveis e também caracteres começados pelo caracter especial \. <?php $nome="guest"; $string1='Olá $nome'; $string2="Olá $nome"; echo $string1; echo "<br />"; echo $string2; ?> Output: Olá $nome Olá guest Sendo uma string um conjunto de caracteres, ou seja, um vector, podemos manipular facilmente strings. <?php $s="Olá tudo bem? Quando vais a casa do ..."; $cont=0; while ($cont<strlen($s)) { if (($s[$cont]=="o") || ($s[$cont]=="O")) $s[$cont]="X"; if (($s[$cont]=="l") || ($s[$cont]=="L")) $s[$cont]="w"; if (($s[$cont]=="Q") || ($s[$cont]=="c")) $s[$cont]="k"; ++$cont; } echo $s; ?> Output: Xwá tudX bem? kuandX vais a kasa dX ... Se desejar fazer concatenações de strings veja isto. Existem um conjunto de funções importantes: strlen (devolve o número de caracteres da string), strpos (devolve a primeira posição da substring), strcmp (compara duas strings, pode se usar o operador ==), strcasecmp (comparar duas strings mas sem diferenciar maiúsculas de minúsculas). Matrizes (Arrays) As matrizes em PHP, ao contrário de outras linguagens de programação (C/C++), permitem armazenar dados de tipos variados. Uma matriz é um conjunto de variáveis "juntas" numa só. Algumas das variáveis que já usamos, como por exemplo $_GET, usa uma matriz. $aluno0="Nome"; $aluno1="Nome"; Podemos organizar numa matriz, por número e/ou string (entre ' '). <?php $alunos[0]="Eduardo"; $alunos[1]="João"; print_r ($alunos); ?> array $alunos=array('Eduardo', 'João'); É exactamente o mesmo que acima foi mostrado. Por defeito começa pelo índice 0, mas pode ser especificado outro valor, como veremos a seguir: <?php $alunos=array(0 => 'Eduardo', 1=> 'João'); print_r ($alunos); ?> Existem muitas funções para manipulação de arrays vou dar apenas o exemplo das mais importantes (lista completa): bool is_array (var); Devolve FALSE se a var não for um array int count (var, [int mode]); Devolve o números de variáveis (linhas) no array current Devolve o elemento actual do array next Aponta para o próximo elemento do array reset Aponta para o primeiro elemento do array end Aponta para o último elemento do array
  21. Boa tarde, Solicito a ajuda dos mais experientes nesta matéria, por forma a fornecerem alguma orientação de como executar a função descrita no titulo, ou a indicação de alguns tutoriais, após longas pesquisas nada encontrei, nem no site da Administração Tributária, penso que o caminho a seguir não será por Webservices, pois a ideia é obter os documentos e não registar novos documentos, a linguagem de programação que utilizo é PHP. Agradeço toda a ajuda que me possam dar, na certeza porem de que estarei pronto para partilhar com outros, o meu pouco conhecimento em matéria de programação.
  22. joaquim

    Sem repetição

    Boa tarde pessoal. Será que alguém poderia me ajudar? tenho uma tabela mysql com dois campos, ex: campo1 - campo2 secretario - joão secretario - antônio secretaria - maria secretaria - júlia fazer uma consulta e retornar de uma maneira que o campo1 não repita os nomes iguais, ex: campo1 - campo2 secretario - joão Antônio secretaria - maria júlia Teria como?
  23. Alexandre Rico

    Caracteres

    Olá, estou a iniciar-me em programação e toda a orientação é bem vinda 😊 Para já estou perante o seguinte problema que não consigo resolver: num formulário de ficha de cliente existe uma área de info extra que ao escrever caracteres eles são automáticamente removidos e eu pretendia precisamente o contrário que não fossem removidos. A virgula não é removida mas ao gravar desaparece. Alguem me pode ajudar? Muito obrigado o código no ficheiro php é este: </div> <div id='tabsfxc-3'> <div id="info_extra_fxc_cartao_place"></div> <div id="buttons_info_extra_place"> <a data-role="button" name="gravaFCInfoExtraBt" id="gravaFCInfoExtraBt" data-theme="c">GRAVAR</a> </div> </div> E no JS este: strinfo += '<label for="'+ this.nmcol +'" style="margin-top:10px;">'+ firstToUpperCase( this.nmcol ) +':</label>'; strinfo += '<input type="text" maxlength="50" onkeyup="this.value=strip_accents(this.value)" class="infoedit" value="'+ col_val +'" name="e'+ this.nmcol +'" id="e'+ this.nmcol +'" />'; }); } else { $("#buttons_info_extra_place").css('display', "none"); } info_extra.html(strinfo); $(".infoedit").textinput();
  24. ccue2003

    Segurança Social - Webservice

    Boa tarde Alguém tem o código que permita a comunicação com a segurança social no envio da declaração de remunerações. Já pedi o acesso à Segurança Social, mas não consigo fazer qualquer registo. Obrigado desde já
  25. Lourenço Gomes

    Envio de email automático sem uso de formulário

    Bom dia a todos, estudo PHP à menos de um ano e preciso de ajuda. Estou a trabalhar num sistema de agendamentos de eventos. Preciso que ao clicar no botão de finalização do agendamento, seja enviado um email para o técnico atribuido a esse evento com a informação do evento. Esse email está guardado numa base de dados, numa tabela onde guarda o registo dos técnicos. Estou mesmo a zeros com isto, preciso da maior ajuda possível. Obrigado
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.