RE:variables pasadas por URL invisibles
La unica forma de pasar variables y que no se muestren en la barra de dirección del navegador es pasandolas mediante POST.
Si lo que deseas es hacer un link a un PHP pasandole una variable, en lugar de hacer
<a href="mostrar.php?id=1">Mostrar 1</a>
lo que puedes hacer es
<form action="mostrar.php" method="POST">
<input type="hidden" name="id" value="" />
</form>
<a href="javascript:document.form1.id.value='1';document.form1.Submit();">Mostrar 1</a>
Lo que estamos haciendo es decirle al link que ejecute un pequeño código javascript, que modifica el valor de un campo del formulario, y envia el formulario. De esta forma el usuario no verá la variable id en la barra de direcciones.
Si quieres, además, puedes ponerle al link algo para que en la barra de estado no se vea todo ese codigo de la etiqueta <a>.
Espero haber sido de ayuda