Ciao, se su onclick richiami direttamente la funzione redirect(), è normale che quella funzione sia eseguita subito.
Per risolvere puoi impostare il setTimeout su onclick:
	codice:
	<!DOCTYPE HTML>
<html>
  <head>
    <title>Esempio</title>
    <meta charset="utf-8">
    <script type="text/javascript">
      function redirect() {
        location.href = "all.php";
      }
    </script>
  </head>
  <body>
    <input onclick="setTimeout(redirect,1000);">
  </body>
</html>
 
Oppure (su onclick) richiamare una funzione in cui, al suo interno, ci sia il setTimeout:
	codice:
	<!DOCTYPE HTML>
<html>
  <head>
    <title>Esempio</title>
    <meta charset="utf-8">
    <script type="text/javascript">
      function redirect() {
        setTimeout(function(){location.href = "all.php"}, 10000);
      }
    </script>
  </head>
  <body>
    <input onclick="redirect();">
  </body>
</html>
 
PS: quando apri delle discussioni sul forum, ti consiglio di utilizzare titoli meno generici (vedi regolamento di sezione)