PHP - Evitar duplicidad de email y password mediante php

   
Vista:

Evitar duplicidad de email y password mediante php

Publicado por sam (138 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

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
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder