$sql = "INSERT INTO login SET id = '', name = '" .mysql_real_escape_string($_POST['name']). "', signup =NOW() , password = '" .mysql_real_escape_string($pass). "', state = '0', mail = '" .mysql_real_escape_string($_POST['mail']). "',location='".mysql_real_escape_string($_POST['location'])."', signup_ip='".mysql_real_escape_string($_SERVER['REMOTE_ADDR'])."',ref='".mysql_real_escape_string($_POST['ref'])."'";
$res = mysql_query($sql);
All wrong....
$sql = "INSERT INTO login (id,name,signup,password,state,mail,location,signup_ip,ref) VALUES('', '" .mysql_real_escape_string($_POST['name']). "',NOW() , '" .mysql_real_escape_string($pass). "', 0, '" .mysql_real_escape_string($_POST['mail']). "','".mysql_real_escape_string($_POST['location'])."','".mysql_real_escape_string($_SERVER['REMOTE_ADDR'])."','".mysql_real_escape_string($_POST['ref'])."')";
$res = mysql_query($sql) or die(mysql_error());
Another problem could be the quotes - but I cannot see them properly, so cannot judge. But try that.