PHP - PHP Base de datos Inserción de datos repetidos

 
Vista:

PHP Base de datos Inserción de datos repetidos

Publicado por Cristian (1 intervención) el 03/03/2009 11:03:18
Hola a todos. Soy prinicipiante en PHP y Necesito ayuda estoy creando una web en flash que tiene un formulario de registro que envia los datos a una base de datos. El problema es que necesito que los datos Nombre de usuario(nick), DNI y Email se inserten en la base de datos una sola vez osea que no esten duplicados (es decir, que sean unicos).

Mi FLA de registro tiene el siguiente código:

function enviar() {
if (nick_txt.text.length<1 || pass_txt.text.length<1 || nombre_txt.text.length<1 || apellido_txt.text<1 || t_dia.text.length<1 || t_anio.text.length<1 || t_mes.text.length<1 || sexo == undefined || email_txt.text.length<1 || t_provincia.text.length<1 || t_pais.text.length<1) {
mensajes.gotoAndStop("completar");
} else if (pass_txt.text.length>15) {
mensajes.gotoAndStop("menosclave");
} else if (email_txt.text.indexOf("@") == -1 || emailVar.indexOf(".") == -1 || emailVar.length<6) {
mensajes.gotoAndStop("mailinvalido");
} else {
identVar = apellido_txt.text+", "+nombre_txt.text;
form_lv = new LoadVars();
form_lv.usuL = nick_txt.text;
form_lv.passL = pass_txt.text;
form_lv.nombreL = nombre_txt.text;
form_lv.apellidoL = apellido_txt.text;
form_lv.fenacL = t_anio.text+"-"+_root.numMes+"-"+t_dia.text;
form_lv.sexoL = sexo;
form_lv.mailL = email_txt.text;
form_lv.paisL = t_pais.text;
form_lv.provinciaL = t_provincia.text;
form_lv.DNIL = dni_txt.text;
form_lv.telfijoL = telfijo_txt.text;
form_lv.telmovilL = telmovil_txt.text;
form_lv.direccionL = direccion_txt.text;
form_lv.ciudadL = ciudad_txt.text;
//Enviamos las variables a registrar.php
form_lv.sendAndLoad("registrarlargo.php", form_lv, "POST");
//Recibimos y manejamos las variables que vienen de registrar.php
form_lv.onLoad = function() {
if (this.estatus == "nickocupado") {
nick_txt.text = "";
gotoAndStop("nickRepe");
//Alerta: Nick ocupado
}
if (this.estatus == "emailocupado") {
email_txt.text = "";
gotoAndStop("emailRepe");
//Alerta: e-mail icorrecto
}
if (this.estatus == "dniocupado") {
dni_txt.text = "";
gotoAndStop("dniRepe");
//Alerta: e-mail icorrecto
}
if (this.estatus == "ok") {
gotoAndStop("registroOk");
mailregvar = email_txt.text;
usuvar = usu.text;
mailvar = mail.text;
nombrevar = nombre.text;
ciudadvar = ciudad.text;
edadvar = edad.text;
usu.text = "";
mail.text = "";
nombre.text = "";
ciudad.text = "";
edad.text = "";
//Ingreso exitoso
}
if (this.estatus != "nickocupado" && this.estatus != "emailocupado" && this.estatus != "ok") {
gotoAndStop("problem");
//Alerta: problemas con el servidor
}
};
}
}
stop();



y mi pHP llamado "registrarlargo.php" este código:

<?php
$boundary=md5(rand(1,100));
$fecha=date("d-m-y H:i");
$ip=$_SERVER["REMOTE_ADDR"];

include('conexion.php'); //conectamos con la base de datos
$link = Conectarse();
$nick = $_POST["usuL"];;
$pass = $_POST["passL"];;
$nombre = $_POST["nombreL"];;
$apellido = $_POST["apellidoL"];;
$fenac = $_POST["fenacL"];;
$sexo = $_POST["sexoL"];;
$email = $_POST["mailL"];;
$pais = $_POST["paisL"];;
$provincia = $_POST["provinciaL"];;
$dni = $_POST["DNIL"];;
$telfijo = $_POST["telfijoL"];;
$telmovil = $_POST["telmovilL"];;
$direccion = $_POST["direccionL"];;
$ciudad = $_POST["ciudadL"];;

