como podria mostrar el id cifrada sin que pierda los datos al mostrarlo

Iniciado por geshiro, 12 Julio 2016, 01:36 AM

0 Miembros y 1 Visitante están viendo este tema.

geshiro

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 (php) [Seleccionar]

case 'search':
$main = 0;
       $limit = 3;
       if (isset($_POST['page'])) {
        $page = $_POST['page'];
           $main = ($page - 1) * $limit;
       }
       $id = $_POST['id'];
$search = new product();
$__result= $search->searchProduct($id);
$__Result = count($__result);
$final_result = $search->searchProduct($id,$main,$limit);
echo json_encode($final_result)."*".$__Result;
break;

case 'update':
$id = $_POST['id'];
$editCode = $_POST['editCode'];
$editProduct = $_POST['editProduct'];
$editPrice = $_POST['editPrice'];
$editStock = $_POST['editStock'];
$update = new product();
if($update->update($id,$editCode,$editProduct,$editPrice,$editStock)){
$stock = $update->getProductStock($id);
if ($stock > 20) {
notification::removeNotifications($id);
}
echo 'sucess';

}else{
echo "No se Actualizo los datos";
}
break;


model
Código (php) [Seleccionar]

function searchProduct($id,$main=false,$limit=false){
if($main !== false && $limit !== false){
$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";
}else{
$sql="SELECT idproduct,code,product,purchase_price,stock,product.status FROM product  WHERE code like '%".$id."%' or product like '%".$id."%' ORDER BY idproduct";
}
$this->conexion->conexion->set_charset('utf8');
$result=$this->conexion->conexion->query($sql);
$array = array();
while($record = $result->fetch_array(MYSQLI_NUM)){
$array[] = $record;
}
return $array;
$this->conexion->cerrar();
}


ajax
Código (javascript) [Seleccionar]

function searchProduct(id,page){
var page=Number(page);
$.ajax({
url:'../controller/product_controller.php',
type:'POST',
data:'id='+id+'&page='+page+'&boton=search'
}).done(function(resp){
var d=resp.split("*");
var Data = eval(d[0]);
if(Data.length === 0)
$('#info').html('<h4 style="color: red">Sorry there are no products available</h4>')
else
$('#info').html('');
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>";
for(i=0;i<Data.length;i++){
status = (Data[i][5] == 1)  ? "<span class='label label-success'>active</span>":"<span class='label label-danger'>inactive</span>";
data=Data[i][0]+"*"+Data[i][1]+"*"+Data[i][2]+"*"+Data[i][3]+"*"+Data[i][4];
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>";
}
html+="</tbody></table>"
$("#list-product").html(html);
var totalrec = d[1];
var num_paginate = Math.ceil(totalrec/3);
var fieldSeach=$("#search").val();
paginate="<ul class='pagination'>";
if(page>1){
//paginate+="<li><a href='javascript:void(0)' onclick='searchProduct("+'"'+fieldSeach+'","'+1+'"'+")'>&laquo;</a></li>";
paginate+="<li><a href='javascript:void(0)' onclick='searchProduct("+'"'+fieldSeach+'","'+(page-1)+'"'+")'>&laquo;</a></li>";
}
else{
//paginate+="<li class='disabled'><a href='javascript:void(0)'>&laquo;</a></li>";
paginate+="<li class='disabled'><a href='javascript:void(0)'>&laquo;</a></li>";
}
limit = 10;
div = Math.ceil(limit / 2);
pageMain = (page > div) ? (page - div) : 1;
if (num_paginate > div){
pagRestantes = num_paginate - page;
pagFin = (pagRestantes > div) ? (page + div) : num_paginate;
}
else{
pagFin = num_paginate;
}
for(i=pageMain;i<=pagFin;i++){
if(i==page)
paginate+="<li class='active'><a href='javascript:void(0)'>"+i+"</a></li>";
else
paginate+="<li><a href='javascript:void(0)' onclick='searchProduct("+'"'+fieldSeach+'","'+i+'"'+")'>"+i+"</a></li>";
}

if(page<num_paginate){
paginate+="<li><a href='javascript:void(0)' onclick='searchProduct("+'"'+fieldSeach+'","'+(page+1)+'"'+")'>&raquo;</a></li>";
//paginate+="<li><a href='javascript:void(0)' onclick='searchProduct("+'"'+fieldSeach+'","'+num_paginate+'"'+")'>&raquo;</a></li>";
}
else{
paginate+="<li class='disabled'><a href='javascript:void(0)'>&raquo;</a></li>";
//paginate+="<li class='disabled'><a href='javascript:void(0)'>&raquo;</a></li>";
}
paginate+="</ul>";
$("#paginador").html(paginate);

});
}

function mostrar(data){
var d=data.split("*");
console.log(d);
$("#id").val(d[0]);
$("#editCode").val(d[1]);
$("#editProduct").val(d[2]);
$("#editPrice").val(d[3]);
$("#editStock").val(d[4]);
}


AlbertoBSD

Código (php) [Seleccionar]
$final_result = $search->searchProduct($id,$main,$limit);
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
Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW

geshiro

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 (sql) [Seleccionar]
SELECT md5(idproduct),code,product,purchase_price,stock,product.status

AlbertoBSD

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 (php) [Seleccionar]
$final_result->id = md5($final_result->id);

Saludos

Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW

geshiro

mi consulta quedo asi pero al momento de querer actualizar un producto no me quiere actualizar
Código (sql) [Seleccionar]
SELECT MD5(idproduct) AS id ,CODE,product,purchase_price,stock,product.status FROM product  WHERE code

AlbertoBSD

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
Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW