Jump to content

Search the Community

Showing results for tags 'php'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

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

Blogs

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

Categories

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

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Found 7,343 results

  1. GobsRuiz

    Laravel - Não consigo usar yield

    Alguém por favor me ajuda. Eu estou tentando usar o yield, porém ele não mostra nada na tela, apenas o que já esta na página welcome. <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> </head> <body> <div> Sarve :: <br> </div> <div> @yield('imprimindo') </div> </body> </html> @extends('welcome') @section('imprimindo') <H1>Imprimindo o texto - yield and section</H1> @endsection
  2. lordspirit

    Query de insert não devolve resultados

    Bom dia e boa quarentena se for o vosso caso. Ando a desenvolver um software de inventário a partir de uma app partilhada no github aqui. Tenho tudo a funcionar na BD desde inserção de múltiplas categorias ao filtro das mesmas através de dropdowns mas algo se passa na minha query para inserir os produtos. Já tentei algumas técnicas de debug mas sem solução e vim em busca da vossa ajuda. Deixo o código. products.php <?php require_once '../database/database_connection.php'; require_once 'helper.php'; if(!isset($_SESSION['type'])) { header("Location: ../login.php"); die; } if($_SESSION['type']!='master') { header("Location : ../user"); die; } require_once '../templates/header.php'; ?> <section id="breadcrumb"> <div class="container"> <ol class="breadcrumb"> <li><a href="index.php">Dashboard</a></li> <li class="active">Product</li> </ol> </div> </section> <div class="container"> <span id="alert_action"></span> <div class="row"> <div class="col-md-12"> <div class="panel panel-default"> <div class="panel-heading-pink"> <h4 class="text-white">Product List</h4> <button type="button" class="btn btn-blue-grey" id="btnProductModal" data-toggle="modal" data-target="#productModal"><span class="glyphicon glyphicon-plus"></span> New Product</button> </div> <div class="panel-body"> <div class="row"> <div class="col-sm-12 table-responsive"> <table id="product_data" class="table table-bordered table-striped"> <thead> <tr> <th>Product ID</th> <th>Product Name</th> <th>Pais</th> <th>Localização</th> <th>SubLocalização</th> <th>Category</th> <th>Sub Category</th> <th>Brand</th> <th>Supplier</th> <th>Quantity</th> <th>Etiquetas</th> <th>Enter By</th> <th>Status</th> <th>Details</th> <th>Edit</th> <th>Delete</th> </tr> </thead> </table> </div> </div> </div> </div> </div> </div> </div> <div class="modal fade" id="productModal"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button> <h4 class="modal-title text-white"></h4> </div> <div class="modal-body"> <form method="post" id="productFormModal"> <div class="form-group col-md-12"> <label for="productName">Item / Modelo</label> <input type="text" class="form-control" name="productName" id="productName" placeholder="Item / Modelo" required> </div> <div class="form-group col-md-4"> <label for="countryID">Pais</label> <select class="form-control" id="countryID" name="countryID" required> <option value="none" selected disabled hidden> Pais </option> <?php echo selectCountryList($conn); ?> </select> </div> <div class="form-group col-md-4"> <label for="categoryID">Categoria</label> <select class="form-control" id="categoryID" name="categoryID"> <option value="none" selected disabled hidden> Categoria </option> <?php echo selectCategoryList($conn); ?> </select> </div> <div class="form-group col-md-4"> <label for="brandID">Marca</label> <select class="form-control" id="brandID" name="brandID"> <option value="none" selected disabled hidden> Marca </option> <?php echo selectBrandList($conn); ?> </select> </div> <div class="form-group col-md-4"> <label for="locationID">Localização</label> <select class="form-control" id="locationID" name="locationID"> </select> </div> <div class="form-group col-md-4"> <label for="subcategoryID">Sub Categoria</label> <select class="form-control" id="subcategoryID" name="subcategoryID"> <!-- Sub category function --> </select> </div> <div class="form-group col-md-4"> <label for="supplierID">Fornecedor</label> <select class="form-control" id="supplierID" name="supplierID" required> <option value="none" selected disabled hidden> Fornecedor </option> <?php echo selectSupplierList($conn); ?> </select> </div> <div class="form-group col-md-4"> <label for="sublocationID">Sub Localização</label> <select class="form-control" id="sublocationID" name="sublocationID" required> <!-- Sublocation function --> </select> </div> <div class="form-group col-md-8"> <label for="productQuantity">Quantidade</label> <div class="input-group"> <input type="number" class="form-control" id="productQuantity" placeholder="Quantidade" required> <span class="input-group-addon"> <select id="productUnit" name="productUnit" required> <option value="Unit">Unidades</option> <option value="Mts">Metros</option> <option value="Box">Bobine</option> </select> </span> </div> </div> <div class="form-group col-md-12"> <label for="productDescription">Observações</label> <textarea class="form-control" rows="3" name="productDescription" id="productDescription" placeholder="Observações"></textarea> </div> <div class="form-group col-md-6"> <label for="ipaddress">Endereço IP</label> <div class="input-group"> <span class="input-group-addon">IP </span> <input type="text" class="form-control" id="ipaddress"> </div> </div> <div class="form-group col-md-6"> <label for="serialnumber">Número de Serie</label> <div class="input-group"> <span class="input-group-addon">Serial</span> <input type="text" class="form-control" id="serialnumber"> </div> </div> <div class="form-group col-md-4"> <label for="label1">Etiqueta 1</label> <select class="form-control" id="label1" name="label1" required> <option value="none" selected disabled hidden> Etiqueta 1 </option> <?php echo selectLabelList($conn); ?> </select> </div> <div class="form-group col-md-4"> <label for="label2">Etiqueta 2</label> <select class="form-control" id="label2" name="label2" required> <option value="none" selected disabled hidden> Etiqueta 2 </option> <?php echo selectLabelList($conn); ?> </select> </div> <div class="form-group col-md-4"> <label for="label3">Etiqueta 3</label> <select class="form-control" id="label3" name="label3" required> <option value="none" selected disabled hidden> Etiqueta 3 </option> <?php echo selectLabelList($conn); ?> </select> </div> </div> <div class="modal-footer"> <button type="button" class="btn btn-dark" data-dismiss="modal">Cancel</button> <input type="submit" id="productBtnModal" class="btn btn-pink text-white" value=""> </div> </form> </div> </div> </div> <!-- Modal View --> <div class="modal fade" id="viewProductModal" tabindex="-1" role="dialog" aria-labelledby="viewProductModalLabel"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header bg-lightblue"> <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button> <h4 class="modal-title text-white">Product Details</h4> </div> <div class="modal-body"> </div> <div class="modal-footer"> <button type="button" class="btn btn-dark" data-dismiss="modal">Close</button> </div> </div> </div> </div> <div id="deleteProductModal" class="modal fade"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header bg-red"> <button type="button" style="color: #fff;" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button> <h4 class="modal-title text-white"><span class="glyphicon glyphicon-trash"></span> Delete Product</h4> </div> <div class="modal-body"> </div> <div class="modal-footer"> <button type="button" class="btn btn-dark" data-dismiss="modal">Cancel</button> <input type="submit" class="btn btn-danger" id="deleteProductBtn" value="Delete Product"> </div> </div> </div> </div> <script type="text/javascript"> $(document).ready(function(){ const productListInfo = $('#product_data').DataTable({ dom: '<"top"Bif>rt<"bottom"lp><"clear">', buttons: [ 'copy', 'print', 'excel', 'pdf', 'colvis' ], "processing": true, "serverSide": true, "order" : [], "ajax" : { url : 'products_fetch.php', type : 'POST' }, "pageLength" : 10, "columns":[ {"name" : "productID", "orderable":true}, {"name" : "productName", "orderable":true}, {"name" : "countryName", "orderable":true}, {"name" : "locationName", "orderable":true}, {"name" : "sublocationName", "orderable":true}, {"name" : "categoryName", "orderable":true}, {"name" : "subcategoryName", "orderable":true}, {"name" : "brandName", "orderable":true}, {"name" : "supplierName", "orderable":true}, {"name" : "productQuantity", "orderable":true}, {"name" : "productUnit", "orderable":false}, {"name" : "productDescription", "orderable":true}, {"name" : "ipAddress", "orderable":true}, {"name" : "serialNumber", "orderable":true}, {"name" : "label1", "orderable":true}, {"name" : "label2", "orderable":true}, {"name" : "label3", "orderable":true}, {"name" : "userName", "orderable":true}, {"name" : "productStatus", "orderable":true}, {"name" : "Edit", "orderable":false}, {"name" : "View", "orderable":false}, {"name" : "Delete", "orderable":false} ] }); let hasSelectChange = false; let addProductToken = ''; let updateProductToken = ''; let deleteProductToken = ''; $(document).on('click','#btnProductModal', function(){ updateProductToken = '<?php echo hash('sha256', 'abcdef') ?>'; deleteProductToken = "<?php echo hash('sha256', '12345') ?>"; addProductToken = "<?php echo hash('sha256', 'add_product_token') ?>"; $('#productModal .modal-body div').remove('.checkbox'); $('#productFormModal')[0].reset(); $('#productModal .modal-header').removeClass('bg-orange'); $('#productModal .modal-header').removeClass('bg-red'); $('#productModal .modal-header').addClass('bg-pink'); $('#productModal .modal-title').html('<span class="glyphicon glyphicon-plus"></span> Add New Product'); $('#productBtnModal').removeClass('deleteProductSubmit'); $('#productBtnModal').removeClass('btn-warning updateProductSubmit'); $('#productBtnModal').addClass('btn-pink text-white addProductSubmit'); $('#productBtnModal').val('Add New Product'); $('#productBtnModal').removeAttr('update_product_id'); $('#productBtnModal').removeAttr('delete_product_id'); $('#productBtnModal').removeAttr('delete_product_name'); $('#productUnit option').remove('#selectedValue'); $('#productUnit option').remove('#disabledSelected'); $('#productUnit').prepend(`<option value="" id="disabledSelected" disabled selected>Unidade</option>`); //opçoes caixa categoria $('#categoryID option').remove('#categorySelectedValue'); $('#categoryID option').remove('#categoryDisabledSelected'); $('#categoryID').prepend(`<option disabled selected id="categoryDisabledSelected">Categoria</option>`); //opçoes caixa pais $('#countryID option').remove('#countrySelectedValue'); $('#countryID option').remove('#countryDisabledSelected'); $('#countryID').prepend(`<option disabled selected id="countryDisabledSelected">Pais</option>`); //opçoes caixa localização $('#locationID option').remove('#locationSelectedValue'); $('#locationID option').remove('#locationDisabledSelected'); $('#locationID').prepend(`<option disabled selected id="locationDisabledSelected">Localização</option>`); //opçoes caixa sublocalização $('#sublocationID option').remove('#sublocationSelectedValue'); $('#sublocationID option').remove('#sublocationDisabledSelected'); $('#sublocationID').prepend(`<option disabled selected id="sublocationDisabledSelected">Sub Localização</option>`); //opçoes caixa subcategoria $('#subcategoryID option').remove('#subcategorySelectedValue'); $('#subcategoryID option').remove('#subcategoryDisabledSelected'); $('#subcategoryID').prepend(`<option disabled selected id="subcategoryDisabledSelected">Sub Categoria</option>`); //opçoes caixa marca $('#brandID option').remove('#brandSelectedValue'); $('#brandID option').remove('#brandDisabledSelected'); $('#brandID').prepend(`<option disabled selected id="brandDisabledSelected">Marca</option>`); //opçoes caixa fornecedor $('#supplierID option').remove('#supplierSelectedValue'); $('#supplierID option').remove('#supplierDisabledSelected'); $('#supplierID').prepend(`<option disabled selected id="supplierDisabledSelected">Fornecedor</option>`); //opçoes caixa etiqueta 1 $('#label1 option').remove('#label1SelectedValue'); $('#label1 option').remove('#label1DisabledSelected'); $('#label1').prepend(`<option disabled selected id="label1DisabledSelected">Etiqueta 1</option>`); //opçoes caixa etiqueta 2 $('#label2 option').remove('#label2SelectedValue'); $('#label2 option').remove('#label2DisabledSelected'); $('#label2').prepend(`<option disabled selected id="label2DisabledSelected">Etiqueta 2</option>`); //opçoes caixa etiqueta 3 $('#label3 option').remove('#label3SelectedValue'); $('#label3 option').remove('#label3DisabledSelected'); $('#label3').prepend(`<option disabled selected id="label3DisabledSelected">Etiqueta 3</option>`); $('#brandList').html(''); }); //*********************** perceber funcionalidade ***************************** $(document).on('change', '#categoryID', function(){ hasSelectChange = true; const categoryID = $('#categoryID').val(); $.ajax({ url : 'products_manage.php', method : 'POST', data : {'categoryID' : categoryID, 'hasSelectChange' : hasSelectChange}, success:function(data){ $('#brandList').html(data); } }); }); //*************************************************************************** $(document).on('click', '.addProductSubmit', function(event){ event.preventDefault(); $(this).attr('disabled', 'disabled'); const addProductFormData = [ {name : 'addProductToken', value : addProductToken}, {name : 'productName', value : $('#productName').val()}, {name : 'countryID', value : $('#countryID').val()}, {name : 'locationID', value : $('#locationID').val()}, {name : 'sublocationID', value : $('#sublocationID').val()}, {name : 'categoryID', value : $('#categoryID').val()}, {name : 'subcategoryID', value : $('#subcategoryID').val()}, {name : 'brandID', value : $('#brandID').val()}, {name : 'supplierID', value : $('#supplierID').val()}, {name : 'productQuantity', value : $('#productQuantity').val()}, {name : 'productUnit', value : $('#productUnit').val()}, {name : 'productDescription', value : $('#productDescription').val()}, {name : 'ipaddress', value : $('#ipaddress').val()}, {name : 'serialnumber', value : $('#serialnumber').val()}, {name : 'label1', value : $('#label1').val()}, {name : 'label2', value : $('#label2').val()}, {name : 'label3', value : $('#label3').val()}, ]; $.ajax({ url : 'products_manage.php', method : 'POST', data : addProductFormData, success:function(data){ $('#productFormModal')[0].reset(); $('#productModal').modal('hide'); $('#alert_action').fadeIn().html(`<div class="alert alert-info"> <a href="#" class="close" data-dismiss="alert" aria-label="close">&times;</a> <strong>`+ data +`</strong> </div>`); $('#productBtnModal').attr('disabled', false); productListInfo.ajax.reload(); } }); }); $(document).on('click', '.viewProduct', function(){ const productViewID = $(this).attr('id'); const productViewName = $(this).attr('productViewName'); const productViewCountry = $(this).attr('productViewCountry'); const productViewLocation = $(this).attr('productViewLocation'); const productViewSublocation = $(this).attr('productViewSublocation'); const productViewCategory = $(this).attr('productViewCategory'); const productViewSubcategory = $(this).attr('productViewSubcategory'); const productViewBrand = $(this).attr('productViewBrand'); const productViewSupplier = $(this).attr('productViewSupplier'); const productViewQuantity = $(this).attr('productViewQuantity'); const productViewDescription = $(this).attr('productViewDescription'); const productViewIpAddress = $(this).attr('productViewIpAddress'); const productViewSerialNumber = $(this).attr('productViewSerialNumber'); const productViewLabel1 = $(this).attr('productViewLabel1'); const productViewLabel2 = $(this).attr('productViewLabel2'); const productViewLabel3 = $(this).attr('productViewLabel3'); const productViewEnterBy = $(this).attr('productViewEnterBy'); const productViewStatus = $(this).attr('productViewStatus'); console.log(productViewBasePrice); let statusTag = ''; let productDescriptionTag = '' if(productViewDescription==''){ productDescriptionTag = '<td> - </td>' }else{ productDescriptionTag = '<td>'+productViewDescription+'</td>' } if(productViewStatus=='active'){ statusTag = '<td class="text-success" >Activo</td>' }else { statusTag = '<td class="text-danger" >Inactivo</td>' } $('#viewProductModal .modal-body').html(` <table class="table table-striped"> <tr> <td>Product ID</td> <td>`+productViewID+`</td> </tr> <tr> <td>Product Name</td> <td>`+productViewName+`</td> </tr> <tr> <td>Product Country</td> <td>`+productViewCountry+`</td> </tr> <tr> <td>Description</td> `+productViewLocation+` </tr> <tr> <td>Brand</td> <td>`+productViewSublocation+`</td> </tr> <tr> <td>Category</td> <td>`+productViewCategory+`</td> </tr> <tr> <td>Product Quantity</td> <td>`+productViewSubcategory+`</td> </tr> <tr> <td>Enter By</td> <td>`+productViewBrand+`</td> </tr> <tr> <td>Enter By</td> <td>`+productViewSupplier+`</td> </tr> <tr> <td>Enter By</td> <td>`+productViewQuantity+`</td> </tr> <tr> <td>Enter By</td> <td>`+productViewLabels+`</td> </tr> <tr> <td>Enter By</td> <td>`+productViewEnterBy+`</td> </tr> <tr> <td>Enter By</td> <td>`+productViewStatus+`</td> </tr> <tr> <td>Enter By</td> <td>`+productViewDescription+`</td> </tr> <tr> <td>Product Status</td> `+statusTag+` </tr> </table>`); }); $(document).on('click', '.editProduct', function(){ addProductToken = "<?php echo hash('sha256', 'asdfgh') ?>"; deleteProductToken = "<?php echo hash('sha256', '12345') ?>"; updateProductToken = '<?php echo hash('sha256', 'update_product_token') ?>'; $('#productFormModal')[0].reset(); $('#productModal .modal-header').removeClass('bg-pink'); $('#productModal .modal-header').removeClass('bg-red'); $('#productModal .modal-header').addClass('bg-orange'); $('#productModal .modal-title').html('<span class="glyphicon glyphicon-plus"></span>Edit Product'); $('#productBtnModal').removeClass('deleteProductSubmit'); $('#productBtnModal').addClass('btn-warning updateProductSubmit'); $('#productBtnModal').removeClass('btn-pink text-white addProductSubmit'); $('#productBtnModal').val('Edit Product'); $('#productBtnModal').removeAttr('delete_product_id'); $('#productBtnModal').removeAttr('delete_product_name'); const productEditID = $(this).attr('id'); const productEditName = $(this).attr('productEditName'); const productEditDescription = $(this).attr('productEditDescription'); const productEditBrand = $(this).attr('productEditBrand'); const productEditCategory = $(this).attr('productEditCategory'); const productEditQuantity = $(this).attr('productEditQuantity'); const productEditBasePrice = $(this).attr('productEditBasePrice'); const productEditTax = $(this).attr('productEditTax'); const productEditEnterBy = $(this).attr('productEditEnterBy'); const productEditStatus = $(this).attr('productEditStatus'); const productEditBrandID = $(this).attr('productEditBrandID'); const productEditCategoryID = $(this).attr('productEditCategoryID'); const productEditUnit = $(this).attr('productEditUnit'); $('#productBtnModal').attr('update_product_id', productEditID); $('#productModal').modal('show'); $('#productName').val(productEditName); $('#categoryID option').remove('#categorySelectedValue'); $('#categoryID option').remove('#categoryDisabledSelected'); $('#categoryID').prepend(`<option value="`+productEditCategoryID+`" id="categorySelectedValue" selected>`+productEditCategory+`</option>`); $('#productDescription').val(productEditDescription); $('#productQuantity').val(productEditQuantity); $('#productUnit option').remove('#selectedValue'); $('#productUnit option').remove('#disabledSelected'); $('#productUnit').prepend(`<option value="`+productEditUnit+`" id="selectedValue" selected>`+productEditUnit+`</option>`); let checkboxElems = ''; if(productEditStatus== 'active'){ checkboxElems = `<label id="labelStatusProduct"> <input type="checkbox" id="checkboxStatusProduct" checked> Activo </label>`; } else{ checkboxElems = `<label id="labelStatusProduct"> <input type="checkbox" id="checkboxStatusProduct" > Inactivo </label>`; } $('#productModal .modal-body div').remove('.checkbox'); $('#productModal .modal-body').append(`<div class="checkbox"> `+ checkboxElems +` </div>`); }); $(document).on('click', '#checkboxStatusProduct', function(){ let str = $("#labelStatusProduct").text(); let str2 = str.trim(); if(str2=='Activo'){ $("#labelStatusProduct").html(`<input type="checkbox" id="checkboxStatusProduct" > Inactivo`); } else{ $("#labelStatusProduct").html(`<input type="checkbox" id="checkboxStatusProduct" checked > Activo`); } }); $(document).on('click','.updateProductSubmit', function(event){ event.preventDefault(); $(this).attr('disabled', 'disabled'); let str = $("#labelStatusProduct").text(); let str2 = str.trim(); let updateProductStatus = str2.toLowerCase(); const editProductFormData = [ {name : 'updateProductToken', value : updateProductToken}, {name : 'productID', value : $(this).attr('update_product_id')}, {name : 'productName', value : $('#productName').val()}, {name : 'countryID', value : $('#countryID').val()}, {name : 'locationID', value : $('#locationID').val()}, {name : 'sublocationID', value : $('#sublocationID').val()}, {name : 'categoryID', value : $('#categoryID').val()}, {name : 'subcategoryID', value : $('#subcategoryID').val()}, {name : 'brandID', value : $('#brandID').val()}, {name : 'supplierID', value : $('#supplierID').val()}, {name : 'productQuantity', value : $('#productQuantity').val()}, {name : 'productUnit', value : $('#productUnit').val()}, {name : 'productDescription', value : $('#productDescription').val()}, {name : 'ipAddress', value : $('#ipAddress').val()}, {name : 'serialNumber', value : $('#serialNumber').val()}, {name : 'label1', value : $('#label1').val()}, {name : 'label2', value : $('#label2').val()}, {name : 'label3', value : $('#label3').val()}, {name : 'productStatus', value : updateProductStatus} ]; $.ajax({ url : 'products_manage.php', method : 'POST', data : editProductFormData, success:function(data){ $('#productFormModal')[0].reset(); $('#productModal').modal('hide'); $('#alert_action').fadeIn().html(`<div class="alert alert-warning"> <a href="#" class="close" data-dismiss="alert" aria-label="close">&times;</a> <strong>`+ data +`</strong> </div>`); $('#productBtnModal').attr('disabled', false); productListInfo.ajax.reload(); } }); }); $(document).on('click', '.deleteProduct', function(){ addProductToken = "<?php echo hash('sha256', 'asdfgh') ?>"; deleteProductToken = "<?php echo hash('sha256', 'delete_product_token') ?>"; updateProductToken = '<?php echo hash('sha256', 'abcdef') ?>'; $('#productBtnModal').removeClass('btn-warning updateProductSubmit'); $('#productBtnModal').removeClass('btn-pink text-white addProductSubmit'); $('#deleteProductBtn').removeAttr('update_product_id'); $('#deleteProductBtn').attr('delete_product_id', $(this).attr('id')); $('#deleteProductBtn').attr('delete_product_name', $(this).attr('productName')); $('#deleteProductBtn').addClass('deleteProductSubmit'); $('#deleteProductModal .modal-body').html(`<h5 class="text-black"> Are You Sure Want to Permanently Delete <strong>"`+ $(this).attr('productName') +`"</strong> Product ?</h5>`) }); $(document).on('click','.deleteProductSubmit', function(event){ event.preventDefault(); $('#deleteProductBtn').attr('disabled', 'disabled'); deleteProductSubmit = true; const deleteProductFormData = [ {name : 'deleteProductToken', value : deleteProductToken}, {name : 'productID', value : $(this).attr('delete_product_id')}, {name : 'productName', value : $(this).attr('delete_product_name')} ]; $.ajax({ url : 'products_manage.php', method : 'POST', data : deleteProductFormData, success:function(data){ $('#deleteProductModal').modal('hide'); $('#alert_action').fadeIn().html(`<div class="alert alert-danger"> <a href="#" class="close" data-dismiss="alert" aria-label="close">&times;</a> <strong>`+ data +`</strong> </div>`); $('#deleteProductBtn').attr('disabled', false); productListInfo.ajax.reload(); } }) }); }); $("#countryID").change(function(){ var deptid = $('#countryID').find(":selected").val(); $.ajax({ url: 'get_locations.php', type: 'post', data: {country:deptid}, success:function(response){ $('#locationID').empty() .append('<option value="" id="disabledSelected" disabled="" selected="">Select Location</option>') .append(response); } }); }); $("#locationID").change(function(){ var deptid = $('#locationID').find(":selected").val(); $.ajax({ url: 'get_sublocations.php', type: 'post', data: {location:deptid}, success:function(response){ $('#sublocationID').empty() .append('<option value="" id="disabledSelected" disabled="" selected="">Sub Localização</option>') .append(response); } }); }); $("#categoryID").change(function(){ var deptid = $('#categoryID').find(":selected").val(); $.ajax({ url: 'get_subcategories.php', type: 'post', data: {category:deptid}, success:function(response){ $('#subcategoryID').empty() .append('<option value="" id="disabledSelected" disabled="" selected="">Sub Categoria</option>') .append(response); } }); }); </script> <?php require_once '../templates/footer.php'; ?> products_manage.php <?php require_once '../database/database_connection.php'; require_once 'helper.php'; if(!isset($_SESSION['type'])) { header("Location: ../login.php"); die; } if($_SESSION['type']!='master') { header("Location : ../user"); die; } // if(isset($_POST['hasSelectChange'])) // { // if($_POST['hasSelectChange']==true) // { // echo selectProductList($conn, $_POST['categoryID']) ; // } // } if(isset($_POST['addProductToken'])) { $token = hash('sha256', 'add_product_token'); if($_POST['addProductToken']===$token) { if(htmlspecialchars($_POST['productName']!='') && htmlspecialchars($_POST['productQuantity']!='') && htmlspecialchars($_POST['productUnit']!='')) { if(is_numeric(htmlspecialchars($_POST['productQuantity'])) && !is_numeric(htmlspecialchars($_POST['productName']))) { $query = "INSERT INTO products (productName, countryID, locationID, sublocationID, , categoryID, subcategoryID, brandID, supplierID, productQuantity, productUnit, productDescription, ipAddress, serialNumber, label1, label2, label3, productEnterBy, productStatus, productDate) VALUES(:productName, :countryID, :locationID, :sublocationID, :categoryID, :subcategoryID, :brandID, :supplierID, :productQuantity, :productUnit, :productDescription, :ipAddress, :serialNumber, :label1, :label2, :label3, :productEnterBy, :productStatus, :productDate)"; $stmt = $conn->prepare($query); $stmt->execute([ ':productName' => htmlspecialchars($_POST['productName']), ':countryID' => htmlspecialchars($_POST['countryID']), ':locationID' => htmlspecialchars($_POST['locationID']), ':sublocationID' => htmlspecialchars($_POST['sublocationID']), ':categoryID' => htmlspecialchars($_POST['categoryID']), ':subcategoryID' => htmlspecialchars($_POST['subcategoryID']), ':brandID' => htmlspecialchars($_POST['brandID']), ':supplierID' => htmlspecialchars($_POST['supplierID']), ':productQuantity' => htmlspecialchars($_POST['productQuantity']), ':productUnit' => htmlspecialchars($_POST['productUnit']), ':productDescription' => htmlspecialchars($_POST['productDescription']), ':ipAddress' => htmlspecialchars($_POST['ipAddress']), ':serialNumber' => htmlspecialchars($_POST['serialNumber']), ':label1' => htmlspecialchars($_POST['label1']), ':label2' => htmlspecialchars($_POST['label2']), ':label3' => htmlspecialchars($_POST['label3']), ':productEnterBy' => $_SESSION['userID'], ':productStatus' => 'active', ':productDate' => date('Y-m-d') ]); $result = $stmt->rowCount(); if($result > 0) { echo "New Product Added!"; } else { die('Failed to execute! an error occured.'); } } else { die('Product Name can not filled by numeric or Product Quantity, must be filled by numeric.'); } } else { die('Please fill Product Name, Product Quantity and Product Unit Field.'); } } else { die('Failed to execute! an error occured.'); } } if(isset($_POST['updateProductToken'])) { $token = hash('sha256', 'update_product_token'); if($_POST['updateProductToken']===$token) { if(htmlspecialchars($_POST['brandID'])!='' && htmlspecialchars($_POST['categoryID']!='') && htmlspecialchars($_POST['productName']!='') && htmlspecialchars($_POST['productQuantity']!='') && htmlspecialchars($_POST['productBasePrice']!='') && htmlspecialchars($_POST['productTax']!='') && htmlspecialchars($_POST['productUnit']!='')) { if(is_numeric(htmlspecialchars($_POST['productBasePrice'])) && is_numeric(htmlspecialchars($_POST['productTax'])) && is_numeric(htmlspecialchars($_POST['productQuantity'])) && !is_numeric(htmlspecialchars($_POST['productName']))) { $query = "UPDATE product SET categoryID = :categoryID, brandID = :brandID, productName = :productName, productDescription = :productDescription, productBasePrice = :productBasePrice, productQuantity = :productQuantity, productUnit = :productUnit, productTax = :productTax , productStatus = :productStatus WHERE productID = :productID"; $stmt = $conn->prepare($query); $stmt->execute([ ':categoryID' => htmlspecialchars($_POST['categoryID']), ':brandID' => htmlspecialchars($_POST['brandID']), ':productName' => htmlspecialchars($_POST['productName']), ':productDescription' => htmlspecialchars($_POST['productDescription']), ':productBasePrice' => htmlspecialchars(preg_replace('/[^0-9]/', '', $_POST['productBasePrice'])), ':productQuantity' => htmlspecialchars($_POST['productQuantity']), ':productUnit' => htmlspecialchars($_POST['productUnit']), ':productTax' => htmlspecialchars(preg_replace('/[^0-9]/', '', $_POST['productTax'])), ':productStatus' => htmlspecialchars($_POST['productStatus']), ':productID' => htmlspecialchars($_POST['productID']) ]); $result = $stmt->rowCount(); if($result > 0) { echo "Product Edited"; } else { die('Failed to edit product An error occured.'); } } else { die('Product Name can not filled by numeric or Product Quantity, Product Base Price, Product Quantity, and Product Tax must filled by numeric.'); } } else { die('Please fill Product Name, Product Quantity, Product Base Price, Product Tax, and Product Unit Field.'); } } else { die('Failed to execute! an error occured.'); } } if(isset($_POST['deleteProductToken'])) { $token = hash('sha256', 'delete_product_token'); if($_POST['deleteProductToken']===$token) { $query = "DELETE FROM product WHERE productID = :productID"; $stmt = $conn->prepare($query); $stmt->execute([':productID' => htmlspecialchars($_POST['productID'])]); $result = $stmt->rowCount(); if($result > 0) { echo $_POST['productName']." has been deleted!"; } else { die('Failed to execute! an error occured.'); } } else { die('Failed to execute! an error occured.'); } } products_fetch.php <?php require_once '../database/database_connection.php'; if(!isset($_SESSION['type'])) { header("Location: ../login.php"); die; } if($_SESSION['type']!='master') { header("Location : ../user"); die; } $query = ''; $output = []; $query .= "Select * From product"; if(isset($_POST['search']['value'])) { if($_POST['search']['value'] != '') { $query .= 'WHERE product.productID LIKE "%'. $_POST["search"]["value"] .'%" '; $query .= 'OR product.productName LIKE "%'. $_POST["search"]["value"] .'%" '; $query .= 'OR category.categoryName LIKE "%'. $_POST["search"]["value"] .'%" '; $query .= 'OR brand.brandName LIKE "%'. $_POST["search"]["value"] .'%" '; $query .= 'OR user.userName LIKE "%'. $_POST["search"]["value"] .'%" '; $query .= 'OR product.productQuantity LIKE "%'. $_POST["search"]["value"] .'%" '; $query .= 'OR product.productStatus LIKE "%'. $_POST["search"]["value"] .'%" '; } } if(isset($_POST["order"])) { $tes = $_POST['order'][0]["column"]; $query .= ' ORDER BY '.$_POST["columns"][$tes]["name"].' '.$_POST["order"]["0"]["dir"].''; } else { $query .= "ORDER BY productID DESC"; } if(isset($_POST['length'])) { if($_POST["length"] != -1) { $query .= ' LIMIT '. $_POST['start'].', '. $_POST['length']; } } $stmt = $conn->prepare($query); $stmt->execute(); $result = $stmt->fetchAll(); $data = []; $filtered_rows = $stmt->rowCount(); foreach($result as $row) { $status = ''; if($row['productStatus']=='active') { $status = '<p class="text-success">Active</p>'; } else { $status = '<p class="text-danger">Inactive</p>'; } $sub_array = []; $sub_array[] = $row['productID']; $sub_array[] = $row['productName']; $sub_array[] = $row['categoryName']; $sub_array[] = $row['brandName']; $sub_array[] = $row['productQuantity'].' '.$row['productUnit']; $sub_array[] = $row['userName']; $sub_array[] = $status; $sub_array[] = '<button type="button" id="'.$row["productID"].'" class ="btn btn-info btn-xs viewProduct" productViewName="'.$row["productName"].'" productViewBrand="'.$row["brandName"].'" productViewCategory="'.$row["categoryName"].'" productViewBasePrice="'.$row["productBasePrice"].'" productViewQuantity="'.$row["productQuantity"].'" productViewTax="'.$row["productTax"].'" productViewEnterBy="'.$row["userName"].'" productViewStatus="'.$row["productStatus"].'" productViewDescription="'.$row["productDescription"].'" data-toggle="modal" data-target="#viewProductModal" >View</button>'; $sub_array[] = '<button type="button" id="'.$row["productID"].'" class ="btn btn-warning btn-xs editProduct" productEditName="'.$row["productName"].'" productEditBrand="'.$row["brandName"].'" productEditCategory="'.$row["categoryName"].'" productEditBasePrice="'.$row["productBasePrice"].'" productEditQuantity="'.$row["productQuantity"].'" productEditTax="'.$row["productTax"].'" productEditEnterBy="'.$row["userName"].'" productEditStatus="'.$row["productStatus"].'" productEditDescription="'.$row["productDescription"].'" productEditCategoryID="'.$row["categoryID"].'" productEditBrandID="'.$row["brandID"].'" productEditUnit="'.$row["productUnit"].'">Edit</button>'; $sub_array[] = '<button type="button" id="'.$row["productID"].'" class ="btn btn-danger btn-xs deleteProduct" productName="'.$row["productName"].'" data-toggle="modal" data-target="#deleteProductModal">Delete</button>'; $data[] = $sub_array; } $draw = ''; if(isset($_POST['draw'])) { $draw = $_POST['draw']; } $output = [ "draw" => intval($draw), "recordsTotal" => $filtered_rows, "recordsFiltered" => getTotalAllRecords($conn), "data" => $data ]; echo json_encode($output); function getTotalAllRecords($conn) { $stmnt = $conn->prepare("SELECT * FROM product "); $stmnt->execute(); return $stmnt->rowCount(); } O meu formulário funciona bem no sentido de devolver as consultas durante o seu preenchimento. https://imgur.com/a/Hi5z04u P.S. Não liguem ao CSS.. é algo que ainda ando a debater-me visto que alguns imports não permitem que os meus botões da datatable apareçam devidamente. O helper.php detém as funções públicas <?php require_once '../database/database_connection.php'; if(!isset($_SESSION['type'])) { header("Location: ../login.php"); die; } function selectCategoryList($conn) { if($_SESSION['type']!='master') { header("Location : ../user"); die; } $query = "SELECT * FROM category WHERE categoryStatus ='active' ORDER BY categoryName ASC "; $stmt = $conn->prepare($query); $stmt->execute(); $result = $stmt->fetchAll(); $output = ''; foreach($result as $r) { $output .= '<option class="categoryList" value="'.$r['categoryID'].'">'.$r['categoryName'].'</option>'; } return $output; } function selectCountryList($conn) { if($_SESSION['type']!='master') { header("Location : ../user"); die; } $query = "SELECT * FROM country WHERE countryStatus ='active' ORDER BY countryName ASC "; $stmt = $conn->prepare($query); $stmt->execute(); $result = $stmt->fetchAll(); $output = ''; foreach($result as $r) { $output .= '<option class="countryList" value="'.$r['countryID'].'">'.$r['countryName'].'</option>'; } return $output; } function selectLabelList($conn) { if($_SESSION['type']!='master') { header("Location : ../user"); die; } $query = "SELECT * FROM label WHERE labelStatus ='active' ORDER BY labelName ASC "; $stmt = $conn->prepare($query); $stmt->execute(); $result = $stmt->fetchAll(); $output = ''; foreach($result as $r) { $output .= '<option class="labelList" value="'.$r['labelID'].'">'.$r['labelName'].'</option>'; } return $output; } function selectBrandList($conn) { if($_SESSION['type']!='master') { header("Location : ../user"); die; } $query = "SELECT * FROM brand WHERE brandStatus ='active' ORDER BY brandName ASC "; $stmt = $conn->prepare($query); $stmt->execute(); $result = $stmt->fetchAll(); $output = ''; foreach($result as $r) { $output .= '<option class="brandList" value="'.$r['brandID'].'">'.$r['brandName'].'</option>'; } return $output; } function selectSupplierList($conn) { if($_SESSION['type']!='master') { header("Location : ../user"); die; } $query = "SELECT * FROM supplier WHERE supplierStatus ='active' ORDER BY supplierName ASC "; $stmt = $conn->prepare($query); $stmt->execute(); $result = $stmt->fetchAll(); $output = ''; foreach($result as $r) { $output .= '<option class="supplierList" value="'.$r['supplierID'].'">'.$r['supplierName'].'</option>'; } return $output; } function selectLocationList($conn) { if($_SESSION['type']!='master') { header("Location : ../user"); die; } $stmt = $conn->prepare($query); $stmt->execute(); $result = $stmt->fetchAll(); $output = ''; foreach($result as $r) { $output .= '<option class="locationList" value="'.$r['locationID'].'">'.$r['locationName'].'</option>'; } return $output; } function selectProductList($conn) { if($_SESSION['type']!='master') { header("Location : ../user"); die; } $query = "SELECT * FROM product WHERE productStatus = 'active' ORDER BY productID ASC "; $stmt = $conn->prepare($query); $stmt->execute(); $result = $stmt->fetchAll(); $output = ''; if(!empty($result)) { $output .= '<label for="brandID">Brand</label> <select class="form-control" id="brandID" name="brandID" required>'; foreach($result as $r) { $output .= '<option class="brandList" value="'.$r['brandID'].'">'.$r['brandName' ].'</option>'; } $output .= '</select>'; } else { $output .= '<p class="text-danger">Erro. </p>'; } return $output; } function getUserName($conn, $userID) { $query = "SELECT userName FROM user WHERE userID = '".$userID."' "; $stmt = $conn->prepare($query); $stmt->execute(); $result = $stmt->fetchAll(); foreach($result as $r) { return $r['userName']; } } function getAllProduct($conn) { $query = "SELECT productID FROM product WHERE productStatus='active'"; $stmt = $conn->prepare($query); $stmt->execute(); $result = $stmt->fetchAll(); $data = []; foreach ($result as $r) { $data[]=$r['productID']; } return $data; } function getProductByID($productID, $conn) { $query = "SELECT * FROM product WHERE productID = '".$productID."' "; $stmt = $conn->prepare($query); $stmt->execute(); $result = $stmt->fetchAll(); $data = []; foreach ($result as $r) { $data[] = $r['productBasePrice']; $data[] = $r['productTax']; $data[] = $r['productQuantity']; $data[] = $r['productName']; } return $data; } A minha BD -- phpMyAdmin SQL Dump -- version 5.0.1 -- https://www.phpmyadmin.net/ -- -- Host: 127.0.0.1 -- Tempo de geração: 16-Mar-2020 às 11:50 -- Versão do servidor: 10.4.11-MariaDB -- versão do PHP: 7.4.3 SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; SET AUTOCOMMIT = 0; 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: `inventory_management` -- -- -------------------------------------------------------- -- -- Estrutura da tabela `brand` -- CREATE TABLE `brand` ( `brandID` int(12) NOT NULL, `brandName` varchar(100) DEFAULT NULL, `brandStatus` enum('active','inactive') DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- -------------------------------------------------------- -- -- Estrutura da tabela `category` -- CREATE TABLE `category` ( `categoryID` int(12) NOT NULL, `categoryName` varchar(100) DEFAULT NULL, `categoryStatus` enum('active','inactive') DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- -------------------------------------------------------- -- -- Estrutura da tabela `country` -- CREATE TABLE `country` ( `countryID` int(12) NOT NULL, `countryName` varchar(100) DEFAULT NULL, `countryStatus` enum('active','inactive') DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- -------------------------------------------------------- -- -- Estrutura da tabela `label` -- CREATE TABLE `label` ( `labelID` int(12) NOT NULL, `labelName` varchar(100) DEFAULT NULL, `labelStatus` enum('active','inactive') DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- -------------------------------------------------------- -- -- Estrutura da tabela `location` -- CREATE TABLE `location` ( `locationID` int(12) NOT NULL, `countryID` int(12) NOT NULL, `locationName` varchar(100) DEFAULT NULL, `locationStatus` enum('active','inactive') DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- -------------------------------------------------------- -- -- Estrutura da tabela `product` -- CREATE TABLE `product` ( `productID` int(12) NOT NULL, `productName` varchar(100) NOT NULL, `countryID` int(12) NOT NULL, `locationID` int(12) NOT NULL, `sublocationID` int(12) NOT NULL, `categoryID` int(12) NOT NULL, `subcategoryID` int(12) NOT NULL, `brandID` int(12) NOT NULL, `supplierID` int(12) NOT NULL, `productQuantity` int(11) NOT NULL, `productUnit` varchar(50) NOT NULL, `productDescription` varchar(200) NOT NULL, `ipAddress` varchar(15) NOT NULL, `serialNumber` varchar(50) NOT NULL, `label1` int(11) NOT NULL, `label2` int(11) NOT NULL, `label3` int(11) NOT NULL, `productEnterBy` int(11) NOT NULL, `productStatus` enum('active','inactive') NOT NULL, `productDate` date NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- -------------------------------------------------------- -- -- Estrutura da tabela `subcategory` -- CREATE TABLE `subcategory` ( `subcategoryID` int(12) NOT NULL, `categoryID` int(12) NOT NULL, `subcategoryName` varchar(100) DEFAULT NULL, `subcategoryStatus` enum('active','inactive') DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- -------------------------------------------------------- -- -- Estrutura da tabela `sublocation` -- CREATE TABLE `sublocation` ( `sublocationID` int(12) NOT NULL, `locationID` int(12) NOT NULL, `sublocationName` varchar(100) DEFAULT NULL, `sublocationStatus` enum('active','inactive') DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- -------------------------------------------------------- -- -- Estrutura da tabela `supplier` -- CREATE TABLE `supplier` ( `supplierID` int(12) NOT NULL, `supplierName` varchar(100) DEFAULT NULL, `supplierStatus` enum('active','inactive') DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- -------------------------------------------------------- -- -- Estrutura da tabela `user` -- CREATE TABLE `user` ( `userID` int(11) NOT NULL, `userEmail` varchar(70) DEFAULT NULL, `userPassword` varchar(100) DEFAULT NULL, `userName` varchar(50) DEFAULT NULL, `userType` enum('master','user') DEFAULT NULL, `userStatus` enum('active','inactive') DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- -- Índices para tabelas despejadas -- -- -- Índices para tabela `brand` -- ALTER TABLE `brand` ADD PRIMARY KEY (`brandID`); -- -- Índices para tabela `category` -- ALTER TABLE `category` ADD PRIMARY KEY (`categoryID`); -- -- Índices para tabela `country` -- ALTER TABLE `country` ADD PRIMARY KEY (`countryID`); -- -- Índices para tabela `label` -- ALTER TABLE `label` ADD PRIMARY KEY (`labelID`); -- -- Índices para tabela `location` -- ALTER TABLE `location` ADD PRIMARY KEY (`locationID`); -- -- Índices para tabela `product` -- ALTER TABLE `product` ADD PRIMARY KEY (`productID`); -- -- Índices para tabela `subcategory` -- ALTER TABLE `subcategory` ADD PRIMARY KEY (`subcategoryID`); -- -- Índices para tabela `sublocation` -- ALTER TABLE `sublocation` ADD PRIMARY KEY (`sublocationID`); -- -- Índices para tabela `supplier` -- ALTER TABLE `supplier` ADD PRIMARY KEY (`supplierID`); -- -- Índices para tabela `user` -- ALTER TABLE `user` ADD PRIMARY KEY (`userID`); -- -- AUTO_INCREMENT de tabelas despejadas -- -- -- AUTO_INCREMENT de tabela `brand` -- ALTER TABLE `brand` MODIFY `brandID` int(12) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=7018; -- -- AUTO_INCREMENT de tabela `category` -- ALTER TABLE `category` MODIFY `categoryID` int(12) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=10018; -- -- AUTO_INCREMENT de tabela `country` -- ALTER TABLE `country` MODIFY `countryID` int(12) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=16006; -- -- AUTO_INCREMENT de tabela `label` -- ALTER TABLE `label` MODIFY `labelID` int(12) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=50009; -- -- AUTO_INCREMENT de tabela `location` -- ALTER TABLE `location` MODIFY `locationID` int(12) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=14021; -- -- AUTO_INCREMENT de tabela `product` -- ALTER TABLE `product` MODIFY `productID` int(12) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=100001; -- -- AUTO_INCREMENT de tabela `subcategory` -- ALTER TABLE `subcategory` MODIFY `subcategoryID` int(12) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=18013; -- -- AUTO_INCREMENT de tabela `sublocation` -- ALTER TABLE `sublocation` MODIFY `sublocationID` int(12) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=15003; -- -- AUTO_INCREMENT de tabela `user` -- ALTER TABLE `user` MODIFY `userID` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=6006; 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 */; Já ando a partir a cabeça à 3 dias de volta disto. Conseguem ajudar por favor ?
  3. Já tentei usar o código do utilizador eskiso. Primeiro pensei que era o meu servidor a bloquear o pedido. Da me a sensação que o pedido não é feito de todo. Não importa se faço para o 401 ou para o 701 o erro é sempre o mesmo. Tenho o seguinte erro ao tentar conectar webservice: Unknown SSL protocol error in connection to servicos.portaldasfinancas.gov.pt:701 35 Já tentei várias versões do código e nunca: <?php $SoapAction = "https://servicos.portaldasfinancas.gov.pt:701/sgdtws/documentosTransporte/"; //$SoapAction = "https://servicos.portaldasfinancas.gov.pt:401/sgdtws/documentosTransporte/"; $Action = "https://servicos.portaldasfinancas.gov.pt:701/sgdtws/documentosTransporte"; //Action = "https://servicos.portaldasfinancas.gov.pt:401/sgdtws/documentosTransporte"; $cert_pem = 'pfxcert.pem'; //Caminho completo para o pfxcert.pem ou so o nome se estiver na mesma pasta $key_pem = 'pfxKey.pem'; //Caminho completo para o pfxKey.pem ou so o nome se estiver na mesma pasta $pass_cert = 'TESTEwebservice'; $curl = curl_init(trim($Action)); curl_setopt($curl, CURLOPT_FRESH_CONNECT, TRUE); curl_setopt($curl, CURLOPT_HTTPHEADER,array( 'Content-Type:text/xml;Charset=UTF-8', 'Accept: text/xml', 'Cache-Control: no-cache', 'SoapAction='.$SoapAction )); curl_setopt($curl, CURLOPT_URL, trim($Action)); curl_setopt($curl, CURLOPT_SSLVERSION, 3); curl_setopt($curl, CURLOPT_VERBOSE, TRUE); // para ver o que se passa... curl_setopt($curl, CURLOPT_AUTOREFERER, TRUE); curl_setopt($curl, CURLOPT_POST, 1); //curl_setopt($curl, CURLOPT_POSTFIELDS, $xml); curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($curl, CURLOPT_SSLCERT, $cert_pem); // o certificado em formato PEM (.pem) curl_setopt($curl, CURLOPT_SSLCERTTYPE, 'PEM'); curl_setopt($curl, CURLOPT_SSLCERTPASSWD, $pass_cert); curl_setopt($curl, CURLOPT_SSLKEY, $key_pem); curl_setopt($curl, CURLOPT_SSLKEYPASSWD, $pass_cert); curl_setopt($curl, CURLOPT_SSLKEYTYPE, 'PEM'); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $response = curl_exec($curl); $info = curl_getinfo($curl); print_r( $response ); print_r( $info ); if (FALSE === $response) { print_r( curl_error($curl) ); print_r( curl_errno($curl) ); } (tirei propositadamente o $xml do código mas não importa dá sempre o mesmo erro) Agradecia de saber se alguém tem solução para este problema que pudesse ajudar mesmo resolver o problema pagando. Mas precisava mesmo de saber qual o problema e solução. Desde já muito obrigado.
  4. noname346

    Filtrar por data inicio e data final

    Eu estou a fazer um estágio e propuseram um software web-based de facturação de salão de beleza e com isso como trabalho de estágio e com isso estou a fazer e fiquei impedido num filtro que me pediram para fazer num dos menus e o filtro é de data inicio e data fim. Código: <?php $sql = 'SELECT * FROM custos'; $resultado = mysqli_query($ligacao,$sql) or die("Não tem dados para apresentar !"); ?> Data Inicial <input id="datainicial" name="datainicial" type = 'date'> Data Final <input id="datafinal" name="datafinal" type = 'date'> <input type="submit" class="button3" value = "Buscar"> <p></p> <table style="width: 50%;" border='0' id="table" name="table"> <thead> <tr> <th width="10%" align='center' bgcolor='#baba84'>Data</th> <th width="25%" align='center' bgcolor='#baba84'>Nome do custo</th> <th width="8%" align='center' bgcolor='#baba84'>Valor</th> </tr> </thead> <tbody> <?php $total_valor = 0; while($registo = mysqli_fetch_assoc($resultado)){ $valor=number_format($registo['valor'], 2, ',', ' ')."€"; echo '<tr>'; echo'<td align="left" bgcolor="white">'.date('d/m/Y', strtotime($registo['data'])).'</td>'; echo'<td bgcolor="white">'.$registo['nome_custo'].'</td>'; echo "<td align='left' bgcolor='white'>".$valor."</td>"; print ("<td bgcolor='white' width='1%'><a href='alterar_custos.php?num={$registo['num']}&data={$registo['data']}&nome={$registo['nome_custo']}&valor={$registo['valor']}' class='button2'><i class='fa fa-edit'></i></</a></td>"); print ("<td bgcolor='white' width='1%'><a href='eliminar_custos.php?num={$registo['num']}' class='button2'><i class='fa fa-trash'></i></</a></td>"); echo'</tr>'; $total_valor += $registo['valor']; } ?> </tbody> <tfoot> <tr> <td align='left' colspan='2' bgcolor='#baba84'><b>Valor Total</b></td> <td align='left' bgcolor='white'><?php echo number_format($total_valor, 2, ',', ' ')."€"; ?></td> </tr> </tfoot><!----> </table> <?php mysqli_close($ligacao); ?>
  5. 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.
  6. 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.
  7. joaquim

    Insert com php

    Boa tarde pessoal. Alguém poderia me ajudar com este php: <?php if($row_rsVotacao['FAVOR'] > $row_rsVotacao['CONTRA']){ $situacao = "Aprovado"; }else{ $situacao = "Reprovado"; } echo $situacao; $sql="INSERT INTO votacao (ptc_situacao) VALUES ('$situacao')"; ?> a $situacao é gravada no formulario más não é gravada o resultado no banco de dados, onde será que esta o erro? Desde já agradeço.
  8. Bom dia pessoal. Será que alguém poderia me ajudar a respeito de uma tabela mysql? è o seguinte: tenho uma tabela voto, nela contem as colunas: id,voto1, voto2,voto3 e resultado. Gostaria que o select somasse os votos e se a maioria fosse "Sim" a coluna resultado teria o valor "Sim" se não o resultado teria valor "Não". Desde já agradeço
  9. chicote

    Carregar ficheiro php com jquery

    Olá, Em primeiro peço desculpa se a pergunta não for bem estruturada. Estou a contruir um sistema de gestão de conteudo/stocks e afins.. Deixo em baixo um print screen onde tento explicar como esta estrurada as pastas/directorias. No ficheiro index.php tenho o seguinte: <?PHP require_once('sistema/functions.php'); require_once('control/head_load_script.php'); corpo_main(); require_once('control/footer.php'); ?> No ficheiro root/sistema/functions.php tenho as seguintes funcções: function getLang(){ if(!empty($_SESSION['usuarioID']) == '' ){ if(isSet($_GET['lang'])){ $lang = $_GET['lang']; $_SESSION['lang'] = $lang; setcookie("lang", $lang, time() + (3600 * 24 * 30)); } else if(isSet($_SESSION['lang'])){ $lang = $_SESSION['lang']; } else if(isSet($_COOKIE['lang'])){ $lang = $_COOKIE['lang']; } else{ if(getSystemInfo('site_lang') == ''){ $lang = "pt"; } else { $lang = getSystemInfo('site_lang'); } } include_once 'lang/lang.'.$lang.'.php'; } else { $lang = getuserinfo('lang'); include_once 'lang/lang.'.$lang.'.php'; } DEFINE('langTag', $lang); } getLang(); function corpo_main(){ if (!isset($_SESSION['usuarioID'])) { session_destroy(); require_once('control/login.php'); } else { require_once('control/header.php'); require_once('control/corpo.php'); } } Nos ficheiros root/lang/lang.pt.php ou lang.en.php tenho o seguinte: (entre outras traduções) DEFINE('users','Utilizadores'); No ficheiro root/js/main.js tenho: getPage = function(page,title){ $("#main-panel-body").empty(); $( "#main-panel-body" ).load( "control/loader.html" ); setTimeout(function(){ $( "#main-panel-body" ).load( "sistema/corpos/"+page+".php" ); $("#main-panel-body").empty(); }, 2000); document.title = title; } No ficheiro control/corpo.php, tenho uma DIV Com o ID main-panel-body, quando substituo o conteudo dessa div, atraves do jquery que mostro em cima, pelo conteudo do ficheiro root/sistema/corpos/users.php, não carrega as variaveis em php que o ficheiro users.php tem, como por exemplo variaveis de tradução. Emite um erro. Deixo em baixo o erro: Warning: Use of undefined constant users - assumed 'users' (this will throw an Error in a future version of PHP) in O que estou eu a fazer de mal? Obrigado.
  10. Ricardo Lopes

    Symfony 4 - Dúvida Sobre o Stripe

    Bom Dia Programadores, espero que todos tenham tido umas excelentes entradas em 2020 , a minha questão é a seguinte: Estou a fazer uma implementação do stripe num projecto e queria saber se é possível passar o valor data-name da tag script da página twig para o controller? <script src="https://checkout.stripe.com/checkout.js" class="stripe-button" data-key="Key" data-amount="{{ productBundles.price * 100 }}" data-name="{{ productBundles.title }}" data-description="{{productBundles.description }}" data-image="https://stripe.com/img/documentation/checkout/marketplace.png" data-locale="auto"> </script> para dentro desta função no controller public function promoteAnuncio(EntityManagerInterface $entityManager,Request $request,int $productId) { $productBundleRepository = $this->getDoctrine()->getRepository(ProductBundle::class); $productBundle = $productBundleRepository->findAll(); $productRepository = $entityManager->getRepository('App:Product')->findOneBy(['id' => $productId]); } os bundles estão num ArrayCollection e o que eu quero "apanhar" é o bundle seleccionado
  11. Boa tarde. Estou a fazer um BackOffice que vai permitir ao utilizador editar,eliminar e criar um novo site em HTML. Eu já tenho o template todo produzido do site que será editado, porém só consigo editar esse site a partir de código,ou seja, todas as fotos e todos os textos teriam que ser introduzidos por código, algo que não quero. Quero que o utilizador consiga fazer tudo a partir de um programa(a partir do BackOffice) que edite o site de forma a que nunca seja preciso usar o código HTML em nenhuma ocasião. Todo o meu BackOffice é em PHP, enquanto que os sites em questão são todos HTML. Alguma ideia para o meu problema?
  12. Adampt

    Recibo de envio de email

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

    Email no BackOffice

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

    Saf-t para seguradoras

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

    Sistema de senhas

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

    Problemas com acentuação e PDO

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

    Fizzbuzz

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

    Sistema de Login com password_verify em PDO

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

    Erro a ligar a servidores

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

    Imprimir PDF via PHP

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

    Administração de Loja

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

    Erro ao ler o ficheiro XML

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

    Erro de uma ficha em PHP

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