2013-06-24 3 views
0

Мне было интересно, если это способ изменить URL-адрес, чтобы он не показывал продукт id в конце. Потому что таким образом кто-то может изменить pid, и он может направить их на другую страницу, если этот pid находится в базе данных.Изменение URL-адреса браузера

<a href="<?php fetchdir($apages) ?>item.php?pid=<?php echo $row['pid']; ?>">View</a> 

http://WWW.testexample.x10.mx/item/item.php?pid=2

+0

Friendly/pretty URL-адрес - это то, о чем я думаю, что вы имеете в виду, и то, что предоставляют многие платформы CMS и ecom. Вы строите эту ссылку и страницу продукта с нуля? или вы работаете в платформе с открытым исходным кодом, например oscommerce или oscmax или даже cms? – blackhawk

+0

Что касается вашей проблемы, вы должны подумать о правах доступа для определенных страниц, если вы не хотите, чтобы пользователи туда попадали. Скажите, почему именно вы хотите покрыть идентификатор. – quidage

+7

Обфускация всегда является плохой заменой безопасности. Если объекты не должны быть доступны, вы должны их предотвратить, а не пытаться скрыть их. – arkascha

ответ

0

Вы можете сделать все это:

1) сделать пост на HREF мыши, а затем Pid доступ из $ _POST на стороне сервера

2) сделать base64 или обычая шифрование для значения pid (может быть связано с 1))

3) ручная ручная замена pid на стороне бизнеса , так что это не проблема lem для вас, просто позвольте им сделать это, если захотят.

Я хотел бы пойти на вариант 2), но здесь примере варианта 1)

 <html><body id="body"><script> function postData(val) { 
     var frm = document.createElement("form") 
     frm.action="/data.php"; 
     frm.method="post"; 

     var input=document.createElement("input") 
     input.name="pid"; 
     input.value = val; 
     input.type = "hidden"; 

     frm.appendChild(input); 

     var body= document.getElementById("body"); 
     body.appendChild(frm); 
     frm.submit(); 
    } </script><a href="javascript:void(0)" onclick="postData(<?php echo $pid; ?>)">View</a></body></html> 

это пример для варианта 2 с использованием кодировки base64:

<a href="<?php fetchdir($apages) ?>item.php?pid=<?php echo base64_encode($row['pid']); ?>">View</a> 

, а затем в item.php:

$pid=base64_decode($_GET['pid']); 
+0

любая идея, где я могу найти пример для опции 1 – Emily

+0

это javascript, см. Мое редактирование – vlscanner

+0

Извините, я могу вариант 2 – Emily