Foros del Web » Programando para Internet » PHP »

No me deja loguar si creo usuarios con un procedure

Estas en el tema de No me deja loguar si creo usuarios con un procedure en el foro de PHP en Foros del Web. Ambos registran exactamente igual, pero cuando deseo loguearme, no puedo solo con los registrados en el primer método No puedo loguearme, solo si creo un ...
  #1 (permalink)  
Antiguo 29/07/2010, 14:21
Avatar de MarioAlejandroCR2  
Fecha de Ingreso: mayo-2010
Ubicación: Esparza - Puntarenas
Mensajes: 98
Antigüedad: 13 años, 10 meses
Puntos: 2
Pregunta No me deja loguar si creo usuarios con un procedure

Ambos registran exactamente igual, pero cuando deseo loguearme, no puedo solo con los registrados en el primer método
No puedo loguearme, solo si creo un usuario con este metodo, "el común":

Código PHP:
<?php
$Accion_Formulario 
$_SERVER['PHP_SELF']; 
if ((isset(
$_POST["OC_insertar"])) && ($_POST["OC_insertar"] == "formita")) {
$insertSQL sprintf("INSERT INTO usuario (id_usuario, nickname, password, nombre, primer_apellido, segundo_apellido, identificacion, email, sexo, fecha_nac, reg) VALUES (0,%s, password(%s), %s, %s, %s, %s, %s, %s, %s, now())",
ObtenerValor($_POST['nickname'], "text"),
ObtenerValor($_POST['password'], "text"),
ObtenerValor($_POST['nombre'], "text"),
ObtenerValor($_POST['primer_apellido'], "text"),
ObtenerValor($_POST['segundo_apellido'], "text"),
ObtenerValor($_POST['identificacion'], "text"),
ObtenerValor($_POST['email'], "text"),
ObtenerValor($_POST['sexo'], "text"),
ObtenerValor($_POST['fecha_nac'], "text"));

mysql_select_db($Basedatos$MiConexion);
$Result1 mysql_query($insertSQL$MiConexion) or die(mysql_error());

//$insertIrA = "login.php";
//$insertIrA = "./exitousr.php?usr=".$_POST['nickname'];
//$insertIrA = "./exitousr.php?sede=".$_POST['sede'];
$insertIrA "./exitousr.php?usr=".$_POST['nickname']."&sede=".$_POST['sede'];
header(sprintf("Location: %s"$insertIrA));

echo 
$_POST['sede'];
};
// fin del if 
?>
Y lo guarda bien, inserto con un procedure, y de mismo modo me registra igual:

Código PHP:
<?php
$Accion_Formulario 
$_SERVER['PHP_SELF']; 
if ((isset(
$_POST["OC_insertar"])) && ($_POST["OC_insertar"] == "formita")) {
$insertSQL sprintf("call insUsuario(0,'".$_POST["nickname"]."','password(".$_POST["password"].")','".$_POST["nombre"]."','".$_POST["primer_apellido"]."','".$_POST["segundo_apellido"]."','".$_POST["identificacion"]."','".$_POST["sexo"]."','".$_POST["fecha_nac"]."','".$_POST["email"]."',now())");

mysql_select_db($Basedatos$MiConexion);
$Result1 mysql_query($insertSQL$MiConexion) or die(mysql_error());

//$insertIrA = "login.php";
//$insertIrA = "./exitousr.php?usr=".$_POST['nickname'];
//$insertIrA = "./exitousr.php?sede=".$_POST['sede'];
$insertIrA "./exitousr.php?usr=".$_POST['nickname']."&sede=".$_POST['sede'];
header(sprintf("Location: %s"$insertIrA));

echo 
$_POST['sede'];
};
// fin del if 
?>
Código:
DELIMITER //

CREATE DEFINER=`root`@`localhost` PROCEDURE `insUsuario`(in id_usuario int,
                            in nickname varchar(25),
                            in password TINYTEXT,
                            in nombre varchar(15),
                            in primer_apellido varchar(15),
                            in segundo_apellido varchar(15),
                            in identificacion varchar(9),
                            in sexo varchar (1),
                            in fecha_nac DATE,
                            in email varchar(45),
                            in reg DATETIME)
begin

insert into usuario values(id_usuario,nickname,password(password),nombre,primer_apellido,segundo_apellido,identificacion,sexo,fecha_nac,email,reg);
	 
end//
Ambos registran exactamente igual, pero cuando deseo loguearme, no puedo solo con los registrados en el primer método

Para loguarse:
Código:
<?php 
require_once('conexion.php'); 

$Accion_Formulario = $_SERVER['PHP_SELF'];
if((isset($_POST['nickname'])) && (isset($_POST['password']))) {
mysql_select_db($Basedatos, $MiConexion);
$AuxSql = sprintf("Select * From usuario usuario Where nickname = '%s' and password = password('%s')", $_POST['nickname'], $_POST['password']);
$Regis = mysql_query($AuxSql, $MiConexion) or die(mysql_error());
$row_Regis = mysql_fetch_assoc($Regis);
$NunFilas = mysql_num_rows($Regis);

if($NunFilas > 0){
//usuario y contraseña válidos, se define una sesion y datos de interes
session_start();
$_SESSION["autenticado"]= "SI";
$_SESSION["nickname"]=$row_Regis['nickname'];
$_SESSION["password"]=$row_Regis['password'];

 //header("Location: ./conexexitosa.php");
 header("Location: ./logindex.php");
}else {
//si no existe le mando otra vez a la portada
//header("Location: index.php?errorusuario=si");
echo "No se logro la autenticacion";
} 
}
?>
De antemano gracias
  #2 (permalink)  
Antiguo 29/07/2010, 15:12
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: No me deja loguar si creo usuarios con un procedure

en el procedure estás usando password(password) y en en la cadena SQL que llama al procedure aplicas otra vez password(".$_POST["password"]."), por ello el procedure hashea el hash, quitalo del SQL o del procedure, por eso no te loguea
  #3 (permalink)  
Antiguo 29/07/2010, 16:44
Avatar de MarioAlejandroCR2  
Fecha de Ingreso: mayo-2010
Ubicación: Esparza - Puntarenas
Mensajes: 98
Antigüedad: 13 años, 10 meses
Puntos: 2
Respuesta: No me deja loguar si creo usuarios con un procedure

Cita:
Iniciado por maycolalvarez Ver Mensaje
en el procedure estás usando password(password) y en en la cadena SQL que llama al procedure aplicas otra vez password(".$_POST["password"]."), por ello el procedure hashea el hash, quitalo del SQL o del procedure, por eso no te loguea
Excelente, lo elimine del registrar, gracias

Etiquetas: procedure, usuarios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:20.