Esto no es correcto:
session_start("log");
Si quieres darle un nombre a la sesión . .debes usar:
Código PHP:
session_name("log");
session_start();
Por ese orden y siempre que requieras usar variables de sesión ..
Con respecto a la sección de "cookies":
Si no haces un session_start() para luego hacer un session_destroy() .. No vas a borrar la sesión activa que pudiera estar activa ..
Las variables de cookie .. ya que estás usando arrays superglables .. SIGUE usandolos $_COOKIE en lugar de tu $HTTP_COOKIE_VARS ..
Los array's "Superglobales" son eso mismo "GLOBALES" por defecto .. Estas usando una función .. así que el ambito de las variables es "LOCAL" a esa función .. Si usas $HTTP_COOKIE_VARS en tu función, deberas pasarle como parámetro o declarando como global dicho array para que puedas acceder a tus variables de tus cookies .. Por eso te recomiendo que uses $_COOKIE que ya es global por defecto ..
Lo mismo sigue usando isset() en lugar de blabla != "" ...
** NO uses Ñ ni acentos y otros caracteres similares como Nombres de variables! (pese que pudiera funcionar ..)
setcookie("contraseñita");
** Este redireccionamiento:
Código PHP:
header("location: index.php?id1=$id1&id2=$id2&idioma=$idioma&mostrar=$mostrar");
exit;
Fijate que hay que usar un espacio entre tu location: yelURLquepongas ...
** por aquí:
session_register("log");
$_SESSION['id'] = $idion;
$_SESSION['contraseña'] = $contrarion
te ocurre lo mismo .. Debes iniciar el uso de sesiones con session_start() y si quieres usar nombre de sesión .. lo has de especificar vía session_name("nombre") antes del sesion_start() ...
Código PHP:
session_name("log");
session_start();
$_SESSION['id'] = $idion;
$_SESSION['contraseña'] = $contrarion;
Cuando usas sesiones .. NO es necesario que guardes las contraseñas y luego compararlas en todas tus páginas .. Para eso el SID que se adjudica a cada inicio de sesión es Único .. con que te guardes el "ID" ese de tu usuario sobra .. ya que en tu código sólo miras si está definido o no ...
Te recomiendo que leas el manual oficial de PHP y te aclares con la forma de trabajar con sesiones .. Pues lo que es en ese script tenias (y tienes) un enorrrrmeee liooo).
Otro detalle ..
header("location: index.php?id1=$id1&id2=$id2&idioma=$idioma&mostrar =$mostrar");
Si usas sesiones . No sólo se pueden usan para "validar" a un usuario .. puedes guardar mas datos .. por ejemplo todo ese montón de variables que usas ahí en ese URL .. y leerlas o destruirlas donde y cuando las necesites ..
Un saludo,