Lo que pasa es que no debes procesar la inserción de datos a menos que el formulario haya sido enviado.
Yo agregaría esto al principio:
Código PHP:
<?php
$error = '';
if(isset($_POST['enviado'])) {
$rut = $_POST['rut'];
$nombre = $_POST['nombre'];
// Verificación de datos en base a valor numérico, tamaño de string, etc.
// Tú decides como hacer la verificación de cada campo
if($datos_no_validos)
$error = '<p>Aquí tu mensaje de error.</p>';
else {
/* Conecta a la base de datos*/
$db_link = mysql_connect("localhost", "root", "1234");
if (!$db_link)
die("Could not connect: " . mysql_error());
mysql_select_db("prueba") or die("No");
mysql_query("INSERT INTO usuarios (rut, nombre) VALUES ('$rut' , '$nombre')") or die(mysql_error());
mysql_close($db_link);
}
}
?>
Y después modificaría el formulario agregando el campo "enviado" y el mensaje de error que puede ser una cadena vacía:
Código HTML:
<form action="conexion.php" method="post">
<input type="hidden" name="enviado" value="si" />
<?php echo $error; ?>
<label for="labRut" ><font face="arial" >Rut </font></label><br/>
Finalmente quitaría los id="..." en los <input> y checaría que el contenido de name="..." sean sólo minúsculas, ejemplo name="Rut" cambiarlo por name="rut".