PHP - Acceder una sola vez a una pagina web con una contraseña

 
Vista:

Acceder una sola vez a una pagina web con una contraseña

Publicado por franklyn (5 intervenciones) el 17/10/2013 20:36:05
Saludos, esta es mi primera participacion en estos foros. A ver si me doy a explicar: Estoy trabajando con PHP y MySQL en un sistema de login, donde el usuario ingresa con su nombre, apellido y contraseña (los dos primero campos son opcionales, lo puedo sustituir con un username). Una vez que ingresen, quiero evitar que con esa misma clave ingresen al mismo sitio, ya sea desde otra pestaña, navegador o pc.

Hasta ahora me valida la condicion de campos vacios, usuarios y pasword incorrectos y acceso a una pagina html que muestra video en vivo. Tambien me logra el cambio de un valor bandera en la base de datos llamada $status, solo que el PHP no me reconoce la condicion cuando el valor status cambia de 0 a 1 y el usuario accede cuando le da la gana desde cualquier navegador

Aqui les dejo parte de mi codigo:

CODIGO 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
[i]<?php
$nombre=$_POST['nombre'];
$apellido=$_POST['apellido'];
$pass=$_POST['pass'];
 
if(isset($nombre) && !empty($nombre) && isset($apellido) && !empty($apellido) && isset($pass) && !empty($pass)){ /*valida campo vacio*/
 
$link=mysql_connect("localhost", "XXX", "XXX")or die("conexion rota a la base de datos...");
$selecc=mysql_select_db("diliaevento3",$link)or die("selecion rota a la base de datos...");
$consulta="SELECT * FROM evento WHERE nombre='".$nombre."' AND apellido='".$apellido."' AND pass='".$pass."'";
$q=mysql_query($consulta,$link);
 
$condicion="SELECT * FROM evento WHERE status='0'";
$qq=mysql_query($condicion,$link);
 
$condicion2="SELECT * FROM evento WHERE nombre='".$nombre."' AND apellido='".$apellido."' AND pass='".$pass."' AND status='1'";
$qqq=mysql_query($condicion2,$link);
 
$max="SELECT MAX(idevento) FROM evento";
$array2=mysql_fetch_array($qq);/**/
 
try{
if( mysql_result($q,0) && mysql_result($qq,0)){
 
$result=mysql_result($q,0);
 
$statusflag=1;
$cambioSesion="UPDATE evento SET status='".$statusflag."' WHERE nombre='".$nombre."' AND apellido='".$apellido."' AND pass='".$pass."'";
mysql_query($cambioSesion);
 
$array=mysql_fetch_array($qqq);
echo($array["nombre"]);
echo(" ".$array["apellido"]." ");
 
echo('Disfrute del 1er Congreso Tecnologia Productiva...');
/*Aqui accede a un HTML que ejecuta el video en vivo*/
}
 
else {
echo("No autorizado");
printf('<a href="ingresoEventoSesion.html" title="ingrese aqui" target="_new">Intente de nuevo</a>');
}
}
 
catch(Exception $error){}
}
else{
echo("Inserte datos...");
printf('<a href="ingresoEventoSesion.html" title="ingrese aqui" target="_new">Intente de nuevo</a>');}
 
mysql_close();
 
?>

/**********************************************************************************************/

HTML DEL FORMULARIO
/************************************************************************************************/
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
<body>
<table align="center">
<tr>
<td align="center">
<form name="formuIngreso" action="ingresoSesion3.php" method="post">
<label for="nombre">Primer Nombre</label>
<input type="text" name="nombre" id="nombre" />
</p>
<p>&nbsp;</p>
<p>
<label for="apellido">Primer Apellido</label>
<input type="text" name="apellido" id="apellido" />
</p>
<p>&nbsp;</p>
<p>
<label for="contraseña">contraseña</label>
<input type="password" name="pass" id="pass" />
</p>
<p>&nbsp;</p><input name="ingresar" type="submit" value="Ingresar"/>
<input type="reset" name="borrar" id="borrar" value="Borrar" />
</form>
</td>
</tr>
</table>
 
