Prueba asi:
Código PHP:
include("conectar.php");
//declaracion de variables
$nombre=$_POST["nombre"];
$compra=$_POST["compra"];
$zona=$_POST["zona"];
$fecha=$_POST["fecha"];
$dia=$_POST["dia"];
$numero=$_POST["numero"];
$query1=("INSERT INTO cliente(id,nombre,compra) VALUES('','".$nombre."','".$compra."')");
mysql_query($query1) or die("errror al registrrar");
$query2=("INSERT INTO rutas(id,zona,fecha,dia,numero) VALUES('',','".$zona."','".$fecha."','".$dia."','" .$numero."')");
mysql_query($query2) or die("no se puede registrar");
header("location:autenticar.html");
Lo unico que he cambiado es el orden entre la variable de fecha y la de zona, pues estabas guardando la variable de fecha en el campo de zona y la variable de zona en el de fecha.
No creo que sea la solucion, pero no obstante estaba mal.
No entiendo porque haces '".$fecha."' cuando puedes hacer '$fecha' sin problema alguno.
Y el campo id, no se autoincremente automaticamente?
Si es asi, no hace falta incluirlo en el INSERT, lo omites y la BDD se encarga de incrementar su valor.