//comprobamos con esta funcion que la direccion de email escrita es correcta
if(!eregi("[0-9a-z_-.]+@[0-9a-z-.]+.[a-z]{2,3}",$email)) {
$sql = "SELECT ID FROM usuarios WHERE Nick='$nick'";
$result = mysql_query($sql);
if($row = mysql_fetch_array($result))
{
echo "&estatus=nickocupado&"; //nick ocupado
}
$sql = "SELECT ID FROM usuarios WHERE Email='$email'";
$result = mysql_query($sql);
if($row = mysql_fetch_array($result))
{
echo "&estatus=emailocupado&"; //nick ocupado
}
else
{
//insertamos los datos en nuestra base de datos
$sql="INSERT INTO usuarios(ID,Nombre,Apellido,Nick,Pass,Email,Sexo,Fenac,Provincia,Pais,DNI,TelefonoFijo,TelefonoMovil,Direccion,Ciudad) VALUES ('0','$nombre','$apellido','$nick','$pass','$email','$sexo','$fenac','$provincia','$pais','$dni','$telfijo','$telmovil','$direccion','$ciudad')";
mysql_query($sql);
$asunto='Bienvenido a Asociacion Civil El Colibri San Miguel';
$mensaje='<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>
<style type="text/css">
<!--
body,td,th {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 10pt;
color: #0099CC;
}
a {
font-size: 10pt;
}
a:link {
color: #1AC6FF;
}
a:visited {
color: #1AC6FF;
}
a:hover {
color: #1AC6FF;
}
a:active {
color: #1AC6FF;
}
.Estilo6 {font-size: 10pt}
.Estilo7 {font-size: 8pt}
.Estilo10 {font-size: 10pt; color: #0099CC; }
-->
</style></head>

<body>
<p align="justify" class="Estilo10">Hola, <strong>'.$email.'</strong>. Bienvenido y gracias por registrarte en <strong>Asociación Civil El Colibri San Miguel</strong>.<br />
<br />Los datos con los que te registraste en nuestro sitio web son:
<p align="justify" class="Estilo10"><em>Usuario: </em>'.$nick.' <br />
<em>Contraseña: </em>'.$pass.' <br />
<br />
Por favor, conservá estos datos para poder iniciar sesión. <br />
<br />Otros datos son:<br />
<br />
<em>Nombre: </em>'.$nombre.'<em><br />
Apellido: </em>'.$apellido.'<em><br />
Fecha de Nacimiento (AAAA-MM-DD): </em>'.$fenac.'<em><br />
Sexo: </em>'.$sexo.'<em><br />
Email: </em>'.$email.'<em><br />
País: </em>'.$pais.'<em><br />
Provincia: </em>'.$provincia.'<br />
<em>DNI: </em>'.$dni.' <br />
<em>Télefono Fijo:</em> '.$telfijo.'<br />
<em>Télefono Móvil:</em> '.$telmovil.'<br />
<em>Dirección:</em> '.$direccion.'<br />
<em>Ciudad: </em>'.$ciudad.'
<p align="justify" class="Estilo10">Gracias!!!

<p><span class="Estilo10"><span class="Estilo7">_____________________________<br />
Email enviado el: '.$fecha.'<br />
Desde la IP: '.$ip.'<br />
Número de serie: '.$boundary.'<br />
_____________________________<br />
Asociación Civil El Colibrí San Miguel<br />
<a href="http://www.elcolibriac.com.ar" target="_blank">http://www.elcolibriac.com.ar</a><br />
Contacto: <a href="mailto:[email protected]" target="_blank">[email protected]</a><br />
Info: <a href="mailto:[email protected]" target="_blank">[email protected]</a><br />
Webmaster: <a href="mailto:[email protected]" target="_blank">[email protected]</a></span></span><span class="Estilo6"><br />
</span><br />
</p>
<p> </p>
</body>
</html>';
$cabeceras = 'MIME-Version: 1.0' . " ";
$cabeceras .= 'Content-type: text/html; charset=UTF-8' . " ";
$cabeceras .= 'From: [email protected]' . " " .
'Reply-To: [email protected]' . " " .
'X-Mailer: PHP/' . phpversion();
mail($email,$asunto,$mensaje,$cabeceras);
echo "&estatus=ok&"; //registro exitoso

mysql_free_result($result);
mysql_close();
}
}
else
{
echo "&estatus=emailocupado&"; //mail incorrecto
}
?>

Al quererse registrar un usuario envia correctamente los datos a la base de datos "usuarios" y automáticamente le llega un email con todos los datos que ingreso para que los recuerde.
Solo necesito que cuando ingrese un Nick, o un Email o un DNI que ya esta en la base de datos de un echo distinto para cada uno. ("nickocupado","emailocupado", y "dniocupado").

Alguien sabe como puedo lograrlo. Ya he probado muchos códigos de distintos foros pero nada funcionó.

Desde ya muchas gracias...
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder