Jump to content

Search the Community

Showing results for tags 'php'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Comunidade
    • Sugestões, Críticas ou Dúvidas relativas ao P@P
    • Acerca do P@P
  • Comunidade a Trabalhar
    • Apresentação de Projectos de Programação
    • Downloads
    • Revista PROGRAMAR
  • Desenvolvimento Geral
    • C
    • C++
    • Java
    • 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 e Automação Industrial
    • Matemática
    • Software de Contabilidade e Finanças
    • Dúvidas e Discussão de Programação
  • Outras Áreas
    • Notícias de Tecnologia
    • 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...

Joined

  • Start

    End


Group


Website


GitHub


LinkedIn


Twitter


Facebook

  1. Tiagoinf

    format date sql

    Ola a todos, Estou a fazer um SELECT com um filtro por datas, acontece que a data esta a ser guardada da seguinte forma: 20/JUN/2022 que na realidade é 20/06/2022. Como é que posso fazer para no select ele mostrar a data assim "20/06/2022" para depois poder filtrar por data? $query = "SELECT datacompra, dataVencimentocompra from $table WHERE active=1 and datacompra>= '$inicio' AND datacompra<= '$fim';"; Ja uso uma funçao para me identificar o mes mas nao sei como a posso usar no select. function parseDate($date = null, $order = null) { if (empty($date)) { $today = date_create('now', new DateTimeZone('Europe/Lisbon')); $date = $today->format("d/m/Y"); } $arrayDatePayment= explode("/",$date); $invoiceDay = $arrayDatePayment[0]; $invoiceMonth = $arrayDatePayment[1]; $invoiceYear = $arrayDatePayment[2]; $parsedMonth = ""; switch ($invoiceMonth) { case "JAN": $parsedMonth = "01"; break; case "FEV": $parsedMonth = "02"; break; ..... default: $parsedMonth = $invoiceMonth; break; } $newInvoiceDate= $invoiceDay."-".$parsedMonth."-".$invoiceYear; return $newInvoiceDate; } alguem por ai que pode ajudar?
  2. Olá, Preciso enviar os 10 ultimos itens de um mysql para todos os e-mails cadastrados, com codigo abaixo não acontece nada. <?php $conn = new mysqli("localhost","user","pass","db"); $sql = mysqli_query($conn, "SELECT * FROM jobs"); $numRows = mysqli_num_rows($sql); $mail_body = ''; while($row = mysqli_fetch_array($sql)){ $id = $row["id"]; $salary = $row["salary"]; $cargo=$row["title"]; $description = $row["plot"]; $mail_body = ''; } //colocar a chamada mail dentro do loop que itera sobre os clientes: $sql = mysqli_query($conn, "SELECT email FROM subscriptions WHERE id=4168"); $numRows = mysqli_num_rows($sql); $subject = "New jobs"; $headers = "From:info@umsite.com\r\n"; $headers .= "Content-type: text/html\r\n"; while($row = mysqli_fetch_array($sql)){ $email = $row["email"]; $name = $row["firstname"]; $mail_result = mail($email, $subject, $mail_body, $headers); if ($mail_result) { echo 'ok'; } } ?> grato por qualquer ajuda
  3. Numa tabela com as datas das consultas queria que não fosse permitido ao utilizador alterar os dados da consulta a menos de 72 horas da data da consulta marcada. O projeto de avaliação que estou a fazer esta tabela é gerada em php diretamente da base de dados. Mas para exemplificar resumi a uma tabela. Já tentei fazer um loop mas não estou a conseguir, apenas consegui umas dicas com o código a seguir: <!DOCTYPE html> <html lang="pt"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> table td { padding: 15px; } </style> <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> </head> <body> <table> <thead> <tr> <th>ID_CONSULTA</th> <th>UTILIZADOR</th> <th>DATA</th> <th>OBSERVAÇÕES</th> </tr> </thead> <tbody> <tr> <td>1</td> <td>marco</td> <td id="data-consulta">2022-06-16</td> <td>marcação1</td> <td><button id="editar">Editar</button></td> </tr> <tr> <td>2</td> <td>martim</td> <td id="data-consulta">2022-06-20</td> <td>marcação2</td> <td><button id="editar">Editar</button></td> </tr> <tr> <td>3</td> <td>carlos</td> <td id="data-consulta">2022-06-15</td> <td>marcação3</td> <td><button id="editar">Editar</button></td> </tr> </tbody> </table> <script src="script.js"></script> </body> </html> var inputConsulta = document.querySelector('#data-consulta'); var editar = document.querySelector('#editar'); function calcularDiferenca() { var dataConsulta = inputConsulta.innerHTML; //var dataAtual = inputAtual.value; var dataAtual = new Date().toISOString().slice(0, 10); dataConsulta = new Date(dataConsulta).toISOString().slice(0, 10); //dataConsulta = new Date(dataConsulta); //dataAtual= new Date(dataAtual); var diffInTime = Math.abs(dataConsulta - dataAtual); var timeInOneDay = 1000 * 60 * 60 * 24; var diffInDays = diffInTime / timeInOneDay; if (diffInDays >= 3) { alert('Você escolher alterar a marcação!'); } else { alert('O prazo de 72 para alterar a marcação expirou!'); } } editar.addEventListener('click', () => { var diffInDays = calcularDiferenca(); if (diffInDays >= 3) { ('#editar').prop('disabled', false); alert('Você escolheu alterar uma marcação!'); } else { $('#editar').prop('disabled', true); alert('O prazo para alterar a marcação foi expirado!\nPor favor, entre em contacto com a empresa!'); } });
  4. Eu queria depois de validar o login para redirecionar para a página dependendo do nível de acesso, agradeceria que alguem me ajudasse o mais rápido possível, obrigado aqui está a página de login de validação: <?php session_start(); include ("config.php"); if(isset($_POST['submit'])){ $Nmutilizador = mysqli_real_escape_string($conn, $_POST['username']); $pass = md5($_POST['Password']); $lvlacesso = $_POST['NivelAcesso']; $select = " SELECT * FROM users WHERE NmUtilizador = '$Nmutilizador' && PalavraPasse = '$pass' "; $result = mysqli_query($conn, $select); if(mysqli_num_rows($result) > 0){ $row = mysqli_fetch_array($result); if ($_SESSION['NivelAcesso'] == '1') { // check the value of the 'status' in the db //go to admin area header("Location: indexadmin.php"); } else { //go to members area header("Location: indexposlogin.php"); } }else{ $error[] = 'incorrect email or password!'; } }; ?> pagina de login: <?php session_start(); echo '<!doctype html> <html lang="en"> <head> <title>Página de Login</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <link href="https://fonts.googleapis.com/css?family=Lato:300,400,700&display=swap" rel="stylesheet"> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css"> <link rel="stylesheet" href="css/stylelogin.css"> <style> h3{ text-align: center; } .disclaimer{ visibility: hidden; } </style> </head> <body> <section class="ftco-section"> <div class="container"> <div class="row justify-content-center"> <div class="col-md-6 text-center mb-5"> <h2 class="heading-section">Inicie sessão</h2> </div> </div> <div class="row justify-content-center"> <div class="col-md-7 col-lg-5"> <div class="wrap"> <div class="img" style="background-image: url(Imagens/imagemlogin.png);"></div> <div class="login-wrap p-4 p-md-5"> <div class="d-flex"> <div class="w-100"> <h3 class="mb-4">Login</h3> </div> </div> <form action="validalogin.php" class="signin-form"> <div class="form-group mt-3"> <input name="username" type="text" class="form-control" required> <label class="form-control-placeholder" for="username">Nome de Utilizador</label> </div> <div class="form-group"> <input name="pass" id="password-field" type="password" class="form-control" required> <label class="form-control-placeholder" for="password">Palavra-Passe</label> <span toggle="#password-field" class="fa fa-fw fa-eye field-icon toggle-password"></span> </div> <div class="form-group"> <button type="submit" class="form-control btn btn-primary rounded submit px-3">Entrar</button> </div> <div class="form-group d-md-flex"> <div class="w-50 text-left"> <label class="checkbox-wrap checkbox-primary mb-0">Lembrar me <input type="checkbox" checked> <span class="checkmark"></span> </label> </div> <div class="w-50 text-md-right"> <a href="#">Esqueci me da palavra-passe</a> </div> </div> </form> <p class="text-center">Não és membro? <a data-toggle="tab" href="registar.php">Registar me</a></p> <p class="text-center"><a data-toggle="tab" href="https://ingamept.000webhostapp.com/">Voltar</a></p> </div> </div> </div> </div> </div> </section> <script src="js/jquery.min.js"></script> <script src="js/popper.js"></script> <script src="js/bootstrap.min.js"></script> <script src="js/main.js"></script> </body> </html>
  5. Bom dia. Sou recente no fórum e estou a precisar de auxílio pois, caso contrário, desconfio que vou perder dias à volta deste problema, e não tenho esse tempo... Passa-se o seguinte: desenvolvi um site em PHP e MySQL, ainda em http, e em produção há meses sem problema. Recentemente teve de se instalar certificado para operara em https... e continuou sem problemas... Há poucos dias pediram-me para acrescentar uma funcionalidade e eu, no meu novo portátil Lenovo, recriei, em localhost, o ambiente de produção. Quando corro a primeira pagina, a de login, não acontece nada!!!!! Coloquei umas mensagens de depuração e percebi que o $_POST não está preenchido quando o submit é pressionado e o módulo php associado ao form action é despoletado. E não percebo porque funciona em todo o lado menos no meu ambiente de localhost... Será que me podem ajudar a perceber porquê? Obrigado desde já.
  6. Boas tardes nao consigo validar os dados quando se faz o login: validalogin.php: <?php session_start(); // se username e pass foram postados if (isset($_POST['username']) && isset($_POST['pass'])) { // conecta ao database require 'config.php'; // escapa as string pra evitar scripts maliciosos $uname = $conn->real_escape_string($_POST['username']); $passw = $conn->real_escape_string($_POST['pass']); $lvlacesso = $conn->real_escape_string($_POST['NivelAcesso']); // guarda o uname na sessão $_SESSION['NmUtilizador'] = $uname; $_SESSION['NivelAcesso'] = $lvlacesso // define a consulta a ser realizada $query = "SELECT * FROM users where NmUtilizador='$uname' and PalavraPasse='$passw' and NivelAcesso='$lvlacesso'"; // executa a consulta e guarda o resultado em $result $result = $conn->query($query); // verifique se houve alguma falha durante a execução da consulta if ($sqli->error) { // exibe mensagem: die('<p class="error">Falha na consulta: ' . $conn->error . '</p>'); // se não houve falha e há algum resultado } else if ($result->num_rows) { // direciona a outra página header('location:indexposlogin.php'); // se não houve nenhuma falha, mas nada foi encontrado } else { // carrega a página de login include('site/login.html'); // com essa mensagem de erro echo '<h1 class="bad">Erro de Autenticacao</h1>'; } } // se username ou pass não foram postados echo '<h1 class="bad">Envie Username and pass</h1>'; // o mysqli $sqli é encerrado automagicamente ao fim da execução de cada request if ($_SESSION['NivelAcesso'] == '1') { // check the value of the 'status' in the db //go to admin area header("Location: indexadmin.php"); } else { //go to members area header("Location: indexposlogin.php"); } login.php <!doctype html> <html lang="en"> <head> <title>Página de Login</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <link href="https://fonts.googleapis.com/css?family=Lato:300,400,700&display=swap" rel="stylesheet"> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css"> <link rel="stylesheet" href="css/stylelogin.css"> <style> h3{ text-align: center; } .disclaimer{ visibility: hidden; } </style> </head> <body> <section class="ftco-section"> <div class="container"> <div class="row justify-content-center"> <div class="col-md-6 text-center mb-5"> <h2 class="heading-section">Inicie sessão</h2> </div> </div> <div class="row justify-content-center"> <div class="col-md-7 col-lg-5"> <div class="wrap"> <div class="img" style="background-image: url(Imagens/imagemlogin.png);"></div> <div class="login-wrap p-4 p-md-5"> <div class="d-flex"> <div class="w-100"> <h3 class="mb-4">Login</h3> </div> </div> <form action="validalogin.php" class="signin-form"> <div class="form-group mt-3"> <input type="text" class="form-control" required> <label class="form-control-placeholder" for="username">Nome de Utilizador</label> </div> <div class="form-group"> <input id="password-field" type="password" class="form-control" required> <label class="form-control-placeholder" for="password">Palavra-Passe</label> <span toggle="#password-field" class="fa fa-fw fa-eye field-icon toggle-password"></span> </div> <div class="form-group"> <button type="submit" class="form-control btn btn-primary rounded submit px-3">Entrar</button> </div> <div class="form-group d-md-flex"> <div class="w-50 text-left"> <label class="checkbox-wrap checkbox-primary mb-0">Lembrar me <input type="checkbox" checked> <span class="checkmark"></span> </label> </div> <div class="w-50 text-md-right"> <a href="#">Esqueci me da palavra-passe</a> </div> </div> </form> <p class="text-center">Não és membro? <a data-toggle="tab" href="registar.php">Registar me</a></p> <p class="text-center"><a data-toggle="tab" href="https://ingamept.000webhostapp.com/">Voltar</a></p> </div> </div> </div> </div> </div> </section> <script src="js/jquery.min.js"></script> <script src="js/popper.js"></script> <script src="js/bootstrap.min.js"></script> <script src="js/main.js"></script> </body> </html>
  7. Toninho

    Quebra de linha

    Olá, como fazer quebra de linha em um texto igual a esse? tentei nl2br e /n Grato
  8. Olá, aqui a parte de um var_dump de uma variavel $result, preciso pegar somente o title, tentei: $result->title $result[0]->title $result[0]['title'] string(1846) "{"result":{"title":"ALMOXARIFE I","company":"","rating":"4","reviews_count":"1242" agradeço qualquer ajuda.
  9. Olá boa tarde, eu peço a vossa ajuda caso consigam da melhor forma. É o seguinte, eu gostaria de configurar o método de pagamento MBWAY da empresa Ifthenpay numa loja online feita à base de PhP. O Site já tem em funcionamento o método de pagamento em Multibanco da ifthenpay. ( já estava configurada) Encontrei no GITHUB da ifthenpay um exemplo do código para pagamentos MBWAY que pode ser usado no site. Analisado os ficheiros do site encontrei o código do de multibanco, e a minha questão é se basta inserir lá este cambo de código para a coisa começar a funcionar. Julgo que pela lógica ainda tenho de adicionar algo na forma de pagamento para isto aparecer e já o fiz e dei o nome de Mbway, tal e qual como o inicio da "Class". Se alguém me poder ajudar para fazer esta configuração seria uma grande ajuda, Obrigado. PS: Eu não sou programador e não tenho muitos conhecimentos de PHP para poder confirmar se basta fazer só isto... (tenho alguns conhecimentos devido a coisas do trabalho que vão acontecendo.) <?php /* * Exemplo pagamentos por Mbway * */ class MbWay { // webservice MBWay private $mbwayApi = 'https://mbway.ifthenpay.com/IfthenPayMBW.asmx/'; // A sua Mbway key fornecida pela ifthepay private $mbwaykey = 'AAA-123456'; // chave anti-phishing definida private $chaveAntiPhishing = 'f261aebfa55138c20caf18556e17cd29'; // no caso desta API terá de ter sempre o valor constante “03” private $canal = '03'; // se pretende que o formato devolvido seja em JSON private $json; // id gerado automaticamente (SetPedido/SetPedidoJSON), poderá ser guardado para consulta posterior do estado do pedido private $idsPagamento; // Identificador do pagamento a definir pelo cliente (ex. número da fatura, encomenda, etc…); Máximo 25 caracteres. private $referencia; private $telemovel; // tipo de pagamento, que poderá ser guardado na base de dados para identificar o tipo de pagamento. private $paymentType = 'ifthenpaymbway'; // método para construir a query para os métodos SetPedido/SetPedidoJSON private function buildQuery(array $config) { return http_build_query($config); } // método para obter o id de pagamento public function getIdPedido() { return $this->idsPagamento; } // método para efectuar o envio de pedidos de pagamentos MBWay public function setPedido(bool $json, string $referencia, string $valor, string $telemovel, string $email) { $this->json = $json; $this->referencia = $referencia; $this->telemovel = $telemovel; $opts = array('http' => array( 'method' => 'POST', // pode ser GET || POST 'header' => 'Content-type: application/x-www-form-urlencoded', 'content' => $this->buildQuery( array( 'MbWayKey' => $this->mbwaykey, // parametro (Obrigatório) 'Canal' => $this->canal, // parametro (Obrigatório) 'Referencia' => $referencia, // parametro (Obrigatório) 'valor' => $valor, // parametro (Obrigatório) 'nrtlm' => $telemovel, // parametro (Obrigatório) 'email' => $email, 'descricao' => $referencia // parametro (Obrigatório) ) ), ) ); // criar um stream context $context = stream_context_create($opts); // construção do url, se $json = true SetPedidoJSON caso contrário SetPedido $url = $json ? $this->mbwayApi . 'SetPedidoJSON' : $this->mbwayApi . 'SetPedido'; // obter o conteúdo do webservice $result = file_get_contents($url, false, $context); // conversão do resultado $result = $json ? json_decode($result) : new SimpleXMLElement($result); $this->idsPagamento = $json ? $result->IdPedido : (string) $result->IdPedido; // output do resultado no browser $this->render($result); } // método para consultar o estado do(s) pedido(s) public function getEstadoPedido(bool $json, string $idsPagamento) { $this->json = $json; $opts = array('http' => array( 'method' => 'POST', // pode ser GET || POST 'header' => 'Content-type: application/x-www-form-urlencoded', 'content' => $this->buildQuery( array( 'MbWayKey' => $this->mbwaykey, 'Canal' => $this->canal, 'idspagamento' => $idsPagamento, ) ), ) ); // criar um stream context $context = stream_context_create($opts); // construção do url, se $json = true EstadoPedidosJSON caso contrário EstadoPedido $url = $json ? $this->mbwayApi . 'EstadoPedidosJSON' : $this->mbwayApi . 'EstadoPedido'; // obter o conteúdo do webservice $result = file_get_contents($url, false, $context); // conversão do resultado $result = $json ? json_decode($result) : new SimpleXMLElement($result); // condição que testa se existem erros if (empty($result->EstadoPedidos) && $result->Estado === '901') { echo $result->MsgDescricao; } return $result; } // método que permite apresentar o resultado do método setPedido private function render($result) { if ($result->Estado == '000') { // apenas esconde o formulário echo '<script type="text/javascript"> document.getElementsByTagName("form")[0].style.display = "none"; </script>'; echo '<div><table style="width: auto;min-width: 280px;max-width: 320px;padding: 5px;font-size: 11px;color: #374953;border: 1px solid #dddddd; margin-top: 10px;"><tbody><tr><td style="padding: 5px;" colspan="2"><div align="left"><img src="https://ifthenpay.com/img/mbway.png" alt="mbway"></div></td></tr><tr><td align="left" style=" padding:10px; font-weight:bold; text-align:left">Telem&oacute;vel:</td><td align="left" style=" padding:10px; text-align:left">' . $this->telemovel . '</td></tr><tr><td align="left" style=" padding:10px; padding-top:10px; font-weight:bold; text-align:left">Encomenda:</td><td align="left" style=" padding:10px; padding-top:10px; text-align:left">#' . $this->referencia . '</td></tr><tr><td align="left" style="padding:10px; padding-bottom:15px; padding-top:10px; font-weight:bold; text-align:left">Valor:</td><td style="padding:10px; padding-bottom:15px; padding-top:10px; text-align:left">' . number_format($this->json ?$result->Valor : (string) $result->Valor, 2) . ' EUR</td></tr><tr><td style="font-size: x-small; padding:0; border: 0px; text-align:center;" colspan="2">Por favor verifique na App MBWAY e proceda ao pagamento da sua encomenda. <br>Processado por <a href="https://www.ifthenpay.com" target="_blanck">Ifthenpay</a></td></tr></tbody></table></div>'; } else { echo 'Ocorreu um erro: ' . $result->MsgDescricao . '. <br/>Não foi possível concluir o pagamento.'; } } // método para o callback public function callback(array $http_get) { //chave=[CHAVE_ANTI_PHISHING]&referencia=[REFERENCIA]&idpedido=[ID_TRANSACAO]&valor=[VALOR]&estado=[ESTADO] $chave_ap_ext = $http_get['chave']; $idpedido = $http_get['idpedido']; $order_id = $http_get['referencia']; $valor = $http_get['valor']; $estado = $http_get['estado']; $orderTotal = '5.00'; // simula o valor da encomenda, este valor noemalmente é retirado da base de dados. //verifica se a chave anti-phishing devolvida pela ifthen corresponde � chave definida e se o pagamento é do tipo mbway if($this->chaveAntiPhishing === $chave_ap_ext && $this->paymentType == 'ifthenpaymbway') { // esconder formulário e tabela do resultado do método setPedido echo '<script type="text/javascript"> document.getElementsByTagName("table")[0].style.display = "none"; document.getElementsByTagName("form")[0].style.display = "none"; </script>'; // verifica se o valor no callback corresponde ao valor da encomenda if ($valor === $orderTotal) { echo "Encomenda PAGA"; http_response_code(200); } else { echo "Valor inválido"; http_response_code(200); } } else { echo "Chave inválida"; http_response_code(200); } exit(); } }
  10. Boa tarde, Já levo umas horas valentes a tentar encontrar o erro, ou uma solução o que acontece é o seguinte: eu tenho uma tabela que, com a instrução onchange atualiza os valores de base de dados, mas, graficamente tanto muda como não muda o conteúdo, se fizer o refresh/F5 manual fica tudo ok, mas o objetivo era ser automático. As instruções funcionam o graficamente não, isso é que me esta a intrigar. function CriarProcesso(){ var NomeProcesso = document.getElementById("NomeProcesso").value; var dadosajax = { 'NomeProcesso' : NomeProcesso }; pageurl = 'URL/CriarProcesso.php'; $.ajax({ url: pageurl, data: dadosajax, type: 'POST', dataType: "text", cache: false, error: function(){ toastr.danger('Erro: Inserir Registo!!'); }, success: function(result){ if($.trim(result) == '1'){ toastr.success('O registo foi editado com sucesso'); $("#table-custo").load(location.href + " #table-custo"); } else{ toastr.danger('Não é possível registar.Tente mais tarde.'); } } }); } Mesmo com load em divs diferentes ou mesmo o Append, não estão a fazer o refresh.
  11. Olá a todos , Preciso aqui de uma ajuda pois não estou mesmo a perceber este erro. Estou a usar o storage:link do laravel. Na minha página tenho um botão para fazer o upload do ficheiro e o documento vai para ao local certo. Até aqui tudo bem. Mas quando tento abrir o ficheiro da seguinte forma : <a href="{{url('storage',$doc->ficheiro)}}" target="_blank"> Na BD o ficheiro e guardado no seguinte caminho : public/documentacao_interna/dfht9Wx1EaqZpmmW4s5ireOznRR7JYtEmsf4PExO.pdf Ao tentar abri o link ele abre o seguinte /storage/public%2Fdocumentacao_interna%2Fdfht9Wx1EaqZpmmW4s5ireOznRR7JYtEmsf4PExO.pdf Mas só consigo abrir o anexo se retirar o 'public' do link acima. ficando assim o link : /storage/documentacao_interna%2Fdfht9Wx1EaqZpmmW4s5ireOznRR7JYtEmsf4PExO.pdf Não estou a perceber onde estou errar . Deixo aqui também o código do caminho que o ficheiro faz : $PDFPath = $request->ficheiro->store('public/documentacao_interna'); EDIT: Do que consegui perceber : ele é guardado aqui : public\storage\documentacao_interna e esta a tentar mostrar os documentos desta pasta : storage\public\public\documentacao_interna
  12. Olá a todos,Tenho andado aqui ás voltas a tentar implementar, sem sucesso, o Webservice dos CTT via SOAP em PHP para gerar um envio. Deveria restornar dos CTT um XML com o tracking number, mas não retorna nada. Precisava de uma ajuda para perceber o que estou a fazer de errado. Os CTT enviaram-me alguns exemplos de requests, acompanhado do url do Webservice que deveria usar para testar: http://logistica.cttexpresso.pt:8082/CTTExpressoWSQ/CTTShipmentProviderWS.svc, mais a SOAPAction: http://tempuri.org/ICTTShipmentProviderWS/CreateShipment\. Já testei via CURL e __doRequest mas sem sucesso. O request é efetuado, fica ali a remoer durante alguns segundos e não devolve no final qualquer tipo de dados. Exemplo de um dos requests que me enviaram para testes: <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/" xmlns:ctt="http://schemas.datacontract.org/2004/07/CTTExpressoWS" xmlns:ctt1="http://schemas.datacontract.org/2004/07/CTTExpressoWS.Models.ShipmentProvider" xmlns:ctt2="http://schemas.datacontract.org/2004/07/CTTExpressoWS.Models.ShipmentProvider.SEPs"> <soapenv:Header/> <soapenv:Body> <tem:CreateShipment> <!--Optional:--> <tem:Input> <ctt:AuthenticationID>###########</ctt:AuthenticationID> <ctt:DeliveryNote> <ctt1:ClientId>#####</ctt1:ClientId> <ctt1:ContractId>###</ctt1:ContractId> <ctt1:DistributionChannelId>##</ctt1:DistributionChannelId> <!--Optional:--> <ctt1:ExtData>?</ctt1:ExtData> <ctt1:ShipmentCTT> <!--Zero or more repetitions:--> <ctt1:ShipmentCTT> <!--Optional:--> <ctt1:HasSenderInformation>false</ctt1:HasSenderInformation> <ctt1:ReceiverData> <ctt1:Address>####</ctt1:Address> <ctt1:City>####</ctt1:City> <ctt1:ContactName>####</ctt1:ContactName> <ctt1:Country>####</ctt1:Country> <ctt1:Door>####</ctt1:Door> <ctt1:Email>####</ctt1:Email> <ctt1:Name>####</ctt1:Name> <ctt1:NonPTZipCode>####</ctt1:NonPTZipCode> <ctt1:NonPTZipCodeLocation>####</ctt1:NonPTZipCodeLocation> <ctt1:Phone>####</ctt1:Phone> <ctt1:Type>Receiver</ctt1:Type> </ctt1:ReceiverData> <!--Optional:--> <ctt1:SenderData> <ctt1:Address>Morada do remetente</ctt1:Address> <ctt1:City>Local do remente</ctt1:City> <ctt1:ContactName>Nome do remetente</ctt1:ContactName> <ctt1:Country>PT</ctt1:Country> <ctt1:Door>3</ctt1:Door> <ctt1:Email>Email do remetente para receber alertar</ctt1:Email> <ctt1:MobilePhone>Telefonedo remetente para receber alertar</ctt1:MobilePhone> <ctt1:Name>Nome do remetente</ctt1:Name> <ctt1:NonPTZipCodeLocation>Lisboa</ctt1:NonPTZipCodeLocation> <ctt1:PTZipCode3>###</ctt1:PTZipCode3> <ctt1:PTZipCode4>###</ctt1:PTZipCode4> <ctt1:PTZipCodeLocation>Lisboa</ctt1:PTZipCodeLocation> <ctt1:Phone>###</ctt1:Phone> <ctt1:Type>Sender</ctt1:Type> </ctt1:SenderData> <ctt1:ShipmentData> <ctt1:ClientReference>###</ctt1:ClientReference> <ctt1:ExportType>#</ctt1:ExportType> <ctt1:IsDevolution>false</ctt1:IsDevolution> <ctt1:Observations>International</ctt1:Observations> <ctt1:Quantity>1</ctt1:Quantity> <ctt1:UPUCode>Samples</ctt1:UPUCode> <ctt1:Weight>1000</ctt1:Weight> </ctt1:ShipmentData> </ctt1:ShipmentCTT> </ctt1:ShipmentCTT> <ctt1:SubProductId>###</ctt1:SubProductId> </ctt:DeliveryNote> <ctt:RequestID>###</ctt:RequestID> <!--Optional:--> <ctt:UserID>#</ctt:UserID> </tem:Input> </tem:CreateShipment> </soapenv:Body> </soapenv:Envelope> Teste 1 via CURL: <?php $soapUrl = "http://logistica.cttexpresso.pt:8082/CTTExpressoWSQ/CTTShipmentProviderWS.svc"; $xml_post_string = <<<EOT <?xml version="1.0" encoding="UTF-8"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/" xmlns:ctt="http://schemas.datacontract.org/2004/07/CTTExpressoWS" xmlns:ctt1="http://schemas.datacontract.org/2004/07/CTTExpressoWS.Models.ShipmentProvider" xmlns:ctt2="http://schemas.datacontract.org/2004/07/CTTExpressoWS.Models.ShipmentProvider.SEPs"> <soapenv:Header/> <soapenv:Body> <tem:CreateShipment> .... .... .... EOT; $headers = array( "Content-type: text/xml;charset=\"utf-8\"", "Accept: text/xml", "Cache-Control: no-cache", "Pragma: no-cache", "SOAPAction: http://tempuri.org/ICTTShipmentProviderWS/CreateShipment", "Content-length: ".strlen($xml_post_string), ); $url = $soapUrl; // PHP cURL for https connection with auth $ch = curl_init(); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_TIMEOUT, 10); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $xml_post_string); // the SOAP request curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); $response = curl_exec($ch); curl_close($ch); $parser = simplexml_load_string($response); echo $parser; ?> Teste 2 via __doRequest <?php $client = new SoapClient(null, array('uri'=>'', 'location'=>'')); $request = <<<EOT <?xml version="1.0" encoding="UTF-8"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/" xmlns:ctt="http://schemas.datacontract.org/2004/07/CTTExpressoWS" xmlns:ctt1="http://schemas.datacontract.org/2004/07/CTTExpressoWS.Models.ShipmentProvider" xmlns:ctt2="http://schemas.datacontract.org/2004/07/CTTExpressoWS.Models.ShipmentProvider.SEPs"> <soapenv:Header/> <soapenv:Body> <tem:CreateShipment> .... .... .... EOT; $url = "http://logistica.cttexpresso.pt:8082/CTTExpressoWSQ/CTTShipmentProviderWS.svc"; $action = "http://connecting.website.com/WSDL_Service/GetPrice" $response = $client->__doRequest($request,$url,$action,SOAP_1_1); echo("Response:\n"); var_dump($response); ?> Agradeço qualquer ajuda do que posso estar a fazer de errado.
  13. Olá a todos, Tenho aqui uma duvida em relação a alterar dados em duas tabelas em public function editar_perfil(Request $request, funcionario $item){ $item->nome = $request->nome; $item->email = $request->email; $item->telefone = $request->telefone; //$item->foto = $request->foto; $item->data_nasc = $request->data_nasc; $item->nacionalidade = $request->nacionalidade; $item->n_cartao_cc = $request->n_cartao_cc; $item->nif = $request->nif; $item->morada = $request->morada; $item->n_porta = $request->n_porta; $item->localidade = $request->localidade; $item->concelho = $request->concelho; $item->distrito = $request->distrito; $item->cp = $request->cp; $item->data_entrada = $request->data_entrada; $item->funcao = $request->funcao; $item->estado = $request->estado; //$item->n_ferias_disponiveis = $request->n_ferias_disponiveis; //$item->data_registo = $now; $item->save(); O que quero agora fazer é que a linha $item->n_ferias_disponiveis = $request->n_ferias_disponiveis; Seja alterado numa outra tabela 'Ferias' Existe forma de fazer diretamente ? Obrigado!
  14. Olá a todos, Estou com uma dificuldade em enviar um email com um texto mais personalizado. Quero que os utilizadores fazem login no sistema recebam um email na sua caixa a dizer que foi feito login corretamente. Então fiz o seguinte: No controlador após ser validado o login do utilizador, coloquei o seguinte código Utilizador Controller $login = array ( 'nome' => $request->nome ); Mail::to($request->email)->send(new emailteste($login)); Mail/loginsucesso: class EmailTeste extends Mailable { use Queueable, SerializesModels; public $login; /** * Create a new message instance. * * @return void */ public function __construct($login) { $this->login = $login; } /** * Build the message. * * @return $this */ public function build() { return $this ->subject('Plataforma - Acesso efetuado com sucesso ') ->view('email/loginsucesso') ->with(['login'=>$this->login]); } } view loginsucesso.blade.php <p>Acesso efetuado com sucesso {{$login['nome']}} </p> Recebo sempre a mensagem a dizer $login is undefined é a primeira vez que tento criar um email com as variáveis e estou com alguns problemas em ultrapassar este problema. Obrigado a todos
  15. Boa tarde. Venho por este meio pedir a vossa ajuda na correção do código que posto a baixo. Esse código deveria fazer o registo de novos utilizadores, mas sempre mostra um erro. Creio que o problema esteja nos "Inputs", mas não estou a conseguir resolver. <?php require_once("bootstrap.php"); ?> <!DOCTYPE html> <html> <head> <title>Registrar PHP</title> </head> <body> <h2>Registrar</h2> <form action="" method="post"> Nome Completo <input name="nome" type="text" placeholder="Ex: André Silva" required><br> E-mail <input name="email" type="email" placeholder= "E-mail" required><br> Senha <input name="senhal" type="password" placeholder="6 ou mais digitos" autocomplete="off" required><br> Repita senha <input name="senha2" type="password" placeholder="Confirme sua senha" autocomplete="off" required><br> <input type="checkbox" required="" name="termos">Eu li e aceito os Termos de Serviço<br> <input type="submit" class="btn btn-block mt-lg btn-default"><b>Cadastrar</b></button> </form> </body> </html> <?php if($_POST){ date_default_timezone_set('Portugal'); $nome = $_POST['nome']; $nome=htmlspecialchars($nome,ENT_QUOTES); $email = $_POST['email']; $email=htmlspecialchars($email,ENT_QUOTES); $termos = $_POST['termos']; $termos=htmlspecialchars($termos,ENT_QUOTES); $senha1 = $_POST['senha1']; $senha1=htmlspecialchars($senha1,ENT_QUOTES); $senha2 = $_POST['senha2']; $senha2=htmlspecialchars($senha2,ENT_QUOTES); $senhacrip = hash('sha256', $senha2); $data = date("Y-m-d H:i:s"); $ip = $_SERVER['REMOTE_ADDR']; if(empty($email)){ echo "<script>window.alert('Digite o e-mail');</script>"; echo "<meta http-equiv='refresh' content='0;'>"; return false; } $veric = mysqli_query($conn, "SELECT * FROM users WHERE email='$email'"); $verifc = mysqli_num_rows($veric); if ($verifc == true) { echo "<script>window.alert('Você jà cadastrou!');</script>"; echo "<meta http-equiv='refresh' content='0;'>"; return false; } if (empty($termos)) { echo "<script>window.alert('Concorde com os termos!');</script>"; echo "<meta http-equiv='refresh' content='0;'>"; return false; } if (empty($senha1)) { //Verificar senha. echo "<script>window.alert('Digite uma senha!');window.history.go(-1);</script>"; return false; } if (empty($senha2)) { //Verificar confirmar senha. echo "<script>window.alert('Confirme sua senha!');window.history.go(-1);</script>"; return false; } if (strlen($senha1) < 6){ echo "<script>window.alert('Sua senha deve conter no minimo 6 digitos!');window.history.go(-1);</script>"; return false; } if ($senha1 != $senha2) { echo "<script>window.alert('Senhas Difrentes!');</script>"; echo "<meta http-equiv='refresh' content='0;'>"; return false; } echo "<meta http-equiv='refresh' content='0;registrar.php?q=true'>"; /////////////// Gravando /////////////// $sql1=mysqli_query ($conn,"INSERT INTO users (nome, email, senha, data) VALUES ('$nome', '$email', '$senhacrip', '$data')"); } ?> </body> </html> Agradeço desde já toda a ajuda que me possam dar.
  16. Preciso de uma ajuda para perceber o que estou a fazer de errado. Estou a construir um chat onde do lado direito tenho os utilizadores e que ao clicar no utilizador abra o chat respetivo. Nos utilizadores do lado direito coloquei o seguinte HREF: <a href="{{route('chat.index', ['id'=>$item->id])}}"> Que depois coloca o seguinte link na página : /Chat?id=10 e coloquei na view se existe id mostra o chat. @if($id) Mas não vem até aqui. Não consigo fazer com que o IF seja verdadeiro. No controller tenho o seguinte código, mas acho que não está errado. public function index(Request $request,$id=null){ $outroUser = null; if($id){ $outroUser = utilizador::findorfail($id); } $tabela = utilizador::orderby('id', 'desc')->get(); return view('painel-admin.chat.index', ['itens' => $tabela, $outroUser]); }
  17. danielfpaiva

    Memory leak

    Boa tarde, Estou aqui a ter um problema relacionado com a memória estar a ser excessivamente consumida por uma função mas não estou a conseguir identificar o ponto em que isto possa estar acontecer visto que se trata de uma simples query SELECT e criação de uma array com os valores para serem devolvidos. A mensagem de erro é: Fatal error: Out of memory (allocated 115540492288) (tried to allocate 4096 bytes) A função em que isto acontece é a seguinte: function funGetToken(){ include_once(PATH_DATABASE_INC); $db = Database::getInstance(); $connection = $db->getConnection(); $id = $_REQUEST['id']; $arrayMain=[]; $typeArray = []; $typeSQL = "SELECT * FROM tb_tokentype"; if ($result = $connection->query($typeSQL)) { while($row = mysqli_fetch_assoc($result)){ $typeArray[$row['id']] = $row['tokenType']; } } array_push($arrayMain,json_encode($typeArray)); $sqlCmd="SELECT tb_tokens.symbol, tb_tokens.name, tb_tokens.idtype, tb_tokens.decimalCases, tb_tokens.maxSupply, tb_tokens.stake, tb_tokens.delegation, tb_tokens.description, tb_tokens.active, tb_gallery.path, tb_tokens.idTbGallery FROM tb_tokens INNER JOIN tb_gallery ON tb_tokens.idTbGallery = tb_gallery.id WHERE tb_tokens.id=".$id; $viArrayValues1 = []; if ($result = $connection->query($sqlCmd)) { $row = mysqli_fetch_assoc($result); if(!empty($row)){ while($row){ $viArrayValues['id']=$id; $viArrayValues['symbol']=$row['symbol']; $viArrayValues['name']=$row['name']; $viArrayValues['idtype']=$row['idtype']; $viArrayValues['decimalCases']=$row['decimalCases']; $viArrayValues['maxSupply']=$row['maxSupply']; $viArrayValues['stake']=$row['stake']; $viArrayValues['delegation']=$row['delegation']; $viArrayValues['active']=$row['active']; $viArrayValues['description']=$row['description']; $viArrayValues['path']=$row['path']; $viArrayValues['idTbGallery']=$row['idTbGallery']; array_push($arrayMain,json_encode($viArrayValues)); } } else { $sqlCmd="SELECT tb_tokens.symbol, tb_tokens.name, tb_tokens.idtype, tb_tokens.decimalCases, tb_tokens.maxSupply, tb_tokens.stake, tb_tokens.delegation, tb_tokens.description, tb_tokens.active FROM tb_tokens WHERE tb_tokens.id=".$id; if ($result = $connection->query($sqlCmd)) { while($row = mysqli_fetch_assoc($result)){ $viArrayValues['id']=$id; $viArrayValues['symbol']=$row['symbol']; $viArrayValues['name']=$row['name']; $viArrayValues['idtype']=$row['idtype']; $viArrayValues['decimalCases']=$row['decimalCases']; $viArrayValues['maxSupply']=$row['maxSupply']; $viArrayValues['stake']=$row['stake']; $viArrayValues['delegation']=$row['delegation']; $viArrayValues['active']=$row['active']; $viArrayValues['description']=$row['description']; $viArrayValues['path']=""; $viArrayValues['idTbGallery']=""; array_push($arrayMain,json_encode($viArrayValues)); } } } } echo json_encode($arrayMain); $db->closeConnection(); } Será que alguém tem uma ideia onde poderá estar o problema? Obrigado pela ajuda
  18. Olá, Gostaria de fazer isso o .htacess, é possivel? $urcity=explode('/',$_SERVER["REQUEST_URI"]); $city=explode('.',str_replace(' ',"-", $urcity[1])); RewriteRule ^$city[0]\.xml$ gera_xml_city.php [L]
  19. Toninho

    Busca no google

    Olá a todos, não sei se essa duvida é aqui, mas um cliente que tem um site de empregos em PHP no Brasil e tem empregos de Portugal me perguntou. Vejam no print anexado esta pesquisa "Ofertas de emprego Porto", alguém que mora em Portugal poderia me dizer se estar vendo mesmo resultado?
  20. Bom dia, estou a pensar evoluir uma aplicação em ambiente windows para a web, linux, com php + mysql para gerar a chave hash em windows uso: openssl dgst -sha1 -sign ChavePrivada.pem -out Registo1.sha1 Registo1.txt openssl enc -base64 -in Registo1.sha1 -out Registo1.b64 -A como efetuar a mesma operação em php?
  21. Olá, Tenho uma query que não estou a conseguir passar para a view com o seguinte erro : Undefined variable: dias_usados Não estou mesmo a conseguir perceber onde estou a errar. $dias_usados = calendario::where('id_funcionario', '=', $userid) ->groupBy('id_funcionario') ->sum('contaferias'); Coloquei um DD e aparece-me o valor correto E tentei passar para a View da seguinte forma: return view('ausencia',compact('tabela'), ['itens'=>$ferias], ['dias_usados'=>$dias_usados]); Os dois primeiros funcionam normalmente, o ultimo o que estou com problemas. Tentei colocar na view da seguinte forma : <h3>{{$dias_usados}}</h3> Ocorre o erro Undefined variable: dias_usados Deixo tambem o caminho que tenho na rota , mas não vejo nada de errado Route::get('Ausencia', [AusenciaController::class, 'index'])->name('ausencia.index');
  22. Bom dia tenho uma duvida em relcação ao programa que estou a desenvolver e da me o seguinte erro: Fatal error: Uncaught Error: Call to a member function query() on string in D:\xampp\htdocs\site\validarupdate.php:11 Stack trace: #0 {main} thrown in D:\xampp\htdocs\site\validarupdate.php on line 11
  23. Olá preciso chamar um paramento cidade em uma sql. Assim, como abaixo, não funciona <script> navigator.geolocation.getCurrentPosition(function(posicao) { var url = "https://nominatim.openstreetmap.org/reverse?lat="+posicao.coords.latitude+"&lon="+posicao.coords.longitude+"&format=json&json_callback=preencherDados"; var script = document.createElement('script'); script.src = url; document.body.appendChild(script); }); function preencherDados(dados) { cidade = dados.address.city; estado = dados.address.state; pais = dados.address.country; bairro = dados.address.suburb; } </script> $cidade = \DB::select('select name from cities where name="'.$cidade.'"'); Agradeço qualquer ajuda
  24. Olá a todos, Preciso de uma pequena ajuda de como posso fazer uma em código que cada utilizador tenha 22 dias para marcação de férias. para efetuar o registo das férias o utilizador tem uma janela com a data de inicio e data de fim. tenho um campo oculto que diz os dias de férias marcados. tabela: id, data inicio, data fim, contar, total (colocar aqui os 22 dias e ir diminuindo com o campo contar?) isto faz sentido? Existe algo um pouco mais racional de fazer ? Obrigado
  25. Bom dia estou cm estes seguintes erros: Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, bool given in D:\xampp\htdocs\site\validalogin.php on line 13 Warning: include(login.html): failed to open stream: No such file or directory in D:\xampp\htdocs\site\validalogin.php on line 22 Warning: include(): Failed opening 'login.html' for inclusion (include_path='\xampp\php\PEAR') in D:\xampp\htdocs\site\validalogin.php on line 22 Warning: mysqli_free_result() expects parameter 1 to be mysqli_result, bool given in D:\xampp\htdocs\site\validalogin.php on line 28 Aqui está o código: <?php $uname=$_POST['username']; $passw=$_POST['pass']; session_start(); $_SESSION['NmUtilizador']=$uname; $conexion=mysqli_connect("localhost","root","","pap"); $consulta="SELECT * FROM login where NmUtilizador='$uname' and Password='$passw'"; $resultado=mysqli_query($conexion,$consulta); $filas=mysqli_num_rows($resultado); if($filas){ header("location:site/indexposlogin.php"); }else{ ?> <?php include("site/login.html"); ?> <h1 class="bad">Erro de Autenticacao</h1> <?php } mysqli_free_result($resultado); mysqli_close($conexion);
×
×
  • 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.