Para ocultar los parametros enviados por URL, tendrias que manejar formularios de tipo POST (porque simplemente no lo hace de esa forma), pero por que no guardar "antes" los datos en variables de sesion, y referencias desde ellos?
Esto es parte de mi codigo ya desarrolado desde hace poco:
Código PHP:
(...)
echo '<table>
<tr>';
while($asociacion = mysql_fetch_array($seleccion)){
$contador++;
$_SESSION['imagen'.$contador.''] = $asociacion['imagen'];
$_SESSION['usuario'.$contador.''] = $asociacion['nombreCompleto'];
echo '<td><img title ="'.$asociacion['imagen'].'"src ="../Thumbnails/'.$asociacion['ubicacion'].'"/></td>';
echo '<td>
<table>
<tr>
<td><div align="center"><img title="Imagen" "src ="../Contenido/imagenes/iconos/foto.png"/></div></td>
<td><div><a href="http://www.forosdelweb.com/f18/imagenes.php?foto='.$contador.'">Ver foto</a> de <a href="http://www.forosdelweb.com/f18/usuario.php?id='.$contador.'">'.$asociacion['nombreCompleto'].</a></div></td>
<td></tr>
(...)
Y el archivo que recibe:
Código PHP:
(...)
<?php
require("Scriplet/conexion.php");
for($i = 0;$i<=12;$i++){
if ($_GET['foto'] == $i){
$imagen = $_SESSION['imagen'.$i.''];};
}
$seleccionContenido = mysql_query("SELECT contenido FROM comentarios WHERE imagen = '$imagen'");
echo '<table><tr>';
echo '<td><div><img src="http://www.forosdelweb.com/f18/Thumbnails/r2imagen2'.$imagen.'"</img></div></td>
</tr>';
while($asociacionComentarios = mysql_fetch_array($seleccionContenido)){
echo '<tr><td>'.$asociacionComentarios['contenido'].'</td></tr>';
}
(...)
Y por ultimo cierras las variables de sesion diferente a la que utilizaste con otro ciclo.