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,325 results

  1. 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!
  2. 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?
  3. 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?
  4. 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 ); ?>
  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. 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
  7. 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.
  8. 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?
  9. 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?
  10. 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();
  11. 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á
  12. 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
  13. jovem

    Jquery + PHP

    Bom dia pessoal Estou aqui com um pequeno problema de nobice. Estou a tentar verficar se um nick já existe na base de dados e estou a fazer mal o processo. O problema é que já pesquisei e não consigo resolver. Já tentei fazer com ajax mas o navegador dá sempre refresh á página. Então é o seguinte: Este código está na página do formulário de registo: <script type="text/javascript" > $(document).ready(function() { $('#criar').validate({ rules: { Nome: { required: true, minlength: 5, maxlength: 50 }, Nick: { required: true, minlength: 4, maxlength: 10, remote: { url: "verificarnick.php", success: function(response) { alert(response); if (response == "1") { alert('Nick a ser utilizado'); } else if(response == "0") { alert('Nick livre'); } } } }, Email: { required: true, email: true }, Pass: { required: true, rangelength: [4,10] }, confirPass: { required: true, equalTo: "#pass" } }, messages: { } }); }); </script> E o meu verificarnick.php <?php include_once ("conexao.php"); $nick = $GET['Nick']; $result_validacao= "Select * from utilizador where nick = '$nick'"; $resultado_validacao=mysqli_query($conectar, $result_validacao); $row = mysqli_fetch_array ($resultado_validacao); $linhas = mysqli_num_rows ($resultado_validacao); if ($linhas > 0){ echo "1"; } else if ($linhas == 0){ echo "0"; } ?> Queria saber qual é a maneira de esta linha "$nick = $GET['Nick'];" receber o valor do id do input a ser verificado. Se colocar um nick manualmente na query ele retorna o alerta correcto. É possivel sem ajax e sem fazer refresh á página? Obrigado desde já
  14. Estou com duvidas sobre como eu posso pega uma função de um determinado controller e colocar em um botão javascript utilizando ajax. Não consegui achar algo de fato me ajudasse com isso. Agradeço desde já!
  15. Instalei Laravel Chatter em um projeto Laravel 5.4 e preciso permitir os usuários postarem de maneira anonima apenas escrevendo seu email para confirmar a pergunta, como poderia fazer isso?
  16. carcleo

    Versões

    Alguém me explica quais diferenças existem entre essas versões do php. Apache Lounge httpd-2.4.39-o102s-x64-vc14 Apache Hous httpd-2.4.39-win64-VC14 httpd-2.4.39-win64-VC15 httpd-2.4.39-win64-VS16 ? É que fui baixar a versão mais recente depois de muito tempo e me deparei como essa surpresa...
  17. carcleo

    Redirecionar no .htaccess

    Bom Pessoal entrei numa cilada agora que requer lógica: Bom, com o código RewriteCond %{SCRIPT_FILENAME} !-f RewriteCond %{SCRIPT_FILENAME} !-d # Reenvia todas páginas e diretórios ENCONTRADOS para o index menos as excessões à regra RewriteRule ^(.*)$ index.php?page=$1 [NC] Eu envio todas as URL's NÃO conhecidas para a index para fazer as URL's amigáveis. Blz! Mas.... Se o objetivo é fazer URL amigável, isso me leva a crer que NÃO queremos URL's não amigáveis. Logo, precisamos tratar também os links a arquivos e diretórios existentes e... Aí ferra tudo pois se eu fizer isso, haverá um loop infinito ao chegar na index pois ela também é um URL conhecida. Como fazer parar quando chegar na index e também permitir que eu faça include das páginas conhecidas a partir da index.php?
  18. Daniel Antonio de Lima

    Sensurar conteudo da Pagina

    Estou desenvolvendo uma aplicação web, não sou muito experiente. Tenho uma classe chamada Page(page.class.php) que "monta" a pagina pra mim, e uma das funções dessa classe, é censurar determinado conteúdo por nível de usuário. <?php class Page(){ //(...) static function sensurar($str){ $tipoInt = User::tipoInt(); for ($i=0; $i < 11; $i++) { if ($tipoInt == $i) continue; $str = Page::clearTag2($str,"<!--a$i-->","<!--$i-->","<!--a-->"); } return $str; } static function clearTag2($str,$tA,$tB,$msg=""){ $str0 = $str; $pattern = "/({$tA})(.|\n)*({$tB})/"; $str = preg_replace($pattern,$msg,$str); if (is_null($str)) {echo "erro"; return $str0; }; if($str == "") { $len = strlen($str0); $error = preg_last_error(); Page::error(" Limpou a string. [tA] = '$tA', [tB] = '$tB',[pattern] = '$pattern', [str].length = {$len} $error $str0 ","Page::clearTag2"); } return $str; } E estava funcionando maravilhosamente bem, até que começou a apresentar erro. quando utilizo na pagina pagina("string") abaixo <pre><h2>Erro Page::clearTag2</h2> Limpou a string. [tA] = '<!--a5-->', [tB] = '<!--5-->',[pattern] = '/(<!--a5-->)(.| )*(<!--5-->)/', [str].length = 6086 6 <!doctype html> <html> <head> <meta charset="utf-8"> <title>Sistema H |Produto, Odin</title> <link rel="stylesheet" type="text/css" href="tema.d/oficial.d/css/page.css"> <link rel="stylesheet" type="text/css" href="tema.d/oficial.d/css/menu.css"> <script type="text/javascript"> server = "http://localhost/g2%20soft/ecomerce/"; </script> <script src="tema.d/oficial.d/js/wrequest.js"></script> </head> <body lang="pt-br"> <nav id="menunav"> <header> <img src="tema.d/oficial.d/img/logo com fundo transparente.png" alt=""> </header> <ul class="menu"> <li class="menufechado" link="perfil" submenu="true" > <span onclick="menuOpen(this)">+ FabricaA[Fabrica]</span> <ul class="submenu"> <li class="menufechado" link="edit_perfil" submenu="false" > <span onclick="menuOpen(this)">Perfil</span> </li> <li class="menufechado" link="edit_perfil?a=sair" submenu="false" > <span onclick="menuOpen(this)">Sair</span> </li> </ul> </li> <li class="menufechado" link="list_meusprodutos" submenu="true" > <span onclick="menuOpen(this)">+ Produtos</span> <ul class="submenu"> <li class="menufechado" link="list_meusprodutos" submenu="false" > <span onclick="menuOpen(this)">Meus Produtos</span> </li> <li class="menufechado" link="add_produto" submenu="false" > <span onclick="menuOpen(this)">Cadastrar Produto</span> </li> <li class="menufechado" link="list_valortipo" submenu="false" > <span onclick="menuOpen(this)">Tabelas de Preço</span> </li> </ul> </li> <li class="menufechado" link="list_meusclientes" submenu="true" > <span onclick="menuOpen(this)">+ Clientes</span> <ul class="submenu"> <li class="menufechado" link="list_meusclientes" submenu="false" > <span onclick="menuOpen(this)">Meus Clientes</span> </li> <li class="menufechado" link="list_naoclientes" submenu="false" > <span onclick="menuOpen(this)">Não Clientes</span> </li> </ul> </li> <li class="menufechado" link="#" submenu="true" > <span onclick="menuOpen(this)">+ Cadastro</span> <ul class="submenu"> <li class="menufechado" link="add_produto" submenu="false" > <span onclick="menuOpen(this)">Produto</span> </li> <li class="menufechado" link="add_formadepagamento" submenu="false" > <span onclick="menuOpen(this)">Forma de pagamento</span> </li> <li class="menufechado" link="add_prasodeentrega" submenu="false" > <span onclick="menuOpen(this)">Praso de pagamento</span> </li> </ul> </li> <li class="menufechado" link="list_pedidosfabrica" submenu="false" > <span onclick="menuOpen(this)">Pedidos</span> </li> <li class="menufechado" link="mensagens" submenu="false" > <span onclick="menuOpen(this)">Mensagens</span> </li> <li class="menufechado" link="" submenu="true" > <span onclick="menuOpen(this)">+ Relatorios</span> <ul class="submenu"> <li class="menufechado" link="rela_produtosvendidos" submenu="false" > <span onclick="menuOpen(this)">Produtos Vendidos</span> </li> <li class="menufechado" link="rela_produtoscadastrados" submenu="false" > <span onclick="menuOpen(this)">Produtos Cadastrados</span> </li> <li class="menufechado" link="rela_clientescadastrados" submenu="false" > <span onclick="menuOpen(this)">Clientes Cadastrados</span> </li> </ul> </li> <li class="menufechado" link="" submenu="false" > <span onclick="menuOpen(this)">Lançamentos</span> </li> </ul> </nav> <content> <h1>Produto, Odin</h1> <link rel="stylesheet" href="tema.d/oficial.d/css/view_produto.css"> <div class="page_listabas"> <!--a5--> <div class="page_abalabel " onclick="link('list_loja')">Loja</div> <!--5--> <div class="page_abalabel page_abalabel_opened">Ver</div> <!--a6--> <div class="page_abalabel" onclick="link('edit_produto?id=52')">Detalhes</div> <div class="page_abalabel" onclick="link('edit_produtomidia?id=52')">Midias</div> <!--6--> </div> <div class="page_aba"> <div id="referencia">Odin</div> <div class="midias"> <div class="midia_view"> <img src="anexo\97" alt="midia0" id="midia_view_img"> </div> <div class="midias_left"> <span> <img src="tema.d/oficial.d/img/midiasview_arrow_left.svg" alt=""> </span> </div> <div class="midias_right"> <span> <img src="tema.d/oficial.d/img/midiasview_arrow_right.svg" alt=""> </span> </div> <div class="midia_list"><div class=""> <img src="anexo/97" alt="" onclick="setMidia(this)"> </div> <div class=""> <img src="anexo/98" alt="" onclick="setMidia(this)"> </div> </div> </div> <div class="detalhes"> <p>Odim, tambem conhecido como pai de todos.</p> <p> 2cx por <valor>R$ 0,00</valor> </p> <p>[52]Hidralica Industrial/Eletrica</p> </div> <div class="formasdepagamento"> <p>Podendo ser pago:</p> {{formas de pagamento}} </div> <div class="outrosprodutos"> <div class="produto"> <img src="anexo/0" alt=""> </div> {{outrosprodutos}} </div> </div> <script type="text/javascript" src="tema.d/oficial.d/js/view_produto.js"></script> <footer>G2</footer> </content> <div class="menu-button" onclick="menuShow()">&equiv;</div> <div class="flutuante" id="flutuante">Loading...</div> <div class="msgbox_fundo" id="msgbox_fundo" onclick="MSGbox.close()"> <div class="msgbox_box"> <span class="button msgbox_close" onclick="MSGbox.close()">X</span> <div class="msgbox_conteudo" id="msgbox_conteudo"> </div> </div> </div> <script type="text/javascript" src="tema.d/oficial.d/js/page.js"></script> <script type="text/javascript" src="tema.d/oficial.d/js/menu.js"></script> </body> </html>
  19. Tiago Guardado

    Bases de Dados Wordpress

    Bom dia, estou a fazer um projeto em php, e preciso de uma base de dados MySQL do wordpress com o plug in WooCommerce instalado e com alguns produtos. E só para testes, se alguém me conseguisse ajudar, eu ficaria bastante agradecido.
  20. Filipe Oliveira

    Problema com acentuação utf-8

    Boas, Estou a fazer um site de noticias Gaming onde recolho dados da base de dados e listo em Html. O problema: Defini o agrupamento da base de dados como utf8_general_ci mas quando listo os registos os acentos não aparecem aparece algo como �����. Como podem ver no inicio do código utilizei header('Content-Type: text/html; charset=utf-8'); que foi o que vi num fórum inglês mas como não percebo muito de inglês não percebi o que tinha que por mais no código para que funcionasse corretamente. Se alguém me pode-se ajudar agradecia. <?PhP header('Content-Type: text/html; charset=utf-8'); if(!isset($_GET["ordenar"])) { $ordenar="titulo"; } else { $ordenar=$_GET["ordenar"]; } if($ordenar=='referencia') { $ordenar_por="order by referencia"; } if($ordenar=='titulo') { $ordenar_por="order by titulo"; } if($ordenar=='nomejogo') { $ordenar_por="order by nomejogo"; } if($ordenar=='dataregisto') { $ordenar_por="order by dataregisto DESC"; } include("LigaBD.php"); $lista="SELECT * FROM noticias WHERE publicado!=0 $ordenar_por"; $faz_lista=mysqli_query($ligaBD, $lista); $num_registos=mysqli_num_rows($faz_lista); if($num_registos==0) { echo "<script>alert('Nao existem noticias para listar!');</script>"; exit('<script>location.href = "ADMINISTRADOR.php"</script>'); } function limita_caracteres($texto, $limite, $quebra = true){ //Codigo para delimitar texto tirado de uma base de dados $tamanho = strlen($texto); if($tamanho <= $limite){ //Verifica se o tamanho do texto é menor ou igual ao limite $novo_texto = $texto; }else{ // Se o tamanho do texto for maior que o limite if($quebra == true){ // Verifica a opção de quebrar o texto $novo_texto = trim(substr($texto, 0, $limite))."..."; }else{ // Se não, corta $texto na última palavra antes do limite $ultimo_espaco = strrpos(substr($texto, 0, $limite), " "); // Localiza o útlimo espaço antes de $limite $novo_texto = trim(substr($texto, 0, $ultimo_espaco))."..."; // Corta o $texto até a posição localizada } } return $novo_texto; // Retorna o valor formatado } ?> <html> <head> <meta charset="UTF-8"> <style type="text/css"> img { float: center; margin: 5px; width: 120px; height: 80px; } tr th{ padding: 5px 25px; } td{ padding: 0px 8px; max-width: 350px; text-align: center; } </style> </head> <body bgcolor="#C0C0C0"> <!--cor de fundo da pagina--> <table border="1" align="center" bgColor=white bordercolor=#0d0d0d> <tr><th Colspan=11 bgColor=white bordercolor=#0d0d0d>Noticias Publicadas: <?php echo "$num_registos"; ?> <!--Cabecalho da tabela--> <tr> <tr bgColor=white bordercolor=#0d0d0d> <th><a href="ListarNoticiasPublicadas.php?ordenar=referencia">Referencia da noticia</a></th> <th><a href="ListarNoticiasPublicadas.php?ordenar=titulo">Titulo da noticia</a></th> <th>Descricao da noticia</th> <th><a href="ListarNoticiasPublicadas.php?ordenar=nomejogo">Nome do jogo</a></th> <th>Imagem da noticia</th> <th><a href="ListarNoticiasPublicadas.php?ordenar=dataregisto">Data de registo</a></th> <th>Ocultar</th> <th>Editar</th> <th>Eliminar</th> </tr> <?php for ($i=0; $i<$num_registos; $i++) { $registos = mysqli_fetch_array($faz_lista); echo'<tr>'; echo'<td>'.$registos['referencia'].'</td>'; echo limita_caracteres('<td>'.$registos['titulo'].'</td>', 80); echo limita_caracteres('<td>'.$registos['descricao'].'</td>',300); echo'<td>'.$registos['nomejogo'].'</td>'; echo'<td>'."<img src='Imagens/".$registos['imagem']."'>".'</td>'; echo'<td>'.$registos['dataregisto'].'</td>'; echo'<td><a href="OcultarNoticia.php?referencia='.$registos['referencia'].'">Ocultar noticia</a></td>'; echo'<td><a href="EditarNoticiaPublicada.php?referencia='.$registos['referencia'].'">Editar noticia</a></td>'; echo'<td><a href="EliminarNoticiaPublicada.php?referencia='.$registos['referencia'].'">Eliminar noticia</a></td>'; } echo"<br>"; ?> </table> </body> </html> <center> <br> <table width="1000px" border="0" cellspacing="30px" cellpadding="4"> <tr align="center"> <td><a href="ADMINISTRADOR.php"><button style="width:180px;height:50px">Voltar</button></a></td> </tr> </table> </center>
  21. yoda

    Base de dados

    Boas, Criei este tópico para partilhar esquemas de base de dados com informação que alguns de nós pontualmente precisa e que nem sempre é fácil encontrar. Espero que metam isto como sticky. Distritos, Concelhos e Freguesias de Portugal (fonte : ctt.pt ) http://pastebin.com/tJDVAerB Marcas e Modelos de Automóveis ( 2 tabelas, não relacionais, e incompletas - fonte : standvirtual.com ) http://pastebin.com/fGNmLuS1 Enjoy. Quem tiver mais informação do género que ache relevante, que responda ao tópico e deixe o link para o esquema no pastebin.com
  22. Boas, sou um amador/iniciante nisto e estou com um dilema que não consigo resolver, é o seguinte: Estou a criar um Backoffice que gere os artigos do meu site: http://puu.sh/95gwK/1115c780e9.png Contudo, queria chamar as funções da mesma página e não ir buscar a outras páginas, por exemplo, quando clicar em apagar nao ir buscar a pagina "apagar.php?id=5".. Como faço para quando clico em apagar no primeiro artigo ele apenas apagar aquela noticia? Obrigado!
  23. João Vitor Pinheiro

    Carrinho de compras PHP

    Preciso de ajuda para alterar o metodo de alterar a quantidade do produto no meu carrinho, meus conhecimentos sobre programação web são bem basicos, preciso finalizar esse projeto para entregar na faculdade, eu implementei um metodo simples de alterar a quantidade, mas acontece um reload cada vez que eu adiciono ou removo mais '1' da quantidade, gostaria que alguem implementasse um metodo em que isso não aconteça no meu codigo, abaixo esta o codigo do meu carrinho: <?php session_start(); if (!isset( $_SESSION['itens'] ) ): $_SESSION['itens'] = array(); endif; if ( isset( $_GET['add'] ) && $_GET['add'] == "carrinho" ): $idProduto = $_GET['id']; if (!isset ($_SESSION['itens'][$idProduto])): $_SESSION['itens'][$idProduto] = 1; else: $_SESSION['itens'][$idProduto] +=1; endif; endif; if ( count( $_SESSION['itens'] ) == 0 ): echo ' <h1>Carrinho vazio</h1>'; else: $_SESSION['dados'] =array(); $conexao = new PDO ('mysql:host=localhost;dbname=meusprodutos',"root", ""); ?> <table > <thead> <th><div align="center" style="font-size:14px; font-family: arial"> <font color="black">Produto </font></th> <th><div align="center" style="font-size:14px; font-family: arial"> <font color="black">Preço </font></th> <th><div align="center" style="font-size:14px; font-family: arial"> <font color="black">Quantidade </font></th> <th><div align="center" style="font-size:14px; font-family: arial"> <font color="black">Subtotal</font></th> <th><div align="center" style="font-size:14px; font-family: arial"> <font color="black">Opções</font></th> </thead> <tbody> <?php $totalcarrinho = 0; foreach ( $_SESSION['itens'] as $idProduto => $quantidade ): $select = $conexao->prepare("SELECT * FROM produtos WHERE id=?"); $select ->bindParam(1, $idProduto); $select ->execute(); $produtos = $select->fetchAll(); $total = $quantidade * $produtos[0]["preco"]; if(count( $_SESSION['itens'] ) == 0 ): $totalcarrinho = 0; else: $tempcarrinho = $totalcarrinho; $totalcarrinho = $tempcarrinho + $total; endif; ?> <tr> <td><div align="center" style="font-size:20px; font-family: verdana"> <font color="white"><?=$produtos[0]["nome"]?></font> </div></td> <td><div align="center" style="font-size:15px; font-family: verdana"> <font color="white"><?=number_format( $produtos[0]["preco"], 2, ", ", "." )?></font></div></td> <td><div align="center"style="font-size:15px; font-family: verdana"> <font color="white" ><a href="remover.php?remover=carrinho&id=<?=$idProduto?>">◄</a> <?=$quantidade?><a href="carrinho.php?add=carrinho&id=<?=$idProduto?>">►</a></font> </div></td> <td><div align="center" style="font-size:15px; font-family: verdana"> <font color="white"><?=number_format( $total, 2, ",", "." )?></font></div></td> <td> <a href="remover2.php?remover=carrinho&id=<?=$idProduto?>">Remover</a> </td> </tr> <?php array_push($_SESSION['dados'], array ('id_produto' => $produtos[0]["nome"], 'quantidade' => $quantidade, 'preco' => $produtos[0]["preco"], 'total' => $total ) ); endforeach; ?> </tbody> </table> <table> <td class="td1"><div align='center' style='font-size:25px;font-family:Verdana'><font color="white">Total <?=number_format( $totalcarrinho, 2, ",", "." )?></font></div></td> </table> <?php echo '<a href="finalizar.php"><button class="button2" type="submit">Finalizar pedido</button></a>'; endif; ?>
  24. João Vitor Pinheiro

    Alterar quantidade no carrinho de compras

    Gostaria de poder editar o valor da quantidade dentro do meu carrinho, pois so consigo aumentar mais um se eu for no index e adicionar novamente o mesmo produto,não consigo implementar algo que altere o valor da quantidade ja dentro do carrinho, se alguem puder ajudar eu agradeço muito, aqui está o codigo do meu carrinho: < <?php session_start(); if (!isset( $_SESSION['itens'] ) ) : $_SESSION['itens'] = array(); endif; if ( isset( $_GET['add'] ) && $_GET['add'] == "carrinho" ) : $idProduto = $_GET['id']; if (!isset ($_SESSION['itens'][$idProduto])): $_SESSION['itens'][$idProduto] = 1; else: $_SESSION['itens'][$idProduto] +=1; endif; endif; if ( count( $_SESSION['itens'] ) == 0 ) : echo ' <h1>Carrinho vazio</h1>'; else: $_SESSION['dados'] =array(); $conexao = new PDO ('mysql:host=localhost;dbname=meusprodutos',"root", ""); ?> <table > <thead> <th>Nome</th> <th>Preço</th> <th>Quantidade</th> <th>Subtotal</th> <th>Opções</th> </thead> <tbody> <?php $totalcarrinho = 0; foreach ( $_SESSION['itens'] as $idProduto => $quantidade ) : $select = $conexao->prepare("SELECT * FROM produtos WHERE id=?"); $select ->bindParam(1, $idProduto); $select ->execute(); $produtos = $select->fetchAll(); $total = $quantidade * $produtos[0]["preco"]; if(count( $_SESSION['itens'] ) == 0 ) : $totalcarrinho = 0; else: $tempcarrinho = $totalcarrinho; $totalcarrinho = $tempcarrinho + $total; endif; ?> <tr> <td><div align="center" style="font-size:20px; font-family: verdana"> <font color="black"><?=$produtos[0]["nome"]?></font> </div></td> <td><?=number_format( $produtos[0]["preco"], 2, ", ", "." )?></td> <td><div align="center"> <?=$quantidade?> </div></td> <td><?=number_format( $total, 2, ",", "." )?></td> <td><a href="remover.php?remover=carrinho&id=<?=$idProduto?>">Remover</a></td> </tr> <?php array_push($_SESSION['dados'], array ('id_produto' => $produtos[0]["nome"], 'quantidade' => $quantidade, 'preco' => $produtos[0]["preco"], 'total' => $total ) ); endforeach; ?> </tbody> </table> <table> <td><div align='center' style='font-size:25px;font-family:Verdana'>Total <?=number_format( $totalcarrinho, 2, ",", "." )?></div></td> </table> <?php echo '<a href="finalizar.php">Finalizar pedido</a>'; endif; ?> >
  25. Boa tarde comunidade! Sou novo neste fórum, descobri-o hoje á tarde e rapidamente criei uma conta, feliz por ter a oportunidade de partilhar os meus conhecimentos e aprender algo! E para me iniciar aqui, decidi escrever um artigo para ajudar todos os Web Developers a criarem algo fantástico. Hoje vou mostrar como colocar os dados obtidos a partir de um formulário em HTML, num ficheiro JSON, utilizando PHP. Mas primeiramente vamos a umas explicações! O que é JSON? Primeiramente, JSON é a sigla correspondente a JavaScript Object Notation. È usado na maioria das vezes para criar API's ou guardar informações, que depois podem ser descodificadas e usadas para mostrar informações. Pode ser usada como um substituto ao MySQL(Em alguns casos, como por exemplo, guardar informações), pois é relativamente fácil de ser programada. E é a tecnologia que vamos usar hoje para guardar as informações do formulário HTML. Antes do código: Antes de começarmos a programar é importante criarmos a nossa estrutura de ficheiros, que se vai dividir nos ficheiros: index.php(ficheiro do formulário HTML), tanks.php(Página de agradecimento) e data.json(Onde vão ser guardados as informações em JSON). Vamos ao código? Chegando á parte esperada, vamos começar a programar o nosso código HTML e PHP: <?php if(isset($_POST['submit'])) { $file = "data.json"; $json_string = json_encode($_POST, JSON_PRETTY_PRINT); file_put_contents($file, $json_string, FILE_APPEND); header('Location: thanks.php'); } ?> <!doctype html> <html> <head> </head> <body> <center> <h1>Form</h1> <form name="form1" method="post" action=""> <p> <label for="name">Name: </label> <input type="text" name="name" id="name" placeholder="Your full name" autofocus required> </p> <p> <label for="email">Email: </label> <input type="email" name="email" id="email"> </p> <p> <label for="cell">Cell: </label> <input type="tel" name="cell" id="cell"> </p> <p> <label for="dob">Date of birth: </label> <input type="date" name="dob" id="dob"> </p> <p> <label for="study">Years of art study: </label> 0 <input type="range" name="study" id="study" min="0" max="16"> 16 </p> <p style="text-align: center;"> <input type="submit" name="submit" id="submit" value="Submit"> </p> </form> </center> </body> </html> Mais brevemente vou lançar um artigo sobre como cada parte deste código funciona, esperem por mim 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.