</body>
/*******************************************************************************************/
No se si lo estoy haciendo bien o existe otro metodo php para hacerlo, o si mi logica me falla...

Necesito ayuda rapido por favor, tengo menos de un mes para terminar este proyecto y esta partecita ya me tiene veeeeerdeee....
gracias de antemano
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

Acceder una sola vez a una pagina web con una contraseña

Publicado por Mari Carmen (145 intervenciones) el 17/10/2013 21:50:23
Te recomiendo que uses métodos distintos para hacer peticiones a las BBDD, tal y como lo estas haciendo tú el código es vulnerable a hacer todo tipo de SQL Inyection. Esto significa que cualquier persona que tenga un pelín de manejo de lo que son las sentencias SQL te robará la BBDD seguro!!

Hace poco encontré unas clases bastante sencillas y muy entendibles que te servirán para hacer las conexiones a la BBDD de forma segura y dejar el código mucho mas limpio. En la pagina del proyecto te explican como hacer las ediciones de forma sencilla con 2 scripts php de ejemplo, uno básico y el otro avanzado. https://github.com/Proyecto-NSD/MysqliDb

Espero que te ayude en tu proyecto. Yo la verdad es que no entiendo todo lo que intentas hacer con todas esas sentencias SQL que tienes.

Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Acceder una sola vez a una pagina web con una contraseña

Publicado por franklyn (5 intervenciones) el 18/10/2013 23:22:31
Muchisimas gracias Mari Carmen, tomare en cuenta tu recomendacion para evitar el SQLInyection, muy importante.
Lo que por ahora necesito saber es porque me sigue accediendo a la pagina del sistema de video, aun habiendo colocado las validaciones, los condicionales y aun haciendo el cambio en la base de datos. Necesito asesoria o recomandacion.
A continuacion el codigo resumido y explicado:

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
<!---------------------------------------------------------------------------------------------------------------------------------->
<?php
 
/*Datos recibidos por el Formulario */
$nombre=$_POST['nombre'];
$apellido=$_POST['apellido'];
$pass=$_POST['pass'];
 
/*valida campos vacios*/
if(isset($nombre) && !empty($nombre) && isset($apellido) && !empty($apellido) && isset($pass) && !empty($pass)){
 
	$link=mysql_connect("localhost", "USERDB", "PASSDB")or die("conexion rota a la base de datos...");
	$selecc=mysql_select_db("TABLADB",$link)or die("selecion rota a la base de datos...");
 
	/*Esta consulta es para la Validacion de los campos */
	$consulta="SELECT * FROM evento WHERE nombre='".$nombre."' AND apellido='".$apellido."' AND pass='".$pass."'";
	$q=mysql_query($consulta,$link);
 
	/*Con esto consulto los que estan en status 0*/
	$condicion="SELECT * FROM evento WHERE status='0'";
	$qq=mysql_query($condicion,$link);
 
	/*Con esta consulta Intente generar una bandera para que ingresaran solo los que tienen status=1 = No Funciono*/
	$condicion2="SELECT * FROM evento WHERE nombre='".$nombre."' AND apellido='".$apellido."' AND pass='".$pass."' AND status='1'";
	$qqq=mysql_query($condicion2,$link);
 
	//obtengo la fila con valor 0
	$array2=mysql_fetch_array($qq);
 
	try{
		/*Si los campos son validos y no ha iniciado sesion, status 0 (EL SEGUNDO CONDICIONAL $array2[4]==0 NO ME LO VALIDA))*/
		if( mysql_result($q,0) &&  $array2[4]==0){
			$result=mysql_result($q,0);
			echo($array2[1]);
 
			/*Actualizo el campo status para que en el proximo recorrido lo tome como que inicio sesion*/
			$statusflag=1;
			$cambioSesion="UPDATE evento SET status='".$statusflag."' WHERE nombre='".$nombre."' AND apellido='".$apellido."' AND pass='".$pass."'";
			mysql_query($cambioSesion);
 
			/*Intento imprimir los registros obtenidos*/
			$array=mysql_fetch_array($qqq);
			echo($array["nombre"]);
			echo(" ".$array["apellido"]." ");
 
			echo('Disfrute del 1er Congreso Tecnologia Productiva...');
 
/**********************STREAMING***************************************/
					///Video en vivo
/**********************STREAMING**************************************/
			}
 
		else {
			echo("No autorizado");
			printf('<a href="ingresoEventoSesion.html" title="ingrese aqui" target="_new">Intente de nuevo</a>');
			}
		}
		catch(Exception $error){}
	}
else{
echo("Inserte datos...");
 printf('<a href="ingresoEventoSesion.html" title="ingrese aqui" target="_new">Intente de nuevo</a>');
 }
 
mysql_close();
 
?>
<!---------------------------------------------------------------------------------------------------------------------------------->

No se si lo estoy haciendo bien o existe otro metodo php para hacerlo, o si mi logica me falla...
Agradezco de antemano la ayuda brindada...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Acceder una sola vez a una pagina web con una contraseña

Publicado por Mari Carmen (145 intervenciones) el 19/10/2013 02:30:12
Puedes comentarme que estructura tienen las tablas? Que datos devuelve cada sentencia?
Me es difícil saber que ocurre si no se que contiene cada variable o array extraido de la BBDD.

Así y mirando por encima veo que haces varias consultas a la misma tabla con diferentes condicionales. Intenta hacer la mínima cantidad de conexiones a la BBDD que puedas y tira de lo que ya tienes.
Al hacer primer select estas seleccionando todos los campos del usuario, si escribe bien la contraseña y el apellido. Utiliza eso.
No se que devuelve esa consulta pero en el array que te devuelve esta ya el status metido y solo hace falta consultar la variable especifica.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Acceder una sola vez a una pagina web con una contraseña

Publicado por Mari Carmen (145 intervenciones) el 19/10/2013 04:43:55
Esto es a grandes rasgos lo que yo cambiaría de de tu código siguiendo mas menos tu estructura. Quiero que veas que de la forma en la que te decía al inicio es mucho mas sencillo de ver que estás haciendo.

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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
//Esto es a muy grandes rasgos lo que hace las clases que te comenté.
class miclase_mysqli extends mysqli {
    public function __construct($host, $usuario, $pass, $bd) {
        parent::__construct($host, $usuario, $pass, $bd);
        if (mysqli_connect_error()) {
            die('Error de Conexión (' . mysqli_connect_errno() . ') '
                    . mysqli_connect_error());
        }
    }
 
    public function dame_evento($nombre,$apellido,$password)
    {
        $array=array();
 
        //Iniciamos una sentencia para evitar problemas con inyeccion de código
        $sentencia = $this->stmt_init();
        //Preparamos la sentencia. Si es correcta entonces hacemos el resto
        if ($sentencia->prepare('SELECT * FROM evento WHERE nombre=? AND apellido=? AND pass=?')){
 
            //Le decimos que tipo de variables le vamos a pasar, en este caso 3 strings 
            //asi que los escapará de forma adecuada para evitar problemas
            $sentencia->bind_param('sss', $nombre, $apellido, $password);
 
            //Ejecuta la sentencia que está preparada.
            $sentencia->execute();
 
            //Nombre de las columnas o variables que pides a la BBDD (como has 
            //puesto * no tengo ni idea de cuantas columnas tiene tu BBDD) así
            //que asumeré que hay 4 columnas y se llaman nombre, apellido,
            //contraseña y estado. Si solo contiene estas 4 columnas entonces mejor
            //que cambies el * por status, ya que el resto ya lo conocemos y asi
            //este apartado es más sencillo.
            $sentencia->bind_result($nom,$ape,$pass,$status);
 
            //confeccionamos el array (presupongo que devolverá más de un valor la consutla.
            //Si la consulta solo es para saber si existe el ususario o no este codigo es más simple.
            while ($sentencia->fetch()) {
                $array[]=array("nombre"=>$nom,"apellido"=>$ape,"pass"=>$pass,"status"=>$status);
            }
 
        }else
            die('Error,la sentencia no es correcta.');
        $sentencia->close();
 
        return $array;
    }
 
 
    public function actualiza_Status($nombre,$apellido,$password)
    {
        $sentencia = $this->stmt_init();
        //Creo que en esta sentencia no hace falta el pass pero lo pongo de
        //todos modos al ser lo que tu has elegido. Supongo que por algo será.
        if ($sentencia->prepare('UPDATE evento SET status=1 WHERE nombre=? AND apellido=? AND pass=?')){
            $sentencia->bind_param('sss', $nombre, $apellido, $password);
            $sentencia->execute();
            //Devolvemos el numero de filas afectadas
            return $sentencia->affected_rows;
        }
        $sentencia->close();
        return 0;
    }
}
 
 
$nombre   = ((isset($_POST['nombre'])   && !empty($_POST['nombre'])  )?$_POST['nombre']  :false);
$apellido = ((isset($_POST['apellido']) && !empty($_POST['apellido']))?$_POST['apellido']:false);
$pass     = ((isset($_POST['pass'])     && !empty($_POST['pass'])    )?$_POST['pass']    :false);
 
if($nombre && $apellido && $pass){
 
    //Conecta a la BBDD
    $BD = new miclase_mysqli('localhost', "USERDB", "PASSDB", "TABLADB");
 
    //Recogemos los resultados del select
    $resultados=$BD->dame_evento($nombre,$apellido,$pass);
 
    //Contamos las filas del select
    if(count($resultados)>0)
    {
        //Actualizamos el estado del usuario en todas sus filas
        //Nos devuelve el valor de las filas modificadas.
        $BD->actualiza_Status($nombre,$apellido,$pass);
 
        //Por cada fila de nuestro select enseñamos el ususario
        //y apellido, como tenias en el código
        //Esta parte creo que es redundante y no hace falta.
        foreach($resultados as $resultado){
            echo "Nombre: ".$resultado["nombre"]."\n".
                 "Apellido: ".$resultado["apellido"]."\n";
        }
        echo 'Disfrute del 1er Congreso Tecnologia Productiva...';
/**********************STREAMING***************************************/
                    ///Video en vivo
/**********************STREAMING**************************************/
        $BD->close();
        die("Muere...");
 
    }else{
        echo "No autorizado";
        echo '<a href="ingresoEventoSesion.html" title="ingrese aqui" target="_new">Intente de nuevo</a>';
    }
    $BD->close();
}else{
    echo "Inserte datos...";
    echo '<a href="ingresoEventoSesion.html" title="ingrese aqui" target="_new">Intente de nuevo</a>';
}


Por otra parte esto es lo que creo a mi libre interpretación es lo que quieres hacer.

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
74
75
76
77
78
79
80
81
<?php
class miclase_mysqli extends mysqli {
    public function __construct($host, $usuario, $pass, $bd) {
        parent::__construct($host, $usuario, $pass, $bd);
        if (mysqli_connect_error()) {
            die('Error de Conexión (' . mysqli_connect_errno() . ') '
                    . mysqli_connect_error());
        }
    }
 
    public function dame_Status($nombre=false, $apellido=false, $password=false)
    {
        //Compruebo que las variables de entrada existen.
        if($nombre === false && $apellido === false && $password === false){
            return 0;
        }
        $status=0;
        $sentencia = $this->stmt_init();
        if ($sentencia->prepare('SELECT status FROM evento WHERE nombre=? AND apellido=? AND pass=?')){
            $sentencia->bind_param('sss', $nombre, $apellido, $password);
            $sentencia->execute();
            $sentencia->bind_result($status);
            $sentencia->fetch();
        }else{
            die('Error,la sentencia no es correcta.');
        }
        $sentencia->close();
        return $status;
    }
 
 
    public function actualiza_Status($nombre=false, $apellido=false)
    {
        //Compruebo que las variables de entrada existen.
        if($nombre === false && $apellido === false){
            return 0;
        }
        $sentencia = $this->stmt_init();
        if ($sentencia->prepare('UPDATE evento SET status=1 WHERE nombre=? AND apellido=?')){
            $sentencia->bind_param('ss', $nombre, $apellido);
            $sentencia->execute();
            //Este update entiendo que solo puede devolver 1.
            return $sentencia->affected_rows;
        }
        $sentencia->close();
        return 0;
    }
}
 
 
 
