PHP - error al llamar a la funcion login

 
Vista:
Imágen de perfil de xavi
Val: 29
Ha aumentado su posición en 8 puestos en PHP (en relación al último mes)
Gráfica de PHP

error al llamar a la funcion login

Publicado por xavi (15 intervenciones) el 15/09/2017 10:26:11
Hola buenos dias

aver si pueden ayudarme con este error , estoy tratando de implementar un inicio de sesion en la misma pagina donde tengo el php de validacion y registro y me da error pq redeclaro la valiable NULL, alguien podria decirme que es lo que estoy haciendo mal o decirme como puedo hacerlo...... y como puedo aprovechar fuinciones i/o datos que ya existen..... subo codigo para que lo vean......
aver esto es lo que ya tengo implementado y es lo que me verifica y registra al usuario con el formulario de registro.......


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
108
<?php
require('includes/conexion.inc.php');
require('includes/funciones.inc.php');
$errors = array();
if(!empty($_POST))
{
$nombre = $ConDB->real_escape_string($_POST['nombre']);
$apellidos = $ConDB->real_escape_string($_POST['apellidos']);
$usuario = $ConDB->real_escape_string($_POST['usuario']);
$email = $ConDB->real_escape_string($_POST['email']);
$password = $ConDB->real_escape_string($_POST['password']);
$rep_password = $ConDB->real_escape_string($_POST['rep_password']);
 
$captcha = $ConDB->real_escape_string($_POST['g-recaptcha-response']);
 
$activo = 0;
$tipo_usuario = 2;
$secret ='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
	if(!$captcha)
	{
		$errors[] = "Por favor verifica el captcha";
	}
	if(isNull($nombre, $apellidos, $usuario, $email, $password, $rep_password))
	{
		$errors[] = "Debe de rellenar todos los campos";
	}
	if(!isEmail($email))
	{
		$errors[] = "Debe introducir un email valido";
	}
	if(!validaPassword($password,$rep_password))
	{
		$errors[] = "Las contraseñas no coinciden";
	}
	if(usuarioExiste($usuario))
	{
		$errors[] = "El nombre de Usuario $usuario ya existe en la Base de Datos";
	}
	if(emailExiste($email))
	{
		$errors[] = "El email introducido $email ya existe en la Base de Datos";
	}
	 if ($_FILES['imgRemota']['size'] > 0)
 
	{
		$formatos_imagen = array('.png', '.gif', '.jpg');
		$directorio_imagenes = 'img/icons/avatar/';
		$nombre_archivo = basename($_FILES['imgRemota']['name']);
		$nombre_tmp_archivo = $_FILES['imgRemota']['tmp_name'];
		$extension_archivo = substr($nombre_archivo, strrpos($nombre_archivo, '.'));
		if (in_array($extension_archivo, $formatos_imagen))
		{
			if (move_uploaded_file($nombre_tmp_archivo, $directorio_imagenes . $nombre_archivo)) {
				echo "Archivo $nombre_archivo subido correctamente";
			} else {
				echo "Error al subir el archivo";
			}
		}
		else
			{
			echo"Archivo no permitido";
		}
	}
	else
	{
		$nombre_archivo = 'Anonimo.png';
	}
	if(count($errors) == 0)
	{
		$response = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=$secret&response=$captcha");
 
		$arr = json_decode($response , TRUE);
 
		if($arr['success'])
		{
			$passwd_hash = hashPassword($password);
			$token = generateToken();
 
			$registro = registraUsuario($nombre,$apellidos,$usuario,$email,$passwd_hash,$nombre_archivo,$activo,$token,$tipo_usuario);
			if($registro > 0)
			{
				$url = 'http://'.$_SERVER["SERVER_NAME"].'/blog nuevo/includes/PHPMailer/activacion.php?id='.$registro.'&val='.$token;//cambiar blog nuevo por nombre carpeta definitiva
				$asunto = 'Activar cuenta';
				$cuerpo = "Estimad@ $nombre:<br /><br />Para continuar con el Registro, es indispensable que clickee en el siguiente enlace <a href='$url'> Activar Cuenta</a>";
				if(enviarEmail($email, $nombre, $asunto, $cuerpo))
				{
					echo"Para finalizar el proceso de registro siga las instruciones que le hemos mandado al Email: $email";
					echo"<br /><br />";
					echo"Si no encuentra el mensaje en la bandeja de Entrada, Por favor revise su bandeja de correos No deseados";
					echo"<br /><a href='aside.php'>Iniciar Sesion</a>";//cambiar href a pagina definitiva blog.php
					exit;
				}
				else
				{
					$errors[] = "Error al enviar Email";
				}
			}
			else
			{
				$errors[] = "Error al Registrarte";
			}
		}
		else
		{
			$errors[] = "Error al comprobar Captcha";
		}
	}
}
esto son verificaciones y voy invocando funciones del archivo funciones.inc.php.

en este mismo codigo me gustaria tambien implementar el login, llamando a la funcion login que son estas dos funciones aunque solo necesito llamar a al primera , si no me equivoco, que es la funcion isNullLogin

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
function isNullLogin($usuario, $password){
		if(strlen(trim($usuario)) < 1 || strlen(trim($password)) < 1)
		{
			return true;
		}
		else
		{
			return false;
		}
	}
 
	function login($usuario, $password)
	{
		global $ConDB;
 
		$stmt = $ConDB->prepare("SELECT id_usuario, id_tipo, password FROM usuarios WHERE usuario = ? || email = ? LIMIT 1");
		$stmt->bind_param("ss", $usuario, $usuario);
		$stmt->execute();
		$stmt->store_result();
		$rows = $stmt->num_rows;
 
		if($rows > 0) {
 
			if(isActivo($usuario)){
 
				$stmt->bind_result($id_usuario, $id_tipo, $passwd);
				$stmt->fetch();
 
				$validaPassw = password_verify($password, $passwd);
 
				if($validaPassw){
 
					lastSession($id_usuario);
					$_SESSION['id_usuario'] = $id_usuario;
					$_SESSION['tipo_usuario'] = $id_tipo;
 
					header("location: aside.php");
					echo'<input class="btn btn-black-2 desconectar" href="logout.php">Desconectar</a></div>';
					echo'<input class="btn btn-black-1" id="perfil" type="button" name="" href="registro.php" placeholder="Ver Perfil"/>';
 
					} else {
					header("location: aside.php");
         		echo'<input class="btn btn-black" id="login" type="button" name="menu1" ONCLICK="Mostrar_Ocultar(this.button);" action=""placeholder="Iniciar sesion"/>';
					$errors = "La contrase&ntilde;a es incorrecta";
				}
				} else {
					header("location: aside.php");
				echo'<input class="btn btn-black" id="login" type="button" name="menu1" ONCLICK="Mostrar_Ocultar(this.button);" action=""placeholder="Iniciar sesion"/>';
				$errors = 'El usuario no esta activo';
			}
			} else {
				header("location: aside.php");
			echo'<input class="btn btn-black" id="login" type="button" name="menu1" ONCLICK="Mostrar_Ocultar(this.button);" action=""placeholder="Iniciar sesion"/>';
			$errors = "El nombre de usuario o correo electr&oacute;nico no existe";
		}
		return $errors;
	}

asi que la invoco o la llamo.....

1
2
3
4
5
6
7
8
9
10
11
12
13
require('includes/conexion.inc.php');// estas llamadas a estos archivos se puede eliminar??, pues ya los llamo  
require('includes/funciones.inc.php');//al principio cuando hago la validacion y registro en las lineas 2 y 3
$errors = array();//esta creo que pasa lo mismo que con las anteriores lo utilizo en la  linea 4
if(!empty($_POST))
{
$loginUsuario = $ConDB->real_escape_string($_POST['loginUsuario']);//esto no se si usarlo o usar los que
$loginPassword = $ConDB->real_escape_string($_POST['loginPassword']);//tengo al principio para almacenar los datos de usuario y password......  en las lineas 7 a 14
	if(isNullLogin($loginUsuario, $loginPassword)) //aqui el error isNullLogin como en una linea  al principio de codigo de validar registro y registar en la linea 23 , ya lo uso me dice que no lo puedo redeclarar que lo utilice.....
	{
		$errors[] = "Debe de rellenar todos los campos";
	}
	$errors[] = login($loginUsuario, $loginPassword) ;
}

como se puede ver hay mucho codigo que ya uso para el login que ya esta en la validacion del resgitro y registro, me gustaria no duplicar tanto codigo si es posible y si no es posible no pasa nada pero almenos ,
que pueda hacer funcionar el login en la misma pagina junto con la validacion de registro si es posible.....

y aqui el formulario de inicio de sesison que esta en la misma pagina que el formualrio de registro.....

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<form class="" id="menu1" role="menu" aria-labelledby="menu1" name="menu1" action="" method="POST">
  <fieldset>
    <legend class="login text-center">Inicio de sesion</legend>
	<i class="fa fa-user fa-2x" aria-hidden="true"></i>
	    <input class="text-muted user_text" type="text" name="loginUsername" id="loginUsername" placeholder="Usuario">
              <br /><br />
	<i class="fa fa-key fa-2x" aria-hidden="true"></i>
	   <input class="passwd text-muted passwd_text" type="password" name="loginPassword" id="loginPassword" placeholder="Password">
              <br /><br />
	   <input class="checkLogin" type="checkbox" name="recordar" id="recordar">
	<label class="remember text-warning" for="recordar">Recordar</label>
	   <input class="flogin" type="submit" name="submit" id="submit" value="Inicio">
              <br /><br />
	        <a href="">Olvidaste la Contrase&ntilde;a</a>
   </fieldset>
</form>


posiblemente cambiando el isNullLogin en dicha funcion ya funcionaria , tal cual esta , pero con que lo Cambio????
gracias y espero puedan ayudarme con estas dudas y este problema , gracias y saludos
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