Ya está solucionado, al final el código me ha quedado así para el que le pueda servir:
Código PHP:
<?php
include("../conexion/conexion.php");
$link=Conectarse();
// usamos la sesion de nombre definido.
session_name(matricula);
// Iniciamos el uso de sesiones
session_start(); //
$sql="select ID_CLIENTE
from clientes
where MATRICULA='".$_POST["matricula"]."'
";
$result=mysql_query($sql,$link)or die(mysql_error());
$contador=mysql_num_rows($result);// el problema está akí. No puede haber un mysql_num_rows antes de mysql_query, pero como lo pongo?¿.
if($contador==0){
header("location:index.php?error=3");
exit;
}
$row=mysql_fetch_array($result);
$id_cliente=$row['ID_CLIENTE'];
$_SESSION['id_cliente']=$id_cliente;
// chequear si se llama directo al script.
if ($_SERVER['HTTP_REFERER'] == ""){
header("location:index.php?error=1");
exit;
}
//chekeamos si la session está creada
if(!$_SESSION['id_cliente']){
session_destroy();
header("location:index.php?error=2");
exit;
}
?>
Ya me funciona correctamente, muchas gracias por la ayuda