$nombre   = ((isset($_POST['nombre'])   && !empty($_POST['nombre'])  )?$_POST['nombre']  :false);
$apellido = ((isset($_POST['apellido']) && !empty($_POST['apellido']))?$_POST['apellido']:false);
$pass     = ((isset($_POST['pass'])     && !empty($_POST['pass'])    )?$_POST['pass']    :false);
 
if($nombre && $apellido && $pass){
 
    $BD = new miclase_mysqli('localhost', "USERDB", "PASSDB", "TABLADB");
    $resulultado=$BD->dame_Status($nombre,$apellido,$pass);
    if($resultado==1)
    {
        $BD->actualiza_Status($nombre,$apellido,$pass);
        echo "Nombre: $nombre\n".
             "Apellido: $apellido\n".
             'Disfrute del 1er Congreso Tecnologia Productiva...';
/**********************STREAMING***************************************/
                    ///Video en vivo
/**********************STREAMING**************************************/
        $BD->close();
        die();
 
    }else{
        echo "No autorizado";
        echo '<a href="ingresoEventoSesion.html" title="ingrese aqui" target="_new">Intente de nuevo</a>';
    }
    $BD->close();
}else{
    echo "Inserte datos...";
    echo '<a href="ingresoEventoSesion.html" title="ingrese aqui" target="_new">Intente de nuevo</a>';
}
?>


Quiero que sepas que no he ejecutado ninguno de los dos códigos y es posible que tengan muchos errores estilo punto y coma o variables mal puestas o hasta los algoritmos que interactúan con la BBDD, a saber. Pero en esencia quiero que veas que el código es mucho más legible de esta forma. Si hay errores es tu tarea de buscar la solución.

PD: El método que usas para conectarte a la BBDD está obsoleto y debe ser cambiado por la extensión mysqli o PDO_MySQL. En versiones futuras será eliminada. Fuente : http://www.php.net/manual/es/intro.mysql.php.
PD1: Toda la información que puedes necesitar sobre mysqli la encontraras en http://www.php.net/manual/es/mysqli.construct.php

Espero te ayude en algo.
Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Acceder una sola vez a una pagina web con una contraseña

