Evitar duplicidad de email y password mediante php
Publicado por sam (185 intervenciones) el 31/03/2015 13:00:34
HOla amigos/as, a ver si me pueden ayudar con esto que no le saco la solucion.
Tengo un codigo que me inserta en bbdd el email y la contraseña , (y algunos datos mas ).
Pero el problema es que si en el formulario le doy a enviar de nuevo por segunda vez, me vuelve a insertar en la base de datos de nuevo el email y contraseña.
Se que se puede restringir esto mediante sql. pero necesito limitar la duplicidad del email y la contraseña mediante php.
¿Como se puede hacer esto?
De veras que no me sale por mas que lo intento.
Miren este es el codigo que tengo:
Gracias de antemano:
archivo 1, llamado : OperacionesMysql.php
archivo 2, llamado : validar_formulario_registrarse.php
Tengo un codigo que me inserta en bbdd el email y la contraseña , (y algunos datos mas ).
Pero el problema es que si en el formulario le doy a enviar de nuevo por segunda vez, me vuelve a insertar en la base de datos de nuevo el email y contraseña.
Se que se puede restringir esto mediante sql. pero necesito limitar la duplicidad del email y la contraseña mediante php.
¿Como se puede hacer esto?
De veras que no me sale por mas que lo intento.
Miren este es el codigo que tengo:
Gracias de antemano:
archivo 1, llamado : OperacionesMysql.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
class OperacionesMysql
{
private $servidor = 'localhost';
private $usuario = 'root';
private $pass = '';
private $basedatos = 'bbdd_estadisticas';
public $nombre_tabla = 'usuarios';
public $array_datos = array(
'nombre'=>'$nombre',
'apellidos'=>'$apellidos',
'nick'=>'$nick',
'email'=>'$email',
'password'=>'$password',
'repassword'=>'$repassword',
'sexo'=>'$sexo',
'dia'=>'$dia',
'mes'=>'$mes',
'ano'=>'$ano'
);
//CONECTAMOS A LA BASE DE DATOS..................................................................
public function ConectarBbdd()
{
$con = mysqli_connect($this->servidor, $this->usuario, $this->pass, $this->basedatos) or
die ('Lo siento pero no conecta a la BBDD');
return $con;
}
//INSERTAR DATOS...................................................................................
function InsertarDatos($nombre_tabla, $array_datos)
{
$sql = "INSERT INTO " . $nombre_tabla . " (";
$sql .= implode(', ', array_keys($array_datos));
$sql .= ") VALUES('". implode("', '", $array_datos)."') ";
$con = $this->ConectarBbdd();
mysqli_query($con, $sql) or die ('Lo siento pero no se inserta en BBDD' . mysqli_error($con));
header("Location:formulario_registrate.php");
}
//SELECCIONAR TODOS LOS DATOS DE UNA TABLA..........................................................
public function SeleccionarTodosDatos($nombre_tabla)
{
$sql = "SELECT * FROM " . $nombre_tabla . " ";
$con = $this->ConectarBbdd();
$res = mysqli_query($con,$sql) or die ('Lo siento no se muestran los datos.' . mysqli_error($con));
return $res;
}
} //fin de OperacionesMysql
archivo 2, llamado : validar_formulario_registrarse.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
include '../../clases/OperacionesMysql.php';
$op = new OperacionesMysql();
//RECIBIBOS LOS DATOS DEL FORMULARIO.....................................................
$nombre = trim(($_POST['nombre']));
$apellidos = trim(($_POST['apellidos']));
$nick = trim(($_POST['nick']));
$email = trim(($_POST['email']));
$password = trim(($_POST['password']));
$repassword = trim(($_POST['repassword']));
$sexo = $_POST['sexo'];
$dia = $_POST['dia'];
$mes = $_POST['mes'];
$ano = $_POST['ano'];
$nombre_tabla = $op->nombre_tabla;
$op->SeleccionarTodosDatos($nombre_tabla);
while($fila = mysqli_fetch_assoc($res))
{
if (($fila['email'] == $email) and ($fila['password'] != $password))
{
header("Location:formulario_registrate.php?tipo_error_registro_usuario=email_existente");
}
else
if (($fila['email'] != $email) and (($fila['password'] == $password) or ($fila['repassword'] == $repassword)))
{
header("Location:formulario_registrate.php?tipo_error_registro_usuario=password_existente");
}
else
if (($fila['email'] == $email) and (($fila['password'] == $password) or ($fila['repassword'] == $repassword)))
{
header("Location:formulario_registrate.php?tipo_error_registro_usuario=email_y_password_existente");
}
} //fin de while
//INSERTAR CAMPOS EN LA TABLA USUARIOS EN LA BBDD.................................................................
//Lineas para solo poner el nombre de la tabla en el archivo "OperacionesMysql.php"
$nombre_tabla = $op->nombre_tabla;
$array_datos = array(
'nombre'=>$nombre,
'apellidos'=>$apellidos,
'nick'=>$nick,
'email'=>$email,
'password'=>$password,
'repassword'=>$repassword,
'sexo'=>$sexo,
'dia'=>$dia,
'mes'=>$mes,
'ano'=>$ano
);
$op->InsertarDatos($nombre_tabla, $array_datos);
Valora esta pregunta


0