Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: geshiro en 12 Julio 2016, 01:36 am



Título: como podria mostrar el id cifrada sin que pierda los datos al mostrarlo
Publicado por: geshiro en 12 Julio 2016, 01:36 am
al momento de querer cifrar el id que muestra es lo que trae la tabla de la base de datos pero no lo ocupo de esa manera si no cifrada pero no como mandarla ya que lo muestro por js y no con un simple echo md5(id);
controller
Código
  1. case 'search':
  2. $main = 0;
  3.        $limit = 3;
  4.        if (isset($_POST['page'])) {
  5.         $page = $_POST['page'];
  6.            $main = ($page - 1) * $limit;
  7.        }
  8.        $id = $_POST['id'];
  9. $search = new product();
  10. $__result= $search->searchProduct($id);
  11. $__Result = count($__result);
  12. $final_result = $search->searchProduct($id,$main,$limit);
  13. echo json_encode($final_result)."*".$__Result;
  14. break;
  15.  
  16. case 'update':
  17. $id = $_POST['id'];
  18. $editCode = $_POST['editCode'];
  19. $editProduct = $_POST['editProduct'];
  20. $editPrice = $_POST['editPrice'];
  21. $editStock = $_POST['editStock'];
  22. $update = new product();
  23. if($update->update($id,$editCode,$editProduct,$editPrice,$editStock)){
  24. $stock = $update->getProductStock($id);
  25. if ($stock > 20) {
  26. notification::removeNotifications($id);
  27. }
  28. echo 'sucess';
  29.  
  30. }else{
  31. echo "No se Actualizo los datos";
  32. }
  33. break;
  34.  

model
Código
  1. function searchProduct($id,$main=false,$limit=false){
  2. if($main !== false && $limit !== false){
  3. $sql="SELECT idproduct,code,product,purchase_price,stock,product.status FROM product  WHERE code like '%".$id."%' or product like '%".$id."%' ORDER BY idproduct ASC LIMIT $main,$limit";
  4. }else{
  5. $sql="SELECT idproduct,code,product,purchase_price,stock,product.status FROM product  WHERE code like '%".$id."%' or product like '%".$id."%' ORDER BY idproduct";
  6. }
  7. $this->conexion->conexion->set_charset('utf8');
  8. $result=$this->conexion->conexion->query($sql);
  9. $array = array();
  10. while($record = $result->fetch_array(MYSQLI_NUM)){
  11. $array[] = $record;
  12. }
  13. return $array;
  14. $this->conexion->cerrar();
  15. }
  16.  

ajax
Código
  1. function searchProduct(id,page){
  2. var page=Number(page);
  3. $.ajax({
  4. url:'../controller/product_controller.php',
  5. type:'POST',
  6. data:'id='+id+'&page='+page+'&boton=search'
  7. }).done(function(resp){
  8. var d=resp.split("*");
  9. var Data = eval(d[0]);
  10. if(Data.length === 0)
  11. $('#info').html('<h4 style="color: red">Sorry there are no products available</h4>')
  12. else
  13. $('#info').html('');
  14. html="<table class='table table-condensed table-hover table-striped'><thead><th>#</th><th>code</th><th>image</th><th>product</th><th>price</th><th>stock</th><th>status</th><th>option<th></thead><tbody>";
  15. for(i=0;i<Data.length;i++){
  16. status = (Data[i][5] == 1)  ? "<span class='label label-success'>active</span>":"<span class='label label-danger'>inactive</span>";
  17. data=Data[i][0]+"*"+Data[i][1]+"*"+Data[i][2]+"*"+Data[i][3]+"*"+Data[i][4];
  18. html+="<tr><td>"+(i+1)+"<td>"+Data[i][1]+"</td><td>image</td><td>"+Data[i][2]+"</td><td>"+Data[i][3]+"</td><td>"+Data[i][4]+"</td><td>"+status+"</td></td></td><td><button class='btn btn-warning btn-options' data-toggle='modal' data-target='#modalproduct' onclick='mostrar("+'"'+data+'"'+");'><span class='glyphicon glyphicon-pencil'></span></button><button class='btn btn-danger btn-options' onclick='Delete("+'"'+Data[i][0]+'"'+")'><span class='glyphicon glyphicon-trash'></span></button></td></tr>";
  19. }
  20. html+="</tbody></table>"
  21. $("#list-product").html(html);
  22. var totalrec = d[1];
  23. var num_paginate = Math.ceil(totalrec/3);
  24. var fieldSeach=$("#search").val();
  25. paginate="<ul class='pagination'>";
  26. if(page>1){
  27. //paginate+="<li><a href='javascript:void(0)' onclick='searchProduct("+'"'+fieldSeach+'","'+1+'"'+")'>&laquo;</a></li>";
  28. paginate+="<li><a href='javascript:void(0)' onclick='searchProduct("+'"'+fieldSeach+'","'+(page-1)+'"'+")'>&laquo;</a></li>";
  29. }
  30. else{
  31. //paginate+="<li class='disabled'><a href='javascript:void(0)'>&laquo;</a></li>";
  32. paginate+="<li class='disabled'><a href='javascript:void(0)'>&laquo;</a></li>";
  33. }
  34. limit = 10;
  35. div = Math.ceil(limit / 2);
  36. pageMain = (page > div) ? (page - div) : 1;
  37. if (num_paginate > div){
  38. pagRestantes = num_paginate - page;
  39. pagFin = (pagRestantes > div) ? (page + div) : num_paginate;
  40. }
  41. else{
  42. pagFin = num_paginate;
  43. }
  44. for(i=pageMain;i<=pagFin;i++){
  45. if(i==page)
  46. paginate+="<li class='active'><a href='javascript:void(0)'>"+i+"</a></li>";
  47. else
  48. paginate+="<li><a href='javascript:void(0)' onclick='searchProduct("+'"'+fieldSeach+'","'+i+'"'+")'>"+i+"</a></li>";
  49. }
  50.  
  51. if(page<num_paginate){
  52. paginate+="<li><a href='javascript:void(0)' onclick='searchProduct("+'"'+fieldSeach+'","'+(page+1)+'"'+")'>&raquo;</a></li>";
  53. //paginate+="<li><a href='javascript:void(0)' onclick='searchProduct("+'"'+fieldSeach+'","'+num_paginate+'"'+")'>&raquo;</a></li>";
  54. }
  55. else{
  56. paginate+="<li class='disabled'><a href='javascript:void(0)'>&raquo;</a></li>";
  57. //paginate+="<li class='disabled'><a href='javascript:void(0)'>&raquo;</a></li>";
  58. }
  59. paginate+="</ul>";
  60. $("#paginador").html(paginate);
  61.  
  62. });
  63. }
  64.  
  65. function mostrar(data){
  66. var d=data.split("*");
  67. console.log(d);
  68. $("#id").val(d[0]);
  69. $("#editCode").val(d[1]);
  70. $("#editProduct").val(d[2]);
  71. $("#editPrice").val(d[3]);
  72. $("#editStock").val(d[4]);
  73. }
  74.  
  75.  


Título: Re: como podria mostrar el id cifrada sin que pierda los datos al mostrarlo
Publicado por: AlbertoBSD en 12 Julio 2016, 01:53 am
Código
  1. $final_result = $search->searchProduct($id,$main,$limit);
  2. echo json_encode($final_result)."*".$__Result;

Me imagino que ahi la mandas.

Tienes 2 opciones

  • Procesar el arrary  y actualizar el campo ID antes del Json
  • Realizar la consulta mysql para que esta directamente procese el md5 y te devuelva directamente el hash

Y aclararte que realizar hash md5 ya no es recomendable mejor un sha512 o sha256.

Y lo otro que hacer un hash no es cifrar aunque lo parescan son cosas diferentes.

Saludos


Título: Re: como podria mostrar el id cifrada sin que pierda los datos al mostrarlo
Publicado por: geshiro en 12 Julio 2016, 02:00 am
mi json me lo regresa como ["2","manzanas","2.50"]; yo quiero ["dfsdfddfs44fds","manzanas","2.50"] solo que el primer dijito no logro hacerle hash

y como consulta ejemplo como esto
Código
  1. SELECT md5(idproduct),code,product,purchase_price,stock,product.STATUS


Título: Re: como podria mostrar el id cifrada sin que pierda los datos al mostrarlo
Publicado por: AlbertoBSD en 12 Julio 2016, 02:33 am
Aver dices del PHP al ajax de la pagina o al revez?

Si es el primero puedes actualizar el array que contiene los datos como

Código
  1. $final_result->id = md5($final_result->id);

Saludos



Título: Re: como podria mostrar el id cifrada sin que pierda los datos al mostrarlo
Publicado por: geshiro en 12 Julio 2016, 02:55 am
mi consulta quedo asi pero al momento de querer actualizar un producto no me quiere actualizar
Código
  1. SELECT MD5(idproduct) AS id ,CODE,product,purchase_price,stock,product.STATUS FROM product  WHERE code


Título: Re: como podria mostrar el id cifrada sin que pierda los datos al mostrarlo
Publicado por: AlbertoBSD en 12 Julio 2016, 03:02 am
como haces el update?

Tendrias que crear un campo adicional que guarde el md5 en la base de datos y el update hacerlo where md5_campo = 'id_from_ajax'

Saludos