Tengo una bd donde el usuario, el password, y demás datos están ya ingresados, a excepción del correo electrónico. Tengo un php que al ingresar el user y el pass verifica si existe o no el correo. Si existe el correo imprime "Ingreso Exitoso". Por el contrario, si no existe el correo, manda a otra página donde: a) pide que ingrese un correo y que cambie el pass que viene por defecto. Hasta acá el tema funciona, incluidas las páginas de error en caso de no existir el usuario o poner mal el pass.
Mi problema surge al momento de: Ingresar el correo y Cambiar el Password. En lugar de ingresar el correo al usuario antes logueado, inserta una fila vacía en la bd y no doy con el problema.
Resumiendo: Después del "login", una vez verificados user y pass (y comprobado que no existe el correo) envía a "registro" para el ingreso del correo y cambio de password del mismo usuario antes logueado.
login.php
Código PHP :
<?php session_start(); $_SESSION['rut']; header("Cache-control: private"); include("conexion.php"); $sql = "select * from usuarios where rut = '". mysql_real_escape_string ($_POST['rut'])."' and password = '".mysql_real_escape_string ($_POST['pass'])."' limit 1"; $resultado=mysql_query($sql,$conexion) or die (mysql_error()); $data = mysql_fetch_array($resultado); if($data==0) { header('Location: login_error.html');; } else if (! $data['correo']) { header('Location: registro.php');; } else {echo "Ingreso exitoso";} ?>
login.php hace lo que tiene que hacer. Si no existe el correo entonces manda a "registro.html" donde está el formulario "registro" que tiene los siguientes imput: "correo", "pass" y "cpass" y en action va a "reg.php", el cual tiene el siguiente script:
Código PHP :
<?php session_start(); header("Cache-control: private"); if(isset($_SESSION["rut"])){$rut=$_SESSION["rut"];} include("conexion.php"); $mail = "insert into usuarios (correo) values ('". mysql_real_escape_string ($_POST['correo'])."')"; $result = mysql_query($mail); echo "Correo ingresado exitosamente"; ?>
Así como está, lo estuve probando sólo con un form para ingresar el correo pero: a) muestra el mensaje "Correo ingresado exitosamente" pero en la bd me inserta una fila vacía. Si además le inserto la instrucción "UPDATE" para cambiar el password ahí sí que no hace nada. Me arroja errores varios que siempre terminan indicándome la última línea del script donde va el " ?> " Por eso en el script anterior no aparece el update porque tenía la esperanza de al menos hacer funcionar el insert.
¿Alguna idea de dónde está el fallo? A todo esto, el usuario "nobody" que accede a la bd tiene sólo privilegios de "SELECT", "INSERT" y "UPDATE".
¡Ayuda por favor! De antemano muchísimas gracias de antemano por la buena voluntad.