Publicado por franklyn (5 intervenciones) el 19/10/2013 19:39:57
CREATE TABLE `evento` (
`idevento` int(11) NOT NULL AUTO_INCREMENT,
`nombre` varchar(45) DEFAULT NULL,
`apellido` varchar(45) DEFAULT NULL,
`pass` varchar(25) DEFAULT NULL,
`status` int(11) DEFAULT NULL,
PRIMARY KEY (`idevento`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COMMENT=' ';

el valor status tiene originalmente valor cero, al pasar pr el condicional >> if(mysql_result($q,0) && mysql_result($qq,0)<< este cambia a uno, pero si vuelvo a ejecutar el codigo, no deberia pasar por el condicional mysql_result($qq,0), donde $condicion="SELECT * FROM evento WHERE status='0'";
$qq=mysql_query($condicion,$link);

Aun siguiendo sus recomendaciones me pasa lo mismo, el usuario puede acceder cuantas veces quiera. Debo tener un error mas de de utilizacion de metodos de SQL que de logica, supongo...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Acceder una sola vez a una pagina web con una contraseña

Publicado por Mari Carmen (145 intervenciones) el 20/10/2013 18:14:57
Es decir que quieres que el usuario SOLO entre la primera vez y no pueda entrar nunca más?

Entonces de mi segundo código y como imaginé que seria la estructura quedaría así.
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
<?php
class miclase_mysqli extends mysqli {
    public function __construct($host, $usuario, $pass, $bd) {
        parent::__construct($host, $usuario, $pass, $bd);
        if (mysqli_connect_error()) {
            die('Error de Conexión (' . mysqli_connect_errno() . ') '
                    . mysqli_connect_error());
        }
    }
 
    public function dame_Status($nombre=false, $apellido=false, $password=false)
    {
        //Compruebo que las variables de entrada existen.
        if($nombre === false && $apellido === false && $password === false){
            return 0;
        }
        //Defino mi variable por defcto a 1, ya que no tendrá acceso si no
        //escribe bien el usuario y contraseña
        $status=1;
        //Crea una nueva sentencia
        $sentencia = $this->stmt_init();
        //Prepara la sentencia a realizar
        if ($sentencia->prepare('SELECT status FROM evento WHERE nombre=? AND apellido=? AND pass=?')){
            //Le damos los valores de los parametros donde hay un ?
            $sentencia->bind_param('sss', $nombre, $apellido, $password);
            //Ejecuta la sentencia
            $sentencia->execute();
            //Enlaza el resultado con la variable $status
            $sentencia->bind_result($status);
            //Realiza la asignación a la variable
            $sentencia->fetch();
        }else{
            die('Error,la sentencia no es correcta.');
        }
        //Cerramos la sentencia
        $sentencia->close();
        //Devolvemos el valor de la variable. Que será 0 o 1.
        return $status;
    }
 
 
    public function actualiza_Status($nombre=false, $apellido=false)
    {
        //Compruebo que las variables de entrada existen.
        if($nombre === false && $apellido === false){
            return 0;
        }
        //Crea una nueva sentencia
        $sentencia = $this->stmt_init();
        //Prepara la sentencia
        if ($sentencia->prepare('UPDATE evento SET status=1 WHERE nombre=? AND apellido=?')){
            //Le damos los valores de los parametros donde hay un ?
            $sentencia->bind_param('ss', $nombre, $apellido);
            //Ejecuta la sentencia
            $sentencia->execute();
            //Nos devuelve las filas afectadas por el update. Así que entiendo que
            // debe devolver 1 si ha sido correcto y 0 si no.
            return $sentencia->affected_rows;
        }else{
            die('Error,la sentencia no es correcta.');
        }
        //Cerramos la sentencia
        $sentencia->close();
        return 0;
    }
}
 
 
 
$nombre   = ((isset($_POST['nombre'])   && !empty($_POST['nombre'])  )?$_POST['nombre']  :false);
$apellido = ((isset($_POST['apellido']) && !empty($_POST['apellido']))?$_POST['apellido']:false);
$pass     = ((isset($_POST['pass'])     && !empty($_POST['pass'])    )?$_POST['pass']    :false);
 
if($nombre && $apellido && $pass){
 
    //Creamos nueva conexion a la BBDD
    $BD = new miclase_mysqli('localhost', "USERDB", "PASSDB", "TABLADB");
    //Realiza el select para que te devuelva el status actual.
    $resulultado=$BD->dame_Status($nombre,$apellido,$pass);
    //Si el status esta a 0 significa que no ha entrado nunca
    //por lo que le dejamos pasar
    if($resultado==0)
    {
        //Actualizamos el status a 1 asi no podrá pasar más
        $BD->actualiza_Status($nombre,$apellido);
        echo "Nombre: $nombre\n".
             "Apellido: $apellido\n".
             'Disfrute del 1er Congreso Tecnologia Productiva...';
/**********************STREAMING***************************************/
                    ///Video en vivo
/**********************STREAMING**************************************/
        //Cerramos la conexion a la base de datos
        $BD->close();
        exit();
 
    }else{
        //Los datos han sido incorrectos, asi que cerramos la conexion a la BBDD
        $BD->close();
        echo "No autorizado";
        echo '<a href="ingresoEventoSesion.html" title="ingrese aqui" target="_new">Intente de nuevo</a>';
    }
 
}else{
    echo "Inserte datos...";
    echo '<a href="ingresoEventoSesion.html" title="ingrese aqui" target="_new">Intente de nuevo</a>';
}
?>

Un saludo y espero que ahora te sirva.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Acceder una sola vez a una pagina web con una contraseña

Publicado por Franklyn (5 intervenciones) el 18/11/2013 04:08:15
agradecido con tu respuesta, me ha sido muy util. mysqli me resulto efectivo y bastante seguro ya falta poco para terminar el proyecto y he logrado incluir modulos de registro y reestauracion de estatus de usuarios...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Acceder una sola vez a una pagina web con una contraseña

Publicado por Mari Carmen (145 intervenciones) el 18/11/2013 04:28:58
Pues Animo!! Dale caña!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar