Si ves en otros mensajes del foro...
Es altamete recomedable (por cuestiones de claridad y orden en la programación, lo cual te llevará a descubrir errores más rápidamente) sacar el sql en una variable aparte. También forzar a que se te muestren mensajes de error (sólo en tiempo de diseño).
Código PHP:
<?php
$cn = mysql_connect("localhost","user1","pass1") or die("error en conexión. Mysql dice: ".mysql_error());
mysql_select_db("dp1",$cn) or die("error en selección de BD. Mysql dice: ".mysql_error());
$fechainicio = date("Y-m-d");
$sql = "insert into usuarios (nombre,email,clave,fechainicio,privilegio) values ('$nombre','$email','$clave','$fechainicio',$privilegio)"
mysql_query($sql) or die("error en consulta <b>$sql</b>. Mysql dice: ".mysql_error());
?>
Así verás cualquier error que se pueda estar produciendo... y con mayor razón si al comienzo de todo pones la línea
Código PHP:
error_reporting(E_ALL);
Recuerda hacer esto sólo mientras programas porque de otro modo mostraríasmensajes de error a tus usuarios que pueden darles información sobre los nombres de tu BD, tablas, campos... cosa que no creo que quieras.
Saludos