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
    • 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,079 results

  1. XRS

    Sistema Plugins/Modulos

    Boa tarde, Estou a desenvolver um sistema CRUD com algumas funcionalidades básicas para ter como base para todos os projetos. A ideia é não estar sempre a refazer este conjunto de funcionalidades (gestão de users, permissões, roles, etc). De forma a criar algo útil e que se relacionasse entre si, pretendia criar um sistema de plugins que funcionasse de forma a evitar alterar o core sempre que necessário. A ideia era criar vários plugins que fossem criar adicionar as features que necessito para o projeto em questão. Por exemplo criar um plugin para blog, onde ele iria criar as tabelas associadas a um blog (categorias, tags, posts, comentarios, etc) e também adicionasse ao menu essas páginas. No entanto não estou a conseguir arranjar uma maneira decente de fazer isto. A ideia seria algo do género: "Core" tem uma página plugins onde iria ler as pastas de uma folder em especifico (por exemplo /plugins/); "Core" ia ter uma tabela básica onde constavam dados dos plugins instalados (por ex nome, versão, ativo ou não, etc); "Core" ia ter no menu uma leitura das paginas adicionais do plugin; Folder do plugin em si: + plugin_blog ++ plugin_blog.php (contem um array com a informação do plugin) ++ plugin_blog.sql (sql para instalação do plugin) ++ plugin_blog_uninstall.sql (sql para uninstall do plugin) ++ /folder/*.php (funções core do plugin e páginas adicionais do menu) Portanto a ideia passaria por quando aceder à página dos plugins no core, ele ia verificar se já tinha na tabela core o plugin que adicionei. Se não tivesse, fazia a instalação do plugin. Necessitava de colocar um loader para carregar os plugins que estivessem ativos. Isto está-me a criar algumas dúvidas nomeadamente: Como, através de rewrite rules conseguiria adicionar estes novos links (não tenho muito conhecimento de .htaccess) sem mexer no core; Será a forma mais prática de desenvolver um sistema de plugins? Tudo o que já procurei não consegui encontrar algo que realmente satisfizesse a minha necessidade. Alguma sugestão adicionar de como fazer isto de forma eficaz? Obrigado.
  2. MARGARIDA

    Dados do Array para email

    Olá, boa tarde Precisava de uma ajuda num projeto. Tenho uma tabela que permite adicionar, editar e eliminar linhas, criei um 'foreach' para os diferentes array's. Agora ao submeter o formulário os dados são impressos no ecrã, no entanto para o email apenas envia o último dado do array. Obrigada! <?php foreach ($_POST['produto'] as $item){echo 'Produto:' . $item . '<br>';} foreach ($_POST['referencia'] as $itemr){echo 'Referência:' . $itemr . '<br>';} foreach ($_POST['quantidade'] as $itemq){echo 'Quantidade:' . $itemq . '<br>';} foreach ($_POST['preco'] as $itemp){echo 'Preco:' . $itemp . '<br>';} $mensagem_form = $_POST['obs']; $to = "email@email.pt"; $remetente = "email@email.pt"; $boundary = date("d-m-Y"); $headers.= "Nova Encomenda - "; $headers.= "$boundary\n"; $corpo_mensagem = " ENCOMENDA Produto: $item Referência: $itemr Quantidade: $itemq Preço: $itemp € OBSERVAÇÕES Mensagem: $mensagem_form "; $mensagem = "--$boundary\n"; $mensagem.= "Content-Transfer-Encoding: 8bits\n"; $mensagem.= "Content-Type: text/html; charset=\"utf-8\"\n\n"; $mensagem.= "$corpo_mensagem\n"; if(mail($to, $headers, $corpo_mensagem)){ echo "<br><br><center><b><font color='green'>Mensagem enviada com sucesso!<br><br><a href='http://conceitosdiferentes.org/batist/encomendas.html'>Voltar</a>"; } else{ echo "<br><br><center><b><font color='red'>Ocorreu um erro ao enviar a mensagem!<br><br><a href='http://conceitosdiferentes.org/batist/encomendas.html'>Voltar</a>"; } ?>
  3. Sebastião Teixeira

    Dados não estão a ser inseridos na base de dados

    Pretendo que 'email' e 'time' sejam inseridos nas colunas 'Login' e 'Expire' da tabela 'Login', e que após 'time' < 'NOW()', estes sejam removidos da tabela. function create_session($email, $remember) { //Inicia-se conecção com as seguintes constantes $conn = new mysqli(SQLServer, SQLUsername, SQLPassword, database); //Verifica-se a presença de erros if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } //Segurança contra SQLInjection $safe_email = $conn->real_escape_string($email); //Atribuição de valor à variável $time if ($remember == true) { $time = strval(86400 * 7); } else { $time = strval(86400 * 7); } //SQL Query - inserção de dados (temporários) $create_session = "INSERT INTO Login (Login, Expire) VALUES (?, (ADDTIME(NOW(), ?)));"; //Execução prepareQuery($conn, $create_session, "s", array($safe_email)); //SQL Query - obtenção do id $readID = "SELECT id FROM Login WHERE Login = ?;"; //Execução $id = prepareQuery($conn, $readID, "ss", array($safe_email, $time)); $conn->close(); //remoção de dados temporários expirados removeOldSessions(); return $id; } //Segurança contra SQLInjection (Prepared Query) function prepareQuery($conn, $query, $type, array $parameters) { $stmt = $conn->prepare($query); call_user_func_array(array($stmt, "bind_param"), array_merge(array($type), $parameters)); $stmt->execute(); $res = $stmt->fetch(); $stmt->close(); return $res; } function removeOldSessions() { $conn = new mysqli(SQLServer, SQLUsername, SQLPassword, database); if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } $removeSessions = "DELETE FROM Login WHERE Expire < NOW();"; prepareQuery($conn, $removeSessions, "", array()); $conn->close(); return; } Acontece que os dados não estão inseridos e nenhum erro está a ser reportado. Agredeço a ajuda possível
  4. danielfpaiva

    HTTP headers security htaccess

    Boa noite, Neste momento encontro-me a tentar definir no ficheiro .htaccess a questão relacionada com http headers security mas estou a ter um problema relacionado com a Content-Security-Policy. No meu ficheiro tenho o seguinte conjunto de regras Header set Cache-Control "no-cache, no-store, must-revalidate" Header set Pragma "no-cache" Header set Expires 0 Header set X-XSS-Protection "1; mode=block" Header set X-Frame-Options "DENY" Header set X-Content-Type-Options nosniff Header always set Referrer-Policy "same-origin" Header always set Feature-Policy "microphone 'none'; payment 'none'; sync-xhr 'self' https://coilcrypto.com" Header add Content-Security-Policy "default-src 'self'" Header add Content-Security-Policy "script-src 'self' https://cdn.jsdelivr.net/ cdn.amcharts.com" Header add Content-Security-Policy "style-src 'self' fonts.googleapis.com use.fontawesome.com" Header set Strict-Transport-Security "max-age=31536000" env=HTTPS Quando carrego o site com estas linhas todas os ficheiros css e js externos não são carregados. No entanto quando retiro as linhas relacionada com Content-Security-Policy os ficheiros passam a ser carregados. Será que me conseguem ajudar?
  5. JoseDroid

    Verificação de login pelo método session

    Boas malta tenho este código feito para verificar se o utilziador está ou não registado na base de dados, mas este código da-me erro ao utilizar alguem me pode ajudar ? dá erro na parte do "mysql_num_rows()" e na parte do " $result = "SELECT * FROM `utilizadores` WHERE `id` = '$login' AND `pass`= '$pass'";" o código é este: <?php session_start(); $login = $_POST['login']; $pass = $_POST['pass']; include ('conexao.php'); // A variavel $result pega as varias $login e $senha, faz uma $result = "SELECT * FROM `utilizadores` WHERE `id` = '$login' AND `pass`= '$pass'"; if(mysql_num_rows($result) > 0 ) { $_SESSION['login'] = $login; $_SESSION['pass'] = $pass; header('location:site.php'); } else{ unset ($_SESSION['login']); unset ($_SESSION['pass']); header('location:index.php'); } ?> Ajudem por favor
  6. José Moreira

    Status Sistema de Login PHP!

    index.html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Formulário da Robotics Automotive</title> <style type="text/css"> * { margin: 0; padding: 0; font-family:Arial; font-size:12pt;} #divCenter { background-color: #2528BB; opacity:0.90; width: 300px; height: 300px; left: 50%; margin: -130px 0 0 -130px; padding:10px; position: absolute; top: 30%; } .img-fundo { background-image: url("imagenssite/1x/azultecnologia.jpg"); width: 100vw; height: 100vh; background-position: center; background-repeat: no-repeat; background-size:100%; } a:link { color:red; } a:hover { color: orange; } p { color: white; } </style> </head> <body> <div class="img-fundo"> <div id="divCenter"> <form id="formPost" method="post" action="login.php"> <p align="center"><img src="Asset 1.png" alt="Logo Robotics Automotive" style="height:100px; width:px"></p> <br><br> <p align="center"><strong>Utilizador: </strong><input type="text" id="utilizador" name="utilizador" size="20"/><br/></p> <br> <p align="center"><strong>Password: </strong><input type="password" id="pw" name="pw" size="20"><br/></p> <br> <p align="center"><input value="Entrar" type="submit" style="height:30px; width:80px"/> </p> </form> <br> <p align="center"><a href="registo.html" target="_blank">Efetuar o Registo</a></p> </div> </div> </body> </html> login.php <?php header("Content-Type: text/html; charset=ISO-8859-1", true); // inclui ficheiro de configuração do sistema include "conexao.php"; // recebe dados do formulario $login = $_POST['utilizador']; $passcolocada = $_POST['pw']; //mensagem caso algum campo obrigatorio estiver em branco e retorna a pagina de registo if( ($login == "") || ($passcolocada == "")){ print "<script> alert('Digite o Login e Password!'); location.href='index.html'; </script>"; exit; } // verifica se utilizador existe $query="select * from utilizadores where login='$login' and status='1'"; $consulta = mysqli_query($ligar,$query); $registos = mysqli_num_rows($consulta); if($registos==0){ print "<script> alert('Não existem utilizadores ativos'); location.href='index.html'; </script>"; exit; }else{ while($row = $consulta->fetch_assoc()){ $id = $row['idLogin']; $login = $row['login']; $pass = $row['pass']; $status = $row['status']; // se o utilizador digitar o login certo mas a pass errada dá a seguinte mensagem if($passcolocada != $pass) { print "<script> alert('utilizador ou password Incorreta!'); location.href='index.html'; </script>"; exit; } else { session_start(); $_SESSION['login_utilizador'] = $login; $_SESSION['pass_utilizador'] = $pass; // redireciona link para pagina administrador header("Location: reclamacao.html"); } }} ?> inserirfuncionario.php <html> <head> <link rel="stysheet" href="css/w3.css"> <meta charset="UTF-8"> <title> Inserir Funcionário</Title> </head> <body class="w3-container w3-cyan" style="max-width:1920px"> <h1 class="w3-center">Inserir Funcionário</h1> <hr> <br> <form enctype="multipart/form-data" method="POST" action="FuncionarioBD.php"> <div> <h2 class="w3-text-white">Nome Funcionário</h2> <input type="text" name="nome_func" size="30"> <br> </div> <div> <h2>Código da Loja</h2> <?php require 'conexao.php'; $query="SELECT id_loja, desc_loja FROM loja WHERE estado_loja='1'"; $result=mysqli_query($ligar, $query); ?> <select name="id_loja" id="id_loja"> <option>Selecione...</option> <?php while($dados=mysqli_fetch_array($result)){ ?> <option value="<?php echo $dados['id_loja']?>"><?php echo $dados['desc_loja']?></option> <?php } ?> </select> </div> <br> <div class="w3-row w3-container w3-blue"> <h1 class="w3-text-white">Dados de entrada no sistema:</h1> </div> <br> <div class="w3-row w3-container w3-blue"> <h2 class="w3-text-white">Nome de Login</h2> <input name="login" type="text" id="login" size="30"> </div> <br> <div class="w3-row w3-container w3-blue"> <h2 class="w3-text-white">Password</h2> <input type="password" name="pass" id="pass"> </div> <br> <div class="w3-row w3-container w3-blue"> <h2 class="w3-text-white">Confirmar Password</h2> <input type="password" name="confpass" id="confpass"> <br> <input class="w3-btn w3-half w3-pale-blue" type="submit" value="Registar Funcionário"> <a class="w3-btn w3-half w3-pale-blue" href="IntraOffice.html">Voltar ao Início</a> </div> </form> </body> </html> InserirLoja.html <html> <head> <meta charset="UTF-8"> <title>Inserção de Loja</title> <link rel="stysheet" href="css/w3.css"> </head> <body class="w3-container w3-cyan" style="max-width:1920px"> <form enctype="multipart/form-data" method="POST" action="LojaBD.php"> <h1 class="w3-center">Inserir Loja</h1> <hr> <br> <div class="w3-row w3-container w3-blue"> <p>Descrição da Loja:</p> <p><input type="text" name="desc_loja" size='50'></p> </div> <div class="w3-row w3-container w3-blue"> <p>Localização da Loja:</p> <p><input type="text" name="localizacao_loja" size='50'></p> <label>Selecione o estado da loja</label> <select id="estado_loja" name="estado_loja"> <option value="0">Fechada</option> <option value="1">Aberta</option> </select> </div> <div class="w3-row w3-container w3-blue"> <p>Contato da Loja:</p> <p><input class="w3-btn w3-half w3-pale-blue" type="text" name="contato_loja" size='10'></p> <p><input class="w3-btn w3-half w3-pale-blue" type="submit" value="Registar Loja"></p> </div> </form> </body> </html> InserirPais.html <html> <head> <meta charset="UTF-8"> <title>Inserção de Pais</title> <link rel="stylesheet" href="css/w3.css"> </head> <body class="w3-container w3-cyan" style="max-width:1920px"> <form enctype="multipart/form-data" method="POST" action="PaisBD.php"> <h1 class="w3-center">Inserir Pais</h1> <hr> <div class="w3-row w3-container w3-blue"> <p class="w3-text-white">Sigla do Pais:</p> <p><input type="text" id="sigla_pais" name="sigla_pais" size='30'></p> </div> <div class="w3-row w3-container w3-blue"> <p class="w3-text-white">Insira a descrição:</p> <p><input type="text" id="desc_pais" name="desc_pais" size='30'></p> </div> <p><input class="w3-btn w3-half w3-pale-blue" type="submit" value="Registar Pais"></p> <p><a class="w3-btn w3-half w3-pale-blue" href="IntraOffice.html">Voltar ao inicio</a></p> </form> </body> IntraOffice.html <!DOCTYPE html> <html> <title>Acrescentar Cliente</title> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="css/w3.css"> <script language="JavaScript" type="text/javascript"> </script> <body class="w3-content" style="max-width:1920px"> <div class=" w3-light-blue w3-container w3-center" style="height:100%"> <div class="w3-padding-16"> <img src="Asset 1.png" alt="logo" style="width:10%"> </div> <div class="w3-container w3-center w3-light-blue"> <a href="AdicionarReclamacao.php" class="w3-container w3-center w3-block w3-hover-blue-grey w3-padding-16">Reclamações</a> </div> <div class="w3-container w3-panel w3-light-blue"> <a href="inserirfuncionario.php" class="w3-button w3-half w3-block w3-hover-brown w3-padding-16">Funcionários</a> <a href="InserirLoja.html" class="w3-button w3-half w3-block w3-hover-dark-grey w3-padding-16">Lojas</a> </div> <div class="w3-container w3-panel w3-light-blue"> <a href="InserirPais.html" class="w3-button w3-half w3-block w3-hover-dark-grey w3-padding-16">Inserir de País</a> <a href="Status.html" class="w3-button w3-half w3-block w3-hover-dark-grey w3-padding-16">Status</a> </div> <footer class="w3-container w3-black w3-padding-16 w3-center">@ Sistema de Reclamações da Robotics Automotive</footer> </body> </html> LojaBD.php <?php include('conexao.php'); $DescLoja=$_POST['desc_loja']; $Localoja=$_POST['localizacao_loja']; $Estloja=$_POST['estado_loja']; $ContatoLoja=$_POST['contato_loja']; $query="INSERT INTO loja (desc_loja,localizacao_loja,estado_loja,contato_loja) VALUES('".$DescLoja."','".$Localoja."','".$Estloja."','".$ContatoLoja."')"; $result=mysqli_query($ligar,$query); echo"<html>"; echo"<head><title>Inserir Loja</title></head>"; echo"<body>"; if($result==1){ print "<script> alert('Dados da Loja Inseridos!'); location.href='InserirLoja.html'; </script>"; exit; } else { print "<script> alert('Erro: Não foi possível inserir a loja!'); location.href='InserirLoja.html'; </script>"; exit; } echo"</body>"; echo"</html>"; ?> PaisBD.php <?php include('conexao.php');~ $SiPais=$_POST['sigla_pais']; $DesPais=$_POST['desc_pais']; $query="INSERT INTO pais (sigla_pais,desc_pais) VALUES('".$SiPais."','".$DesPais."')"; $result=mysqli_query($ligar,$query); echo"<html>"; echo"<head><title>Inserir Pais</title></head>"; echo"<body>"; if($result==1) { print "<script> alert('País inserido!'); location.href='InserirPais.html'; </script>"; exit; } else { print "<script> alert('ERRO::: País não inserido!'); location.href='InserirPais.html'; </script>"; exit; } echo"</body>"; echo"</html>"; ?> reclamacao.html <!DOCTYPE html> <html> <title>Acrescentar Cliente</title> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="css/w3.css"> <body class="w3-content" style="max-width:1920px"> <div class="w3-row"> <div class=" w3-light-blue w3-container w3-center" style="height:100%"> <div class="w3-padding-16"> <img src="Asset 1.png" alt="logo" style="width:10%"> </div> <div class="w3-container w3-light-blue w3-row w3-center"> <a href="AdicionarReclamacao.php" class="w3-container w3-light-blue w3-center w3-block w3-hover-blue-grey w3-padding-16" >Reclamações</a> </div> <div class="w3-container w3-row w3-light-blue"> <a href="Inserirfuncionario.html" class="w3-button w3-half w3-blue w3-block w3-hover-brown w3-padding-16">Funcionários</a> <a href="InserirLoja.html" class="w3-button w3-half w3-blue w3-block w3-hover-dark-grey w3-padding-16">Lojas</a> </div> <div class="w3-container w3-row w3-light-blue"> <a href="InserirPais.html" class="w3-button w3-half w3-blue w3-block w3-hover-dark-grey w3-padding-16">Inserir de País</a> <a href="Status.html" class="w3-button w3-blue w3-half w3-block w3-hover-dark-grey w3-padding-16">Status</a> </div> <footer class="w3-container w3-panel w3-black w3-padding-16 w3-center">@ Sistema de Reclamações da Robotics Automotive</footer> </body> </html> Status.html <html> <head> <meta charset="UTF-8"> <title>Status</title> <link rel="stylesheet" href="css/w3.css"> </head> <body class="w3-content w3-blue" style="max-width:1920px"> <h2 class="w3-margin w3-text-white">Selecione: </h2> <div class="w3-quarter w3-container w3-light-blue w3-margin w3-padding w3-center"> <p><a href="StatusUtilizadores.php">Estado de Utilizadores</a></p> </div> <div class="w3-quarter w3-container w3-light-blue w3-margin w3-padding w3-center "> <p><a href="StatusFuncionario.php">Estado de Funcionário</a></p> </div> <div class="w3-quarter w3-container w3-light-blue w3-margin w3-padding w3-center"> <p><a href="StatusCliente.php">Estado Cliente</a></p> </div> <div class="w3-quarter w3-container w3-light-blue w3-margin w3-padding w3-center"> <p><a href="StatusLoja.php">Estado Loja</a></p> </div> <div class="w3-quarter w3-container w3-light-blue w3-margin w3-padding w3-center"> <p><a href="StatusTemas.php">Estado Temas</a></p> </div> <div class="w3-quarter w3-container w3-light-blue w3-margin w3-padding w3-center"> <p><a href="StatussubTemas.php">Estado Subtemas</a></p> </div> </body> </html> StatusCliente.php <?php include "conexao.php"; ?> <html> <head> <title>Estado dos Clientes</title> <meta charset="UTF-8"> <link rel="stylesheet" href="css/w3.css"> </head> <body class="w3-content w3-light-blue" style="max-width:1920px"> <?php $permissao='1'; $query="SELECT COUNT(*) FROM cliente"; $conn=mysqli_query($ligar, $query); $result=mysqli_fetch_array($conn); $total=$result[0]; ?> <center><h1>Alterar o estado dos utilizadores</h1></center> <?php echo"<center><h4>Total de Clientes em sistema: $total</h4></center>"; ?> <hr style="height:2px; border-width:0 color:grey"> <?php $query2="SELECT * FROM cliente ORDER BY idLogin"; $conn2=mysqli_query($ligar, $query2); while($linha=$conn2->fetch_assoc()){ ?> <table width="550" border='0' align="center" cellspacing='0' cellpadding="2"> <form method="POST" action="alterar_estadoFunc.php"> <tr> <td>Id de Login</td> <td colspan="5"><?php echo $linha['idLogin'];?></td> </tr> <tr> <td>Nome do cliente</td> <td colspan="5"><?php echo $linha['nome_cliente'];?></td> </tr> <tr> <td>Email do cliente </td> <td colspan="5"><?php echo $linha['email_cliente'];?></td> </tr> <tr> <td>Contato do cliente </td> <td colspan="5"><?php echo $linha['contato_cliente'];?></td> </tr> <tr> <td>NIF do cliente </td> <td colspan="5"><?php echo $linha['NIF_cliente'];?></td> </tr> <tr> <td>Código Postal do cliente </td> <td colspan="5"><?php echo $linha['codpostal_cliente'];?></td> </tr> <tr> <td>Identificação do país</td> <td colspan="5"><?php echo $linha['id_pais'];?></td> </tr> <tr> <td>Permissão Atual</td> <td colspan="5"><?php if($linha['estado_cliente']==1) echo"Ativo"; else echo"Inativo"; ?></td> </tr> <tr> <td align="center" colspan="6"><br><h4>::::Elaborar Alterações::::</h4></td> </tr> <tr> <td> Mudar Permissão: </td> <td><input type="radio" name="permissao" value="1">Ativo</td> <td><input type="radio" name="permissao" value="0">Inativo</td> <td colspan='3'> <label> <input name="id" type="hidden" value="<?php echo $linha['idLogin'];?>"> </label> <label> <input name="submit" type="submit" value="Confirmar"> </label> </tr> </table> <hr style="height:2px; border-width:0 color:grey"> </form> <?php } ?> <br><br> </body> StatusFuncionario.php <?php include "conexao.php"; ?> <html> <head> <title>Estado de Funcionários</title> <meta charset="UTF-8"> <link rel="stylesheet" href="css/w3.css"> </head> <body class="w3-content w3-light-blue" style="max-width:1920px"> <?php $permissao='1'; $query="SELECT COUNT(*) FROM funcionario"; $conn=mysqli_query($ligar, $query); $result=mysqli_fetch_array($conn); $total=$result[0]; ?> <center><h1>Alterar o estado de utilizador</h1></center> <?php echo"<center><h4>Total de Funcionários em sistema: $total</h4></center>"; ?> <hr style="height:2px; border-width:0 color:grey"> <?php $query2="SELECT * FROM funcionario ORDER BY idLogin"; $conn2=mysqli_query($ligar, $query2); while($linha=$conn2->fetch_assoc()){ ?> <table width="550" border='0' align="center" cellspacing='0' cellpadding="2"> <form method="POST" action="alterar_estadoUtil.php"> <tr> <td>Id de Login </td> <td colspan="5"><?php echo $linha['idLogin'];?></td> </tr> <tr> <td>Id de Loja </td> <td colspan="5"><?php echo $linha['id_loja'];?></td> </tr> <tr> <td>Nome do Funcionário</td> <td colspan="5"><?php echo $linha['nome_func'];?></td> </tr> <tr> <td>Permissão Atual</td> <td colspan="5"><?php if($linha['ativo_func']==1) echo"Ativo"; else echo"Inativo"; ?></td> </tr> <tr> <td align="center" colspan="6"><br><h4>::::Elaborar Alterações::::</h4></td> </tr> <tr> <td> Mudar Permissão: </td> <td><input type="radio" name="permissao" value="1">Ativo</td> <td><input type="radio" name="permissao" value="0">Inativo</td> <td colspan='3'> <label> <input name="id" type="hidden" value="<?php echo $linha['idLogin'];?>"> </label> <label> <input name="submit" type="submit" value="Confirmar"> </label> </tr> </table> <hr style="height:2px; border-width:0 color:grey"> </form> <?php } ?> <br><br> </body> StatusLoja.php <?php include "conexao.php"; ?> <html> <head> <title>Estado das Lojas</title> <meta charset="UTF-8"> <link rel="stylesheet" href="css/w3.css"> </head> <body class="w3-content w3-light-blue" style="max-width:1920px"> <?php $permissao='1'; $query="SELECT COUNT(*) FROM loja"; $conn=mysqli_query($ligar, $query); $result=mysqli_fetch_array($conn); $total=$result[0]; ?> <center><h1>Alterar o estado dos funcionários</h1></center> <?php echo"<center><h4>Total de lojas em sistema: $total</h4></center>"; ?> <hr style="height:2px; border-width:0 color:grey"> <?php $query2="SELECT * FROM loja ORDER BY id_loja"; $conn2=mysqli_query($ligar, $query2); while($linha=$conn2->fetch_assoc()){ ?> <table width="550" border='0' align="center" cellspacing='0' cellpadding="2"> <form method="POST" action="alterar_estadoFunc.php"> <tr> <td>Descrição da Loja</td> <td colspan="5"><?php echo $linha['desc_loja'];?></td> </tr> <tr> <td>Localizaçáo da Loja</td> <td colspan="5"><?php echo $linha['localizacao_loja'];?></td> </tr> <tr> <td>Contato da loja</td> <td colspan="5"><?php echo $linha['contato_loja'];?></td> </tr> <td>Permissão Atual</td> <td colspan="5"><?php if($linha['estado_loja']==1) echo"Ativo"; else echo"Inativo"; ?></td> </tr> <tr> <td align="center" colspan="6"><br><h4>::::Elaborar Alterações::::</h4></td> </tr> <tr> <td> Mudar Permissão: </td> <td><input type="radio" name="permissao" value="1">Ativo</td> <td><input type="radio" name="permissao" value="0">Inativo</td> <td colspan='3'> <label> <input name="id" type="hidden" value="<?php echo $linha['id_loja'];?>"> </label> <label> <input name="submit" type="submit" value="Confirmar"> </label> </tr> </table> <hr style="height:2px; border-width:0 color:grey"> </form> <?php } ?> <br><br> </body> StatussubTemas.php <?php include "conexao.php"; ?> <html> <head> <title>Estado dos Subtemas</title> <meta charset="UTF-8"> <link rel="stylesheet" href="css/w3.css"> </head> <body class="w3-content w3-light-blue" style="max-width:1920px"> <?php $permissao='1'; $query="SELECT COUNT(*) FROM subtema_reclamacao"; $conn=mysqli_query($ligar, $query); $result=mysqli_fetch_array($conn); $total=$result[0]; ?> <center><h1>Alterar o estado dos Temas</h1></center> <?php echo"<center><h4>Total de subtemas em sistema: $total</h4></center>"; ?> <hr style="height:2px; border-width:0 color:grey"> <?php $query2="SELECT * FROM subtema_reclamacao ORDER BY id_tema"; $conn2=mysqli_query($ligar, $query2); while($linha=$conn2->fetch_assoc()){ ?> <table width="550" border='0' align="center" cellspacing='0' cellpadding="2"> <form method="POST" action="alterar_estadotemas.php"> <tr> <td>Id do tema</td> <td colspan="5"><?php echo $linha['id_tema'];?></td> </tr> <tr> <td>Descriçáo do subtema</td> <td colspan="5"><?php echo $linha['desc_subtema'];?></td> </tr> <td>Permissão Atual</td> <td colspan="5"><?php if($linha['ativo_subtema']==1) echo"Ativo"; else echo"Inativo"; ?></td> </tr> <tr> <td align="center" colspan="6"><br><h4>::::Elaborar Alterações::::</h4></td> </tr> <tr> <td> Mudar Permissão: </td> <td><input type="radio" name="permissao" value="1">Ativo</td> <td><input type="radio" name="permissao" value="0">Inativo</td> <td colspan='3'> <label> <input name="id" type="hidden" value="<?php echo $linha['ativo_subtema'];?>"> </label> <label> <input name="submit" type="submit" value="Confirmar"> </label> </tr> </table> <hr style="height:2px; border-width:0 color:grey"> </form> <?php } ?> <br><br> </body> StatusTemas.php <?php include "conexao.php"; ?> <html> <head> <title>Estado dos Temas</title> <meta charset="UTF-8"> <link rel="stylesheet" href="css/w3.css"> </head> <body class="w3-content w3-light-blue" style="max-width:1920px"> <?php $permissao='1'; $query="SELECT COUNT(*) FROM temas_reclamacao"; $conn=mysqli_query($ligar, $query); $result=mysqli_fetch_array($conn); $total=$result[0]; ?> <center><h1>Alterar o estado dos Subtemas</h1></center> <?php echo"<center><h4>Total de reclamaçóes em sistema: $total</h4></center>"; ?> <hr style="height:2px; border-width:0 color:grey"> <?php $query2="SELECT * FROM temas_reclamacao ORDER BY id_tema"; $conn2=mysqli_query($ligar, $query2); while($linha=$conn2->fetch_assoc()){ ?> <table width="550" border='0' align="center" cellspacing='0' cellpadding="2"> <form method="POST" action="alterar_estadoSubtemas.php"> <tr> <td>Descrição do tema</td> <td colspan="5"><?php echo $linha['des_tema'];?></td> </tr> <td>Permissão Atual</td> <td colspan="5"><?php if($linha['ativo_tema']==1) echo"Ativo"; else echo"Inativo"; ?></td> </tr> <tr> <td align="center" colspan="6"><br><h4>::::Elaborar Alterações::::</h4></td> </tr> <tr> <td> Mudar Permissão: </td> <td><input type="radio" name="permissao" value="1">Ativo</td> <td><input type="radio" name="permissao" value="0">Inativo</td> <td colspan='3'> <label> <input name="id" type="hidden" value="<?php echo $linha['ativo_tema'];?>"> </label> <label> <input name="submit" type="submit" value="Confirmar"> </label> </tr> </table> <hr style="height:2px; border-width:0 color:grey"> </form> <?php } ?> <br><br> </body> StatusUtilizadores.php <?php include "conexao.php"; ?> <html> <head> <title>Estado de Utilizadores</title> <meta charset="UTF-8"> <link rel="stylesheet" href="css/w3.css"> </head> <body class="w3-content w3-light-blue" style="max-width:1920px"> <?php $permissao='1'; $query="SELECT COUNT(*) FROM utilizadores"; $conn=mysqli_query($ligar, $query); $result=mysqli_fetch_array($conn); $total=$result[0]; ?> <center><h1>Alterar o estado de Funcionário</h1></center> <?php echo"<center><h4>Total de utilizadores em sistema: $total</h4></center>"; ?> <hr style="height:2px; border-width:0 color:grey"> <?php $query2="SELECT * FROM utilizadores ORDER BY idLogin"; $conn2=mysqli_query($ligar, $query2); while($linha=$conn2->fetch_assoc()){ ?> <table width="550" border='0' align="center" cellspacing='0' cellpadding="2"> <form method="POST" action="alterar_estadoFunc.php"> <tr> <td>Id de Login </td> <td colspan="5"><?php echo $linha['idLogin'];?></td> </tr> <tr> <td>Login </td> <td colspan="5"><?php echo $linha['login'];?></td> </tr> <tr> <td>Permissão Atual</td> <td colspan="5"><?php if($linha['status']==1) echo"Ativo"; else echo"Inativo"; ?></td> </tr> <tr> <td align="center" colspan="6"><br><h4>::::Elaborar Alterações::::</h4></td> </tr> <tr> <td> Mudar Permissão: </td> <td><input type="radio" name="permissao" value="1">Ativo</td> <td><input type="radio" name="permissao" value="0">Inativo</td> <td colspan='3'> <label> <input name="id" type="hidden" value="<?php echo $linha['idLogin'];?>"> </label> <label> <input name="submit" type="submit" value="Confirmar"> </label> </tr> </table> <hr style="height:2px; border-width:0 color:grey"> </form> <?php } ?> <br><br> </body> subtemas_post.php <?php include('conexao.php'); $id_tema=$_REQUEST['id_tema']; //$id_tema='1'; $result_subtema = "SELECT * FROM subtema_reclamacao WHERE id_tema=$id_tema ORDER BY desc_subtema"; $result=mysqli_query($ligar,$result_subtema); While($row_subtema = mysqli_fetch_assoc($result)){ $subtemas_post[]=array( 'id' => $row_subtema['id_subtema_reclam'], 'nome_subtema' => utf8_encode($row_subtema['desc_subtema']), ); } echo(json_encode($subtemas_post)); ?> AdicionarReclaBD.php <?php include('conexao.php'); $CodCliente=$_POST['id_cliente']; $CodTema=$_POST['id_tema']; $CodSubTema=$_POST['id_subtema_reclam,']; $Reclamacao=$_POST['obs_assunto_reclam']; $query="INSERT INTO reclamacao(id_cliente,id_tema,id_subtema_reclam,obs_assunto_reclam,estado_reclam) VALUES('".$CodCliente."','".$CodTema."','".$CodSubTema."','".$Reclamacao."','1')"; $result=mysqli_query($ligar,$query); echo"<html>"; echo"<head><title>Adicionar Reclamação</title></head>"; echo"<body>"; if($result==1){ print "<script> alert('Reclamação inserida com sucesso!'); location.href='IntraOffice.html'; </script>"; exit;} else { print "<script> alert('Ocorreu um erro a inserir a reclamação!'); location.href='IntraOffice.html'; </script>"; exit;} echo"</body>"; echo"</html>"; ?> AdicionarReclamacao.php <?php include 'conexao.php'; ?> <html> <head> <meta charset="UTF-8"> <title>Inserir Reclamação</title> <style type="text/css"> textarea { border:1px solid #999999; width:100%; margin:5px 0; padding:3px; height: 100px } </style> <link rel="stylesheet" href="css/w3.css"> <script src="https://code.jquery.com/jquery-3.5.0.js"></script> <script language=javascript type="text/javascript"> dayName = new Array ("domingo", "segunda", "terça", "quarta", "quinta", "sexta", "sábado") monName = new Array ("janeiro", "fevereiro", "março", "abril", "maio", "junho", "agosto", "outubro", "novembro", "dezembro") now = new Date </script> </head> <body> <div class="img-fundo"> <div class=" w3-light-blue w3-container" style="height:100%"> <form enctype="multipart/form-data" method="POST" action="AdicionarReclaBD.php"> <div class="w3-center w3-border-bottom w3-blue w3-text-white"> <script language=javascript type="text/javascript"> document.write ("<h4>" + dayName[now.getDay() ] + ", " + now.getDate () + " de " + monName [now.getMonth() ] + " de " + now.getFullYear () + " </h4>") </script> <p> Hora atual: <a id='real-clock'>A carregar hora atual... </a></p> <h1>Inserir Reclamação</h1> </div> <div class="w3-panel w3-light-blue"> <p>Código de Cliente: <select name='id_cliente' id='id_cliente' style="width:350px;"> <option value="">Selecione...</option> <?php $result_cliente="SELECT id_cliente, NIF_cliente, nome_cliente FROM cliente WHERE estado_cliente='1'"; $result=mysqli_query($ligar,$result_cliente); While($row_cliente = mysqli_fetch_assoc($result)){ echo '<option value="'.$row_cliente['id_cliente'].'">'.$row_cliente['NIF_cliente'].' | '.$row_cliente['nome_cliente'].'</option>'; } ?> <p> </p> </select> </p> </div> <div class="w3-half w3-padding-32 w3-light-blue"> <div class="w3-margin"> <p class="w3-black w3-center">Tema:</p> <label>Selecione um tema</label> <select name='id_tema' id='id_tema' style="width:350px;"> <option value="">Selecione...</option> <?php $result_tema="SELECT id_tema, des_tema FROM temas_reclamacao WHERE ativo_tema='1'"; $result=mysqli_query($ligar,$result_tema); While($row_tema = mysqli_fetch_assoc($result)){ echo '<option value="'.$row_tema['id_tema'].'">'.$row_tema['des_tema'].'</option>'; } ?> <p> </p> </select> <br><br> </div> </div> <div class="w3-half w3-padding-32 w3-light-blue"> <div class="w3-margin"> <p class="w3-black w3-center">SubTema:</p> <label>Selecione um subtema</label> <select name='id_subtema' id="id_subtema" style="width:350px;"> <option value="">Primeiro escolha um tema!</option> </select> <span class="Carregar" align="right" hidden>A carregar...</span> </div> </div> <div class="container w3-padding-64 w3-panel w3-light-blue"> <p class="w3-black w3-center">Texto da Reclamação:</p> <p> <label class="textareaContainer"> <textarea name="obs_assunto_reclam" width="100%" onfocus="this.value='';">Insira aqui a sua reclamação</textarea></p> </label> </div> <div class="w3-panel"> <input class="w3-btn w3-third w3-sand" type="submit" value="Registar Reclamação"> <a class="w3-btn w3-third w3-gray"> </a> <a class="w3-btn w3-third w3-sand" href="IntraOffice.html" target="_blank">Voltar</a> </div> </form> </div> </div> <script type="text/javascript"> $(function(){ $('#id_tema').change(function() { if($(this).val() ){ $('#id_subtema_reclam').hide(); //alterei para id_subtema_reclam como na base de dados $('#id_subtema_reclam').show(); $.getJSON('subtemas_post.php?search=',{id_tema: $(this).val(), ajax:'true'}, function(j){ var options='<option value="">Escolha um subtema</option>'; for (var i=0; i < j.length; i++){ options += '<option value="' + j[i].id + '">' + j[i].nome_subtema + '</option>'; } $('#id_subtema_reclam').html(options).show(); $('.Carregar').hide(); }); } else { $('#id_subtema_reclam').html('<option value="">- Selecione primeiro um tema -</option>'); } }); }); var clock = document.getElementById('real-clock'); setInterval(function () { clock.innerHTML = ((new Date).toLocaleString().substr(12, 8)); }, 1000); </script> </body> </html> alterar_estadoFunc.php <?php include "conexao.php"; $id=$_POST['id']; $permissao=$_POST['permissao']; if($permissao==NULL){ print "<script> alert('Não inseriu os campos!'); history.back(-1);</script>"; exit; } else { $query = "UPDATE utilizadores SET status='$permissao' WHERE idLogin='$id'"; $conn=mysqli_query($ligar, $query); if($conn) { print "<script> alert('Confirmacão Feita!'); location.href='StatusUtilizadores.php'; </script>"; exit; } else { print "<script> alert(' Não foi possivel fazer a atualização da permissão!'); </script>"; exit; }} ?> alterar_estadoSubtemas.php <?php include "conexao.php"; $id=$_POST['id']; $permissao=$_POST['permissao']; if($permissao==NULL){ print "<script> alert('Não inseriu os campos!'); history.back(-1);</script>"; exit; } else { $query = "UPDATE funcionario SET ativo_func='$permissao' WHERE idLogin='$id'"; $conn=mysqli_query($ligar, $query); if($conn) { print "<script> alert('Confirmacão Feita!'); location.href='StatusTemas.php'; </script>"; exit; } else { print "<script> alert(' Não foi possivel fazer a atualização da permissão!'); </script>"; exit; }} ?> alterar_estadotemas.php <?php include "conexao.php"; $id=$_POST['id']; $permissao=$_POST['permissao']; if($permissao==NULL){ print "<script> alert('Não inseriu os campos!'); history.back(-1);</script>"; exit; } else { $query = "UPDATE funcionario SET ativo_func='$permissao' WHERE idLogin='$id'"; $conn=mysqli_query($ligar, $query); if($conn) { print "<script> alert('Confirmacão Feita!'); location.href='StatussubTemas.php'; </script>"; exit; } else { print "<script> alert(' Não foi possivel fazer a atualização da permissão!'); </script>"; exit; }} ?> alterar_estadoUtil.php <?php include "conexao.php"; $id=$_POST['id']; $permissao=$_POST['permissao']; if($permissao==NULL){ print "<script> alert('Não inseriu os campos!'); history.back(-1);</script>"; exit; } else { $query = "UPDATE funcionario SET ativo_func='$permissao' WHERE idLogin='$id'"; $conn=mysqli_query($ligar, $query); if($conn) { print "<script> alert('Confirmacão Feita!'); location.href='StatusUtilizadores.php'; </script>"; exit; } else { print "<script> alert(' Não foi possivel fazer a atualização da permissão!'); </script>"; exit; }} ?> conexao.php <?php $host='localhost'; //local do servidor $user='root'; //nome do utilizador $pwd=''; //senha ou password $db='gestaoreclamacoes'; //nome da base de dados $ligar=mysqli_connect($host,$user,$pwd) or die("Ligação ao servidor incorrecta!"); //liga ao servidor ou se estiver incorreta a ligação não vai para o servidor mysqli_select_db($ligar,$db); //Liga ao servidor primeiro e dentro deste seleciona a base de dados ?> FuncionarioBD.php <?php include('conexao.php'); $nomeFunc=$_POST["nome_func"]; $idLoja=$_POST["id_loja"]; $login=$_POST["login"]; $pass=$_POST["pass"]; $confpass=$_POST["confpass"]; if(($nomeFunc=="")||($idLoja=="")||($login=="")||($pass=="")||($confpass=="")){ print "<script> alert('Não inseriu os dados todos!'); location.href='inserirfuncionario.php'; </script>"; exit; } else{ if($pass!=$confpass){ print "<script> alert('Passwords não sÃo coincidentes!'); history.back(-1);</script>"; exit; }else { $validarLogin="SELECT * FROM utilizadores WHERE login='".$login."'"; $result1=mysqli_query($ligar,$validarLogin); $linhas=mysqli_num_rows($result1); if($linhas>0){ print "<script> alert('Este login já¡ existe. Insira um novo!'); history.back(-1); </script>"; exit; } else { $query_util="INSERT INTO utilizadores(login, pass,status) VALUES('".$login."','".$pass."','1')"; $result_util=mysqli_query($ligar,$query_util); if($result_util==0){ print "<script> alert('ERRO::: OCORREU UM ERRO AO INSERIR UTILIZADOR!'); history.back(-1);</script>"; exit; } else{ $query_idUtil="SELECT * FROM utilizadores WHERE login='".$login."'"; $result_idUtil=mysqli_query($ligar,$query_idUtil); $result_id=mysqli_fetch_assoc($result_idUtil); $idLogin=$result_id['idLogin']; $query_func="INSERT INTO funcionario(nome_func, id_loja, ativo_func,idLogin) VALUES('".$nomeFunc."','".$idLoja."','1','".$idLogin."')"; $result_idFunc=mysqli_query($ligar,$query_func); if($result_idFunc==1){ print "<script> alert('Funcionário Inserido com Sucesso!'); history.back(-1);</script>"; exit; }else{ print "<script> alert('ERRO::: Não foi possível inserir o Funcionário!'); history.back(-1);</script>"; exit; } }}}} ?> inserirfuncionario.php <html> <head> <link rel="stysheet" href="css/w3.css"> <meta charset="UTF-8"> <title> Inserir Funcionário</Title> </head> <body class="w3-container w3-cyan" style="max-width:1920px"> <h1 class="w3-center">Inserir Funcionário</h1> <hr> <br> <form enctype="multipart/form-data" method="POST" action="FuncionarioBD.php"> <div> <h2 class="w3-text-white">Nome Funcionário</h2> <input type="text" name="nome_func" size="30"> <br> </div> <div> <h2>Código da Loja</h2> <?php require 'conexao.php'; $query="SELECT id_loja, desc_loja FROM loja WHERE estado_loja='1'"; $result=mysqli_query($ligar, $query); ?> <select name="id_loja" id="id_loja"> <option>Selecione...</option> <?php while($dados=mysqli_fetch_array($result)){ ?> <option value="<?php echo $dados['id_loja']?>"><?php echo $dados['desc_loja']?></option> <?php } ?> </select> </div> <br> <div class="w3-row w3-container w3-blue"> <h1 class="w3-text-white">Dados de entrada no sistema:</h1> </div> <br> <div class="w3-row w3-container w3-blue"> <h2 class="w3-text-white">Nome de Login</h2> <input name="login" type="text" id="login" size="30"> </div> <br> <div class="w3-row w3-container w3-blue"> <h2 class="w3-text-white">Password</h2> <input type="password" name="pass" id="pass"> </div> <br> <div class="w3-row w3-container w3-blue"> <h2 class="w3-text-white">Confirmar Password</h2> <input type="password" name="confpass" id="confpass"> <br> <input class="w3-btn w3-half w3-pale-blue" type="submit" value="Registar Funcionário"> <a class="w3-btn w3-half w3-pale-blue" href="IntraOffice.html">Voltar ao Início</a> </div> </form> </body> </html> Olá boa tarde a todos, sou iniciante na área Multimédia, mas estou a ter dificuldades com o código, em cima, com a ativação/desativação dos códigos StatusCliente.php, StatusLoja.php, StatusTemas.php e StatussubTemas.php,pelo não me está a dar para ativar/desativar o estado? Deste modo, agradecia imenso a qualquer um de vós que seja participante no forúmm que me ajude a resolver este problema. Em baixo, envio o código correspondente à base de dados: - phpMyAdmin SQL Dump -- version 5.0.2 -- https://www.phpmyadmin.net/ -- -- Host: 127.0.0.1 -- Tempo de geração: 10-Ago-2020 às 19:17 -- Versão do servidor: 10.4.11-MariaDB -- versão do PHP: 7.4.5 SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; START TRANSACTION; SET time_zone = "+00:00"; /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8mb4 */; -- -- Banco de dados: `gestaoreclamacoes` -- -- -------------------------------------------------------- -- -- Estrutura da tabela `cliente` -- CREATE TABLE `cliente` ( `id_cliente` int(5) NOT NULL, `nome_cliente` text NOT NULL, `email_cliente` varchar(125) NOT NULL, `contato_cliente` varchar(14) NOT NULL, `NIF_cliente` int(15) NOT NULL, `morada_cliente` varchar(175) NOT NULL, `localidade_cliente` text NOT NULL, `codpostal_cliente` varchar(15) NOT NULL, `id_pais` int(4) NOT NULL, `obs_cliente` varchar(250) DEFAULT NULL, `estado_cliente` tinyint(1) NOT NULL, `idLogin` int(11) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- -- Extraindo dados da tabela `cliente` -- INSERT INTO `cliente` (`id_cliente`, `nome_cliente`, `email_cliente`, `contato_cliente`, `NIF_cliente`, `morada_cliente`, `localidade_cliente`, `codpostal_cliente`, `id_pais`, `obs_cliente`, `estado_cliente`, `idLogin`) VALUES (1, 'Francisco', 'fgararaujo@gmail.com', '96788889', 234555899, 'Rua da Direita', 'Lourinhã', '6789-099', 1, 'cliente pouco fiável', 0, 1), (2, 'Gustavo', 'gustavovieira@gmail.com', '967678700', 256575777, 'Rua dos Jogos', 'Cruz Quebrada', '3890-090', 1, 'pouco fiável', 1, 2); -- -------------------------------------------------------- -- -- Estrutura da tabela `funcionario` -- CREATE TABLE `funcionario` ( `id_func` int(11) NOT NULL, `nome_func` text NOT NULL, `id_loja` int(11) NOT NULL, `ativo_func` tinyint(4) NOT NULL, `idLogin` int(11) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- -- Extraindo dados da tabela `funcionario` -- INSERT INTO `funcionario` (`id_func`, `nome_func`, `id_loja`, `ativo_func`, `idLogin`) VALUES (1, 'Fernando Castro', 1, 0, 1), (2, 'Nelson Cardoso', 3, 0, 2), (30, 'Fernando Castro', 1, 0, 1), (35, 'Luís Damião', 3, 0, 2), (36, 'Nelson Carrasco', 4, 0, 1), (38, 'Luis Cholipa', 4, 0, 2), (39, 'José Paquistão', 3, 0, 2), (40, 'Gustavo Fonseca', 4, 0, 2), (41, 'Gustavo Gusmão', 3, 0, 1), (45, 'João Chicória', 2, 1, 6), (46, 'Miguel Chicória', 2, 0, 7); -- -------------------------------------------------------- -- -- Estrutura da tabela `loja` -- CREATE TABLE `loja` ( `id_loja` int(11) NOT NULL, `desc_loja` varchar(75) NOT NULL, `localizacao_loja` varchar(75) NOT NULL, `estado_loja` tinyint(4) NOT NULL, `contato_loja` varchar(14) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- -- Extraindo dados da tabela `loja` -- INSERT INTO `loja` (`id_loja`, `desc_loja`, `localizacao_loja`, `estado_loja`, `contato_loja`) VALUES (1, 'Airbags', 'Santarém', 0, '287676767686'), (2, 'Produção de Vidros', 'Viana do Castelo', 1, '25888809090'), (3, 'Paineis Interiores', 'Alcaçovas', 1, '27878787878'), (4, 'Moldes e Ferramentas', 'Macedo de Cavaleiros', 0, '2367676767676'), (350, '2', 'Castelo Branco', 0, '90909'); -- -------------------------------------------------------- -- -- Estrutura da tabela `mensagem_reclamacao` -- CREATE TABLE `mensagem_reclamacao` ( `id_msg_recl` int(6) NOT NULL, `id_reclam` int(11) NOT NULL, `dataHora_msg_recla` timestamp NOT NULL DEFAULT current_timestamp(), `msg_reclam` varchar(500) NOT NULL, `id_func` int(11) NOT NULL, `entidade` text NOT NULL, `anexo` varchar(300) NOT NULL, `estado_msg_recim` tinyint(4) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- -- Extraindo dados da tabela `mensagem_reclamacao` -- INSERT INTO `mensagem_reclamacao` (`id_msg_recl`, `id_reclam`, `dataHora_msg_recla`, `msg_reclam`, `id_func`, `entidade`, `anexo`, `estado_msg_recim`) VALUES (1, 1, '2020-06-07 19:32:56', 'Falta o pagamento da carroçaria dos automóveis', 2, 'TechnoCorporation', 'anexar documento', 1), (102, 1, '2019-07-09 19:35:15', 'Defeitos/anomalias nos Airbags, tem que ser devolvidos.', 1, 'SolutionsAutoBags', 'Anexar ficheiro', 0); -- -------------------------------------------------------- -- -- Estrutura da tabela `pais` -- CREATE TABLE `pais` ( `id_pais` int(4) NOT NULL, `sigla_pais` text NOT NULL, `desc_pais` text NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- -- Extraindo dados da tabela `pais` -- INSERT INTO `pais` (`id_pais`, `sigla_pais`, `desc_pais`) VALUES (1, 'pt', 'Portugal'), (2, 'en', 'Inglaterra'), (9, 'Af', 'Afeganistão'), (10, 'bl', 'Bélgica'), (12, 'A', 'Andorra'), (45, 'FR', 'França'), (78, 'PK', 'Paquistão'), (89, 'sl', 'Eslovénia'); -- -------------------------------------------------------- -- -- Estrutura da tabela `reclamacao` -- CREATE TABLE `reclamacao` ( `id_reclam` int(4) NOT NULL, `id_cliente` int(11) NOT NULL, `dataHora_reclam` date NOT NULL DEFAULT current_timestamp(), `id_tema` int(11) NOT NULL, `obs_assunto_reclam` varchar(100) NOT NULL, `estado_reclam` tinyint(4) NOT NULL, `id_subtema_reclam` int(11) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- -- Extraindo dados da tabela `reclamacao` -- INSERT INTO `reclamacao` (`id_reclam`, `id_cliente`, `dataHora_reclam`, `id_tema`, `obs_assunto_reclam`, `estado_reclam`, `id_subtema_reclam`) VALUES (1, 1, '2020-07-12', 1, 'Produto com defeitos', 0, 1), (2, 2, '2020-07-05', 2, 'Atraso no pagamento dos fornecedores', 1, 2); -- -------------------------------------------------------- -- -- Estrutura da tabela `subtema_reclamacao` -- CREATE TABLE `subtema_reclamacao` ( `id_subtema_reclam` int(4) NOT NULL, `id_tema` int(11) NOT NULL, `desc_subtema` varchar(100) NOT NULL, `ativo_subtema` tinyint(4) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- -- Extraindo dados da tabela `subtema_reclamacao` -- INSERT INTO `subtema_reclamacao` (`id_subtema_reclam`, `id_tema`, `desc_subtema`, `ativo_subtema`) VALUES (1, 1, 'Defeitos', 1), (2, 2, 'Devoluções', 0); -- -------------------------------------------------------- -- -- Estrutura da tabela `temas_reclamacao` -- CREATE TABLE `temas_reclamacao` ( `id_tema` int(4) NOT NULL, `des_tema` varchar(50) NOT NULL, `ativo_tema` tinyint(4) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- -- Extraindo dados da tabela `temas_reclamacao` -- INSERT INTO `temas_reclamacao` (`id_tema`, `des_tema`, `ativo_tema`) VALUES (1, 'Produtos', 1), (2, 'Compras', 0); -- -------------------------------------------------------- -- -- Estrutura da tabela `utilizadores` -- CREATE TABLE `utilizadores` ( `login` varchar(20) NOT NULL, `pass` varchar(20) NOT NULL, `status` tinyint(4) NOT NULL, `idLogin` int(11) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- -- Extraindo dados da tabela `utilizadores` -- INSERT INTO `utilizadores` (`login`, `pass`, `status`, `idLogin`) VALUES ('Fcorreia', '567', 0, 1), ('Cfaria', '908', 0, 2), ('Joao6789', 'joao', 0, 6), ('miguel6789', '899', 1, 7), ('vcunha', '890', 0, 13), ('T456', '456', 1, 14); -- -- Índices para tabelas despejadas -- -- -- Índices para tabela `cliente` -- ALTER TABLE `cliente` ADD PRIMARY KEY (`id_cliente`), ADD UNIQUE KEY `NIF_cliente` (`NIF_cliente`), ADD KEY `idpais` (`id_pais`), ADD KEY `idLogin` (`idLogin`); -- -- Índices para tabela `funcionario` -- ALTER TABLE `funcionario` ADD PRIMARY KEY (`id_func`), ADD KEY `id_loja` (`id_loja`), ADD KEY `idLogin` (`idLogin`); -- -- Índices para tabela `loja` -- ALTER TABLE `loja` ADD PRIMARY KEY (`id_loja`); -- -- Índices para tabela `mensagem_reclamacao` -- ALTER TABLE `mensagem_reclamacao` ADD PRIMARY KEY (`id_msg_recl`), ADD KEY `id_func` (`id_func`), ADD KEY `id_reclam` (`id_reclam`); -- -- Índices para tabela `pais` -- ALTER TABLE `pais` ADD PRIMARY KEY (`id_pais`); -- -- Índices para tabela `reclamacao` -- ALTER TABLE `reclamacao` ADD PRIMARY KEY (`id_reclam`), ADD KEY `id_cliente` (`id_cliente`,`id_tema`), ADD KEY `id_tema` (`id_tema`); -- -- Índices para tabela `subtema_reclamacao` -- ALTER TABLE `subtema_reclamacao` ADD PRIMARY KEY (`id_subtema_reclam`), ADD KEY `id_tema` (`id_tema`); -- -- Índices para tabela `temas_reclamacao` -- ALTER TABLE `temas_reclamacao` ADD PRIMARY KEY (`id_tema`); -- -- Índices para tabela `utilizadores` -- ALTER TABLE `utilizadores` ADD PRIMARY KEY (`idLogin`), ADD UNIQUE KEY `login` (`login`); -- -- AUTO_INCREMENT de tabelas despejadas -- -- -- AUTO_INCREMENT de tabela `cliente` -- ALTER TABLE `cliente` MODIFY `id_cliente` int(5) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=17; -- -- AUTO_INCREMENT de tabela `funcionario` -- ALTER TABLE `funcionario` MODIFY `id_func` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=55; -- -- AUTO_INCREMENT de tabela `loja` -- ALTER TABLE `loja` MODIFY `id_loja` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=351; -- -- AUTO_INCREMENT de tabela `mensagem_reclamacao` -- ALTER TABLE `mensagem_reclamacao` MODIFY `id_msg_recl` int(6) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=103; -- -- AUTO_INCREMENT de tabela `pais` -- ALTER TABLE `pais` MODIFY `id_pais` int(4) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=90; -- -- AUTO_INCREMENT de tabela `reclamacao` -- ALTER TABLE `reclamacao` MODIFY `id_reclam` int(4) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=827; -- -- AUTO_INCREMENT de tabela `subtema_reclamacao` -- ALTER TABLE `subtema_reclamacao` MODIFY `id_subtema_reclam` int(4) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3; -- -- AUTO_INCREMENT de tabela `temas_reclamacao` -- ALTER TABLE `temas_reclamacao` MODIFY `id_tema` int(4) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3; -- -- AUTO_INCREMENT de tabela `utilizadores` -- ALTER TABLE `utilizadores` MODIFY `idLogin` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=16; -- -- Restrições para despejos de tabelas -- -- -- Limitadores para a tabela `cliente` -- ALTER TABLE `cliente` ADD CONSTRAINT `cliente_ibfk_1` FOREIGN KEY (`id_pais`) REFERENCES `pais` (`id_pais`) ON DELETE CASCADE ON UPDATE CASCADE, ADD CONSTRAINT `cliente_ibfk_2` FOREIGN KEY (`idLogin`) REFERENCES `utilizadores` (`idLogin`) ON DELETE CASCADE ON UPDATE CASCADE; -- -- Limitadores para a tabela `funcionario` -- ALTER TABLE `funcionario` ADD CONSTRAINT `funcionario_ibfk_1` FOREIGN KEY (`id_loja`) REFERENCES `loja` (`id_loja`) ON DELETE CASCADE ON UPDATE CASCADE, ADD CONSTRAINT `funcionario_ibfk_2` FOREIGN KEY (`idLogin`) REFERENCES `utilizadores` (`idLogin`) ON DELETE CASCADE ON UPDATE CASCADE; -- -- Limitadores para a tabela `mensagem_reclamacao` -- ALTER TABLE `mensagem_reclamacao` ADD CONSTRAINT `mensagem_reclamacao_ibfk_1` FOREIGN KEY (`id_func`) REFERENCES `funcionario` (`id_func`) ON DELETE CASCADE ON UPDATE CASCADE, ADD CONSTRAINT `mensagem_reclamacao_ibfk_2` FOREIGN KEY (`id_reclam`) REFERENCES `reclamacao` (`id_reclam`) ON DELETE CASCADE ON UPDATE CASCADE; -- -- Limitadores para a tabela `reclamacao` -- ALTER TABLE `reclamacao` ADD CONSTRAINT `reclamacao_ibfk_1` FOREIGN KEY (`id_cliente`) REFERENCES `cliente` (`id_cliente`) ON DELETE CASCADE ON UPDATE CASCADE, ADD CONSTRAINT `reclamacao_ibfk_2` FOREIGN KEY (`id_tema`) REFERENCES `temas_reclamacao` (`id_tema`) ON DELETE CASCADE ON UPDATE CASCADE; -- -- Limitadores para a tabela `subtema_reclamacao` -- ALTER TABLE `subtema_reclamacao` ADD CONSTRAINT `subtema_reclamacao_ibfk_1` FOREIGN KEY (`id_tema`) REFERENCES `temas_reclamacao` (`id_tema`) ON DELETE CASCADE ON UPDATE CASCADE; COMMIT; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; <?php /** * Export to PHP Array plugin for PHPMyAdmin * @version 5.0.2 */ /** * Database `gestaoreclamacoes` */ /* `gestaoreclamacoes`.`cliente` */ $cliente = array( array('id_cliente' => '1','nome_cliente' => 'Francisco','email_cliente' => 'fgararaujo@gmail.com','contato_cliente' => '96788889','NIF_cliente' => '234555899','morada_cliente' => 'Rua da Direita','localidade_cliente' => 'Lourinhã','codpostal_cliente' => '6789-099','id_pais' => '1','obs_cliente' => 'cliente pouco fiável','estado_cliente' => '0','idLogin' => '1'), array('id_cliente' => '2','nome_cliente' => 'Gustavo','email_cliente' => 'gustavovieira@gmail.com','contato_cliente' => '967678700','NIF_cliente' => '256575777','morada_cliente' => 'Rua dos Jogos','localidade_cliente' => 'Cruz Quebrada','codpostal_cliente' => '3890-090','id_pais' => '1','obs_cliente' => 'pouco fiável','estado_cliente' => '1','idLogin' => '2') ); /* `gestaoreclamacoes`.`funcionario` */ $funcionario = array( array('id_func' => '1','nome_func' => 'Fernando Castro','id_loja' => '1','ativo_func' => '0','idLogin' => '1'), array('id_func' => '2','nome_func' => 'Nelson Cardoso','id_loja' => '3','ativo_func' => '0','idLogin' => '2'), array('id_func' => '30','nome_func' => 'Fernando Castro','id_loja' => '1','ativo_func' => '0','idLogin' => '1'), array('id_func' => '35','nome_func' => 'Luís Damião','id_loja' => '3','ativo_func' => '0','idLogin' => '2'), array('id_func' => '36','nome_func' => 'Nelson Carrasco','id_loja' => '4','ativo_func' => '0','idLogin' => '1'), array('id_func' => '38','nome_func' => 'Luis Cholipa','id_loja' => '4','ativo_func' => '0','idLogin' => '2'), array('id_func' => '39','nome_func' => 'José Paquistão','id_loja' => '3','ativo_func' => '0','idLogin' => '2'), array('id_func' => '40','nome_func' => 'Gustavo Fonseca','id_loja' => '4','ativo_func' => '0','idLogin' => '2'), array('id_func' => '41','nome_func' => 'Gustavo Gusmão','id_loja' => '3','ativo_func' => '0','idLogin' => '1'), array('id_func' => '45','nome_func' => 'João Chicória','id_loja' => '2','ativo_func' => '1','idLogin' => '6'), array('id_func' => '46','nome_func' => 'Miguel Chicória','id_loja' => '2','ativo_func' => '0','idLogin' => '7') ); /* `gestaoreclamacoes`.`loja` */ $loja = array( array('id_loja' => '1','desc_loja' => 'Airbags','localizacao_loja' => 'Santarém','estado_loja' => '0','contato_loja' => '287676767686'), array('id_loja' => '2','desc_loja' => 'Produção de Vidros','localizacao_loja' => 'Viana do Castelo','estado_loja' => '1','contato_loja' => '25888809090'), array('id_loja' => '3','desc_loja' => 'Paineis Interiores','localizacao_loja' => 'Alcaçovas','estado_loja' => '1','contato_loja' => '27878787878'), array('id_loja' => '4','desc_loja' => 'Moldes e Ferramentas','localizacao_loja' => 'Macedo de Cavaleiros','estado_loja' => '0','contato_loja' => '2367676767676'), array('id_loja' => '350','desc_loja' => '2','localizacao_loja' => 'Castelo Branco','estado_loja' => '0','contato_loja' => '90909') ); /* `gestaoreclamacoes`.`mensagem_reclamacao` */ $mensagem_reclamacao = array( array('id_msg_recl' => '1','id_reclam' => '1','dataHora_msg_recla' => '2020-06-07 20:32:56','msg_reclam' => 'Falta o pagamento da carroçaria dos automóveis','id_func' => '2','entidade' => 'TechnoCorporation','anexo' => 'anexar documento','estado_msg_recim' => '1'), array('id_msg_recl' => '102','id_reclam' => '1','dataHora_msg_recla' => '2019-07-09 20:35:15','msg_reclam' => 'Defeitos/anomalias nos Airbags, tem que ser devolvidos.','id_func' => '1','entidade' => 'SolutionsAutoBags','anexo' => 'Anexar ficheiro','estado_msg_recim' => '0') ); /* `gestaoreclamacoes`.`pais` */ $pais = array( array('id_pais' => '1','sigla_pais' => 'pt','desc_pais' => 'Portugal'), array('id_pais' => '2','sigla_pais' => 'en','desc_pais' => 'Inglaterra'), array('id_pais' => '9','sigla_pais' => 'Af','desc_pais' => 'Afeganistão'), array('id_pais' => '10','sigla_pais' => 'bl','desc_pais' => 'Bélgica'), array('id_pais' => '12','sigla_pais' => 'A','desc_pais' => 'Andorra'), array('id_pais' => '45','sigla_pais' => 'FR','desc_pais' => 'França'), array('id_pais' => '78','sigla_pais' => 'PK','desc_pais' => 'Paquistão'), array('id_pais' => '89','sigla_pais' => 'sl','desc_pais' => 'Eslovénia') ); /* `gestaoreclamacoes`.`reclamacao` */ $reclamacao = array( array('id_reclam' => '1','id_cliente' => '1','dataHora_reclam' => '2020-07-12','id_tema' => '1','obs_assunto_reclam' => 'Produto com defeitos','estado_reclam' => '0','id_subtema_reclam' => '1'), array('id_reclam' => '2','id_cliente' => '2','dataHora_reclam' => '2020-07-05','id_tema' => '2','obs_assunto_reclam' => 'Atraso no pagamento dos fornecedores','estado_reclam' => '1','id_subtema_reclam' => '2') ); /* `gestaoreclamacoes`.`subtema_reclamacao` */ $subtema_reclamacao = array( array('id_subtema_reclam' => '1','id_tema' => '1','desc_subtema' => 'Defeitos','ativo_subtema' => '1'), array('id_subtema_reclam' => '2','id_tema' => '2','desc_subtema' => 'Devoluções','ativo_subtema' => '0') ); /* `gestaoreclamacoes`.`temas_reclamacao` */ $temas_reclamacao = array( array('id_tema' => '1','des_tema' => 'Produtos','ativo_tema' => '1'), array('id_tema' => '2','des_tema' => 'Compras','ativo_tema' => '0') ); /* `gestaoreclamacoes`.`utilizadores` */ $utilizadores = array( array('login' => 'Fcorreia','pass' => '567','status' => '0','idLogin' => '1'), array('login' => 'Cfaria','pass' => '908','status' => '0','idLogin' => '2'), array('login' => 'Joao6789','pass' => 'joao','status' => '0','idLogin' => '6'), array('login' => 'miguel6789','pass' => '899','status' => '1','idLogin' => '7'), array('login' => 'vcunha','pass' => '890','status' => '0','idLogin' => '13'), array('login' => 'T456','pass' => '456','status' => '1','idLogin' => '14') ); Aguardando uma resposta breve de vossa parte. Atentamente. José Moreira
  7. Goncalo_Santos_Web

    Sistema de apostas desportivas virtual

    Boa noite, estou a realizar uma web app onde contenho uma secção de apostas desportivas virtuais por ser um projeto escolar. Estou com dificuldades na realização do script. Exemplo : Pontos do utlizador = 100 Jogo: Equipa A vs Equipa B Se a aposta do utilizador estiver correta serão multiplicados os pontos apostados com a Odd da equipa, seguidamente serão somados os pontos do utilizador. Se a aposta do utilizador estiver incorrecta serão subtraídos os pontos do utilizador pelo valor apostado. Obrigador pela atençao.
  8. JoseDroid

    ANSWERED Inserir na base de dados

    Boas malta, tenho este código para inserir dados na base de dados, o que acontece é que agora quero fazer uma função que me diga se já existe um utilizador com aquele nome ou não. Caso exista emitir uma pagina erro, caso não exista, cria. o código que tenho a funcionar é este: $ligacao = new mysqli("localhost", "root", "", "gestao"); if ($ligacao->connect_errno) { echo "Falha na ligação: " . $ligacao->connect_error; exit(); } $consulta = "INSERT INTO utilizadores (id, nome, pass) VALUES ('$id', '$nome', '$pass' )"; if (!$ligacao->query($consulta)) { echo " Falha ao gravar: \"$consulta\" <br>" . $ligacao->error; $ligacao->close(); /* fechar a ligação */ } else{ echo " Novo registo inserido com sucesso" ; } Já tentei alguns métodos sei que é á base de select e assim mas nenhum sem sucesso, alguém me pode ajudar?
  9. Carlos Rocha

    namespace não funciona

    Pessoal, bom dia! Não estou conseguindo importar uma classe usando composer. O intrigante é que é apenas uma e tudo, aparentemente, esta correto. Árvore do projeto site / /classes /classes/Rotas.php /mvc /mvc/controller /mvc/controller/Contato.php /mvc/view /mvc/view/contato.php /mvc/view/home.php /public /public/config.php /public/index.php /public/router.php /vendor Tenho o index que importa 2 arquivos somente, um de config e outro de router. index.php <?php require_once 'config.php'; require_once 'router.php'; config.php <?php error_reporting(E_ALL); ini_set('display_errors', true); date_default_timezone_set('America/Sao_Paulo'); require_once '../vendor/autoload.php'; router.php <?php use classes\Rotas; $rota = new Rotas; $rota->get("/", function() { require_once '../mvc/view/home.php'; }); $rota->get("/contato", "Contato@form"); Rotas.php <?php namespace classes; use mvc\controller\Contato; class Rotas { public function get (String $rota, $require = null){ if ($_SERVER['REQUEST_URI'] === $rota) { if ( is_string($require) and $require !== "" ){ $require = strtolower($require); $require = explode('@', $require); $class = ucfirst($require[0]); $metodo = $require[1]; $classe = new $class; return $classe->$metodo(); } if ( is_callable ($require) ) $require(); } } } Contato.php <?php namespace mvc\controller; class Contato { public function form () { require_once '../mvc/view/contato.php'; } } Erro: Fatal error: Uncaught Error: Class 'Contato' not found in D:\web\rotas.com\classes\Rotas.php:25 Stack trace: #0 D:\web\rotas.com\public\router.php(11): classes\Rotas->get() #1 D:\web\rotas.com\public\index.php(4): require_once('D:\\web\\rotas.co...') #2 {main} thrown in D:\web\rotas.com\classes\Rotas.php on line 25 Não acho essa falha Detalhe: a Classe Routas.php está sendo carregada normalmente, o que me garante que o autoload está funcionando também!.
  10. Earendil010102

    ANSWERED Usar HTML dentro de array PHP

    Alguém sabe dizer como transformo várias div html em um array php? Tenho um projeto da faculdade onde preciso mostrar animais em ordem aleatória e, para isso, vou usar a função shuffle(). Mas para conseguir utilizar a função, preciso colocar as imagens dentro de um array. Segue o código abaixo. <?php $animais_detalhes = [ 'cachorro' => [ 'nome' => 'Cachorro', 'caracteristicas' => [ ['mora numa casinha', 'cachorro/mora_numa_casinha.jpg'], ['tem patas', 'cachorro/tem_patas.jpg'] ] ], 'coruja' => [ 'nome' => 'Coruja', 'caracteristicas' => [ ['gosta da noite', 'coruja/gosta_da_noite.jpg'], ['tem olhos grandes', 'coruja/tem_olhos_grandes.jpg'] ] ], 'gato' => [ 'nome' => 'Gato', 'caracteristicas' => [ ['dorme muito', 'gato/dorme_muito.jpg'], ['tem bigode', 'gato/tem_bigode.jpg'] ] ], 'peixe' => [ 'nome' => 'Peixe', 'caracteristicas' => [ ['tem escamas', 'peixe/tem_escamas.jpg'], ['vive na agua', 'peixe/vive_na_agua.jpg'] ] ] ]; $animais = array_keys($animais_detalhes); $escolha_aleatoria = rand(0, 3); $animal_escolhido = $animais_detalhes[$animais[$escolha_aleatoria]]; ?> <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css" integrity="sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk" crossorigin="anonymous"> <title>Hello, world!</title> <style> body { background: lightgreen; } .card-image img { object-fit: cover; object-position: center; width: 100%; max-height: 200px; } img.img-animal { object-fit: none; object-position: center; width: 100%; max-height: 200px; } </style> </head> <body> <div class="container-fluid p-4 pb-2" style="background: lightskyblue"> <div class="row mt-2"> <div class="col-md-2"></div> <div class="col-md-4"> <div class="card card-image d-block"> <img src="./imagens/<?=$animal_escolhido['caracteristicas'][0][1]?>" class="card-img-top" alt="<?=$animal_escolhido['caracteristicas'][0][0]?>"> <div class="card-body"> <p class="card-text"><?=$animal_escolhido['caracteristicas'][0][0]?></p> </div> </div> </div> <div class="col-md-4"> <div class="card card-image d-block"> <img src="./imagens/<?=$animal_escolhido['caracteristicas'][1][1]?>" class="card-img-top" alt="<?=$animal_escolhido['caracteristicas'][1][0]?>"> <div class="card-body"> <p class="card-text"><?=$animal_escolhido['caracteristicas'][1][0]?></p> </div> </div> </div> </div> </div> <div class="container-fluid p-2 mt-3" style="background: lightgreen"> <div class="row"> <div class="col-md-3"></div> <div class="col-md-3"> <a href="votar.php?apresentado=<?=$animais[$escolha_aleatoria]?>&escolhido=<?=$animais[$escolha_aleatoria]?>"> <img width="256" src="./imagens/<?=$animais[$escolha_aleatoria]?>.png" class="img-fluid" alt="animal" /> </a> </div> <div class="col-md-3"> <a href="votar.php?apresentado=<?=$animais[$escolha_aleatoria]?>&escolhido=<?=$animais[0]?>"> <img width="256" src="imagens/<?=$animais[0]?>.png" class="img-fluid" alt="animal" /> </a> </div> <div class="col-md-3"></div> </div> </div> <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js" integrity="sha384-OgVRvuATP1z7JjHLkuOU7Xw704+h835Lr+6QL9UvYjZE3Ipu6Tp75j7Bh/kR0JKI" crossorigin="anonymous"></script> </body> </html>
  11. pluis3103

    [Resolvido] Retirar dados de json

    Boas pessoal, Estou a utilizar uma API que me devolve um json com a seguinte estrutura: {"result":"success","records":{"50233450":{"title":"Xpto, Lda","nif":"5037039840","seo_url":"xpto","pc4":"1900","pc3":"017","city":"Lisboa","link":"http:\www.xpto.com"}}} Para isto buscar o json eu utilizo : $result = json_decode(file_get_contents('http://www.nif.pt/?json=1&q=xpto')); O meu problema é que não consigo fazer o parse disto. Alguém me pode ajudar a ir buscar os dados deste json? Obrigado
  12. Boa Tarde Pessoal. Sexta-feira fiz uma alteração no banco de dados, colocando um novo campo. Campo "enviar_por_padrao" int com valores 1 ou 0. No ambiente de teste, local, ele leu automaticamente a alteração tanto que, apenas no template inseri um novo Checkbox, para ativar ou desativar esta opção. Ao colocar online no servidor, ele não aparece altera... simplesmente nem mexe no banco de dados... tentei limpar e cache e nada.. o que será que pode ser? Obrigado.
  13. paulosergioduff

    Como está o mercado PHP em Portugal?

    Ano que vem, pretendo trabalhar e morar em Portugal. Atualmente trabalho como desenvolvedor freelancer no Brasil. Já trabalhei em empresas, uma delas start-up, e também como pessoa jurídica (que aqui no Brasil é como se você como prestador de serviços fosse uma empresa). Sempre que vou buscar dicas do mercado PHP, sempre acabo achando o que chamamos de básico, B-A-BA, "dever de casa", essas coisas. Coisas como preencher direito o linkedin, se portar nas entrevistas, ter conhecimento técnico, falar bem inglês, essas coisas. O que quero saber, indo bem direto ao ponto, é se mercado PHP em Portugal ainda é aquecido! Procuro especificamente a vaga de Junior, talvez uma vaga de Laravel, Wordpress ou quem sabe apenas o cargo genérico de desenvolvedor PHP. Claro que tenho feito pesquisas no Linkedin, mas os resultados não me dizem a percepção que os portugueses tem do mercado PHP aí. Perguntas sempre surgem como "Qual é o nível da entrevista para vaga de Junior?"; "O inglês tem que ser impecável?"; "Tem que dominar arquitetura DDD?"; "Tem que saber implementar todos os design patterns?"; "Como são os testes por escrito?";....são muitas dúvidas que surgem, que pesquisas no linkdin ou youtube não vão ajudar. Já cometi o erro por exemplo, de iniciar os estudos em outra linguagem, até notar que para transferir a experiência em linguagem por outra, ainda sim teremos muita deficiência no processo. O ideal seria eu continuar os estudos no PHP, para quando eu estiver muito avançado, bem no mercado, se for conveniente, eu tentar ser Junior em outra tecnologia. Cometi esse erro ao simplesmente julgar as oportunidade pela quantidade de vagas, ao invés de escolher como critério, a tecnologia que mais conheço. Então? Qual a percepção de vocês sobre o mercado de trabalho de PHP em Portugal?
  14. Rúben Periquito Developer

    formulário de contacto

    preciso de um formulário de contacto onde o "user" do site pode contactar o "Admin" desse mesmo site e não estou a conseguir, alguém pode dar uma ajuda?
  15. david.inacio

    Transferir dados entre base de dados MariaDB

    <?php date_default_timezone_set ("Europe/Lisbon"); ?> <html> <head> </head> <body> <div id="header"> <div><b><?=date("Y-m-d H:i:s") ?> <h3> Sistema de transferencia interbase dados</h3> </b></div> </div> <div class="clear"></div> <script type="text/javascript"> setInterval(function(){ window.location = 'auto.php'; }, 7500); </script> <?php $dblink1=mysqli_connect('alfa.ddns.net', 'masters', '************','db1'); // connect server 1 mysqli_select_db($dblink1,'db1'); // select database 1 $dblink2=mysqli_connect('bravo.ddns.net', 'clientes', '**********','db2'); // connect server 2 mysqli_select_db($dblink2, 'db2'); // select database 2 $table='production_log'; $tableinfo = mysqli_fetch_array(mysqli_query($dblink1,"SHOW CREATE TABLE production_log ")); // get structure from table on server 1 mysqli_query($dblink2," $tableinfo[1] " ); // use found structure to make table on server 2 $result = mysqli_query($dblink1,"SELECT * FROM production_log where barcode =0 limit 10 "); // select all content while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC) ) { mysqli_query($dblink1, "UPDATE production_log SET barcode=1 where barcode =0 limit 1"); mysqli_query($dblink2,"INSERT INTO production_log (".implode(", ",array_keys($row)).") VALUES ('".implode("', '",array_values($row))."')"); // insert one row into new table } mysqli_close($dblink1); mysqli_close($dblink2); ?> </body> </html> Boa noite. Este código faz a passagem de dados entre duas bases de dados em locais distintos. A minha intenção era usar o campo barcode para marcar a linha como já copiada, para não ter de criar outras regras ou campos de controlo. Aparentemente funciona bem, no entanto de vez em quando cria registos duplicados na base de dados de destino (5 registos duplicados num universo de cem mil). Eu não sou programador experiente, só vou juntando partes de código Na vossa opinião como se pode otimizar, ou mesmo alterar a filosofia da coisa para melhorar? Obrigado
  16. ThiagoN

    Gráfico Google Charts

    bom dia estou tentando colocar a data, mas ele só esta aceitando numero array. tentei mudar alinha data.addColumn('timeofday', 'Time of Day') para data.addColumn('time', 'Time of Day') mas ai o gráfico não aparece. esta vindo do bando uma string, mas o gráfico não esta aceitando, mudei o formato no banco para Time, mas tb não funciona.. quando eu formato campo no banco como int ai ele aceita.. alguma luz segue me codigo. <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Tratativa</title> <link rel="stylesheet" type="text/css" href="../css/stilo.css"> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous"> <meta name="author" content=""> <meta name="description" content=""> <meta name="viewport" content="width=device-width" scale="1"> <!-- transforma a pagina em responsivel--> <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script> <script type="text/javascript"> google.charts.load('current', {packages: ['corechart', 'bar']}); google.charts.setOnLoadCallback(drawAnnotations); function drawAnnotations() { var data = new google.visualization.DataTable(); data.addColumn('timeofday', 'Time of Day'); data.addColumn('number', 'UPM'); data.addColumn({type: 'string', role: 'annotation'}); data.addColumn('number', 'Erros'); data.addColumn({type: 'string', role: 'annotation'}); data.addRows([ <?php include 'conexao.php'; $sql = "SELECT * FROM upm_hora"; $buscar = mysqli_query($conexao,$sql); while ($dados = mysqli_fetch_array($buscar)) { $hora = $dados['horasG']; $upm = $dados['upm']; $erros = $dados['difErros']; $tempo = $dados['horasD']; $meta = 800; ?> [{v: [<?php echo $hora ?>, 0, 0], f: ' <?php echo $hora ?>'}, <?php echo $upm ?>, '<?php echo $upm ?>', <?php echo $erros ?>, '<?php echo $erros ?>'], <?php } ?> ]); var options = { title: 'Evolução da UPM', annotations: { alwaysOutside: true, textStyle: { fontSize: 14, color: '#000', auraColor: 'none' } }, hAxis: { title: 'Hora', format: 'h:mm ', }, vAxis: { title: 'UPM' } }; var chart = new google.visualization.ColumnChart(document.getElementById('chart_div')); chart.draw(data, options); } </script> </head> <body style="background-image: url('../img/logo-pagina-inicial.jpg'); background-repeat: no-repeat; background-attachment: fixed; background-size: 100% 100%; "> <header> <div id="interface" style="background-image: url('../img/logo-pagina-inicial3.jpg'); background-repeat: no-repeat; background-attachment: fixed; background-size: 100% 100%; margin-top: 60px"> <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script> <div id="chart_div" style = " width : 100% ; height : 500px ; " ></div> </div> </header> </body> </html>
  17. ThiagoN

    Gráfico Google Charts

    Bom dia Estou montando um gráfico em Google charts, php e banco mysql preciso de ajuda para colocar os valores aparentes nas barras. tem exemplo n a documentação, mas não trazendo os dados do banco.. alguém consegue me dar uma luz? segue código. <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Tratativa</title> <link rel="stylesheet" type="text/css" href="../css/stilo.css"> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous"> <meta name="author" content=""> <meta name="description" content=""> <meta name="viewport" content="width=device-width" scale="1"> <!-- transforma a pagina em responsivel--> <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script> <script type="text/javascript"> google.charts.load('current', {'packages':['corechart']}); google.charts.setOnLoadCallback(drawVisualization); function drawVisualization() { // Some raw data (not necessarily accurate) var data = google.visualization.arrayToDataTable([ ['Hora', 'UPM','Erros', 'Meta' ], <?php include 'conexao.php'; $sql = "SELECT * FROM upm_hora"; $buscar = mysqli_query($conexao,$sql); while ($dados = mysqli_fetch_array($buscar)) { $hora = $dados['horasG']; $upm = $dados['upm']; $erros = $dados['difErros']; $tempo = $dados['horasD']; $meta = 800; ?> ['<?php echo $hora ?> <?php echo $tempo ?>', <?php echo $upm ?>, <?php echo $erros ?>, <?php echo $meta ?>], <?php } ?> ]); var options = { title: 'Evolução da UPM', vAxis: {title: 'UPM'}, hAxis: {title: 'Hora'}, seriesType: 'bars', series: {2: {type: 'line'}}, }; var chart = new google.visualization.ComboChart(document.getElementById('chart_div')); chart.draw(data, options); } </script> </head> <body> <header> <div> <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script> <div id="chart_div" style = " width : 100% ; height : 500px ; " ></div> </div> </header> </body> </html>
  18. Ricardo Santos

    ANSWERED Erro de envio de formulário

    Boa tarde a todos, estou precisar de uma ajuda. Não estou conseguir enviar por e-mail este formulário de contacto. <?php date_default_timezone_set('America/Sao_Paulo'); require_once('src/PHPMailer.php'); require_once('src/SMTP.php'); require_once('src/Exception.php'); use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\SMTP; use PHPMailer\PHPMailer\Exception; if((isset($_POST['email']) && !empty(trim($_POST['email']))) && (isset($_POST['mensagem']) && !empty(trim($_POST['mensagem'])))) { $nome = !empty($_POST['nome']) ? $_POST['nome'] : 'Não informado'; $email = $_POST['email']; $assunto = !empty($_POST['assunto']) ? utf8_decode($_POST['assunto']) : 'Não informado'; $mensagem = $_POST['mensagem']; $data = date('d/m/Y H:i:s'); $mail = new PHPMailer(); $mail->isSMTP(); $mail->Host = 'smtp.gmail.com'; $mail->SMTPAuth = true; $mail->Username = 'seuemail@gmail.com'; $mail->Password = 'senhadoemail'; $mail->Port = 587; $mail->setFrom('seuemail@gmail.com'); $mail->addAddress('endereco1@provedor.com.br'); $mail->isHTML(true); $mail->Subject = $assunto; $mail->Body = "Nome: {$nome}<br> Email: {$email}<br> Mensagem: {$mensagem}<br> Data/hora: {$data}"; if($mail->send()) { echo 'Email enviado com sucesso.'; } else { echo 'Email não enviado.'; } } else { echo 'Não enviado: informar o email e a mensagem.'; } Mensagem de erro no browser é :"Email não enviado." Alguém consegue ajudar??? projeto de final de curso.
  19. Npc Bugadi

    Barra de Edit com Button e Links

    Desculpe se postei errado, primeiro dia no forum; Eu comecei a estudar php ontem, queria saber se tem alguma maneira de colocar uma barra de edit como essa: <td width="25%">Quantidade de Moedas</td> <td> <input type="text" value="1" size="5" maxlength="5" $Test > </td> E dependendo dq a pessoa colocar dentro.. ela seguir uma determinada url, por exemplo se ela deixar o numero 1, e apertar algum button associado a essa barra de edit( não sei se chamam assim em php) ele seguir a url responsável pelo numero, se colocar o numero 2 seguir outra url, etc
  20. alexis sanchez

    Ficheiro Saf-t

    Ola pessoal eu desenvolvi um sistema web em php... no entanto para a sua certificação é necessario que ela faça a exportacao do safa-t ... mas eu nunca tive contato com esse assunto , nem sei por onde comecar nem o que fazer. alguem aqui pode dar-me uma orientação, de como fazer ou ainda dar-me links de cursos do criação ficheiro em php etc... porfavor!
  21. tive este dois erros: <br /> <b>Notice</b>: Undefined offset: 0 in <b>C:\xampp\htdocs\proc_pesq_user.php</b> on line <b>47</b><br /> <br /> <b>Warning</b>: mysqli_fetch_array() expects parameter 1 to be mysqli_result, bool given in <b>C:\xampp\htdocs\proc_pesq_user.php</b> on line <b>52</b><br /> {"draw":1,"recordsTotal":2,"recordsFiltered":2,"data":[]} <?php $servername = "localhost"; $username = "root"; $password = ""; $dbname = "gl"; $conn = mysqli_connect($servername, $username, $password, $dbname); //Receber a requisão da pesquisa $requestData= $_REQUEST; //Indice da coluna na tabela visualizar resultado => nome da coluna no banco de dados $columns = array( 1 => 'nome', 2 => 'nif', 3 => 'morada', 4 => 'contacto1', 5 => 'contacto2', 6 => 'contacto3', 7 => 'email', 8 => 'codigo_postal' ); //Obtendo registros de número total sem qualquer pesquisa $result_user = "SELECT nome, nif, morada, contacto1, contacto2, contacto3, email, codigo_postal FROM cliente"; $resultado_user =mysqli_query($conn, $result_user); $qnt_linhas = mysqli_num_rows($resultado_user); //Obter os dados a serem apresentados $result_users = "SELECT nome, nif, morada, contacto1, contacto2, contacto3, email, codigo_postal FROM cliente WHERE 1=1"; if( !empty($requestData['search']['value']) ) { // se houver um parâmetro de pesquisa, $requestData['search']['value'] contém o parâmetro de pesquisa $result_users.=" AND ( nome LIKE '".$requestData['search']['value']."%' "; $result_users.=" OR nif LIKE '".$requestData['search']['value']."%' "; $result_users.=" OR (morada LIKE '".$requestData['search']['value']."%' )"; $result_users.=" OR (contacto1 LIKE '".$requestData['search']['value']."%' )"; $result_users.=" OR (contacto2 LIKE '".$requestData['search']['value']."%' )"; $result_users.=" OR (contacto3 LIKE '".$requestData['search']['value']."%' )"; $result_users.=" OR (email LIKE '".$requestData['search']['value']."%' )"; $result_users.=" OR codigo_postal LIKE '".$requestData['search']['value']."%' )"; } $resultado_users=mysqli_query($conn, $result_users); $totalFiltered = mysqli_num_rows($resultado_users); //Ordenar o resultado $result_users.=" ORDER BY ". $columns[$requestData['order'][0]['column']]." ".$requestData['order'][0]['dir']." LIMIT ".$requestData['start']." ,".$requestData['length']." "; $resultado_users=mysqli_query($conn, $result_users); // Ler e criar o array de dados $dados = array(); while( $row_users = mysqli_fetch_array($resultado_users) ) { $dado = array(); $dado[] = $row_users["nome"]; $dado[] = $row_users["nif"]; $dado[] = $row_users["morada"]; $dado[] = $row_users["contacto1"]; $dado[] = $row_users["contacto2"]; $dado[] = $row_users["contacto3"]; $dado[] = $row_users["email"]; $dado[] = $row_users["codigo_postal"]; $dados[] = $dado; } //Cria o array de informações a serem retornadas para o Javascript $json_data = array( "draw" => intval( $requestData['draw'] ),//para cada requisição é enviado um número como parâmetro "recordsTotal" => intval( $qnt_linhas ), //Quantidade de registros que há no banco de dados "recordsFiltered" => intval( $totalFiltered ), //Total de registros quando houver pesquisa "data" => $dados //Array de dados completo dos dados retornados da tabela ); echo json_encode($json_data); //enviar dados como formato json
  22. Bom dia, Tenho um problema a assinar uma string através do openSSL. A string a assinar é - "2012-01-04;2012-01-04T15:44:40;FT 2012/1;1200.00;" Assino a string da seguinte forma: $hash = exec('echo "'.$data.'" | openssl dgst -sha1 -sign '.private_key_location.' | openssl enc -base64 -A'); E a verdade é que a string fica encriptada, mas quando desencripto a string e verifico a integridade dos dados, dá-me um erro a diz que estes não são válidos devido à chave pública utilizada. Por isso parto do principio que a string não esteja bem encriptada. Só mais uma observação esta string está inserida numa XML que vai para as Finanças para estas certificarem o software de contabilidade, ao que os entendidos na matéria normalmente chamam SAFT-PT. É um ficheiro que contém informação sobre as empresas que utilizam o software. PS: Já utilizei também as funções nativas do openSSL para PHP e continua a dar-me o mesmo erro. Mas o mais engraçado é que ao encritpar a string através do "openssl_private_encrypt" a string é diferente daquela que é gerada através da função em cima referida. Cumprimentos
  23. FreddyKrueger

    Abrir 2ª pagina e esperar por variavel

    Ola pessoal Estou aqui com um problema, que não faço a minima ideia como resolver. Estando no index.php, preciso de abrir uma outra pagina (serverbrowser.php) para escolher a path, e quando pressionar um botão (estando na pagina serverbrowser.php), fechar esta mesma pagina serverbrowser.php e devolver uma variavel para a pagina index.php. Eu nem sequer sei se isto é possivel fazer. Desde ja o meu muito obrigado pela vossa ajuda.
  24. camafeu

    Login e-fatura via cURL

    Boas. Alguem sabe se existe forma de efectuar login no portal das finanças através do cURL? A ideia é fazer login e posteriormente fazer o get das faturas através do JSON (https://faturas.portaldasfinancas.gov.pt/json/obterDocumentosAdquirente.action). O código que tenho é o seguinte: //set the directory for the cookie using defined document root var $dir = "/home/conta/web/cookies"; //build a unique path with every request to store //the info per user with custom func. $path = $dir; $cookie_file_path = $path."/cookie.txt"; //login data $postData1 = array( 'path' => 'painelAdquirente.action', 'partID' => 'EFPF', 'authVersion' => '1', '_csrf' => '9555c9e9-a5a6-41a2-8241-e02aa4a6db1c', 'selectedAuthMethod' => 'N', 'username' => 'USER_NAME', 'password' => 'PASSWORD' ); $url = 'https://www.acesso.gov.pt/jsp/loginRedirectForm.jsp'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_USERAGENT,'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/32.0.1700.107 Chrome/32.0.1700.107 Safari/537.36'); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $postData); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_COOKIESESSION, true); curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file_path); //could be empty, but cause problems on some hosts curl_setopt($ch, CURLOPT_COOKIEFILE, $path); //could be empty, but cause problems on some hosts $answer = curl_exec($ch); if (curl_error($ch)) { echo curl_error($ch); } Obtenho o erro: Por motivos de ordem técnica não nos é possível responder ao seu pedido. Por favor tente mais tarde.
  25. Como muitos de vós devem saber, entra em vigor a 1 de Maio de 2013 o webservice da Autoridade Tributária para reporte em tempo real dos documentos de transporte emitidos. Estou a tratar da implementação dessa funcionalidade numa plataforma de faturação escrita em PHP e tenho várias dificuldades em que vou precisar de ajuda nos próximos dias, a diversos níveis. A primeira de todas é o estabelecimento da ligação segura com o servidor da AT, em: https://servicos.portaldasfinancas.gov.pt:400/sgdtws/documentosTransporte Já recebi da AT: - uma chave pública, materializada no ficheiro 'chavePublica.cer' - um certificado materializado no ficheiro 'certificado.pfx' Também já tenho a extensão openssl activa no meu servidor, que é linux. Teóricamente seria só consultar a documentação sobre a extensão que existe no PHP.net e mais uns quantos tutoriais online, que deveria chegar lá. O problema é que a extensão está muito mal documentada em termos de exemplos práticos, e a carga técnica sobre criptografia é de tal forma grande que quem não está habituado fica completamente perdido. Então, o que eu preciso: - que alguém me explique a funcionalidade destes dois ficheiros; - como é que eu os utilizo em conjunto com a extensão openssl do php para estabelecer a ligação segura, por onde vai ser enviada depois a informação ( esta será uma guerra para depois...)
×
×
  • 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.