elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web (Moderador: #!drvy)
| | |-+  Como hago para recibir (correo_o_telefono y contraseña en mi base de datos. Aqui mi codigo
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Como hago para recibir (correo_o_telefono y contraseña en mi base de datos. Aqui mi codigo  (Leído 2,252 veces)
GuerrerOdeDios

Desconectado Desconectado

Mensajes: 7



Ver Perfil
Como hago para recibir (correo_o_telefono y contraseña en mi base de datos. Aqui mi codigo
« en: 14 Febrero 2024, 23:40 pm »

Código
  1. <?php
  2.  
  3. $user = "root";
  4. $pass = "";
  5. $host = "localhost";
  6. $database = "dbformulario";
  7.  
  8. $connection = mysqli_connect($host, $user, $pass, $database);
  9.  
  10. if (!$connection) {
  11.    die("Error de conexión: " . mysqli_connect_error());
  12. }
  13.  
  14. // Verificar si se enviaron datos mediante el método POST
  15. if ($_SERVER["REQUEST_METHOD"] == "POST") {
  16.    // Verificar si se recibieron los datos del formulario
  17.    if (isset($_POST["correo_o_telefono"], $_POST["contraseña"])) {
  18.        $correo_o_telefono = $_POST["correo_o_telefono"];
  19.        $contraseña = $_POST["contraseña"];
  20.  
  21.        // Verificar si el correo_o_telefono es un correo electrónico o un número de teléfono
  22.        if (filter_var($correo_o_telefono, FILTER_VALIDATE_EMAIL)) {
  23.            $where_clause = "correo=?";
  24.        } else {
  25.            $where_clause = "telefono=?";
  26.        }
  27.  
  28.        // Consulta preparada
  29.        $consulta = "SELECT * FROM tabla_form WHERE $where_clause";
  30.        $stmt = mysqli_prepare($connection, $consulta);
  31.        mysqli_stmt_bind_param($stmt, 's', $correo_o_telefono);
  32.        mysqli_stmt_execute($stmt);
  33.        $resultado = mysqli_stmt_get_result($stmt);
  34.  
  35.        if (mysqli_num_rows($resultado) == 1) {
  36.            $fila = mysqli_fetch_assoc($resultado);
  37.            // Verificar la contraseña utilizando password_verify
  38.            if (password_verify($contraseña, $fila['contraseña'])) {
  39.                $_SESSION['loggedin'] = true;
  40.                $_SESSION['nombre_completo'] = $fila['nombre_completo'];
  41.                // Otros datos que quieras guardar en la sesión
  42.  
  43.                // Redirigir a la página principal
  44.                header('Location: welcome.html');
  45.                exit;
  46.            } else {
  47.                echo "Contraseña incorrecta";
  48.            }
  49.        } else {
  50.            echo "Usuario no encontrado";
  51.        }
  52.  
  53.        mysqli_stmt_close($stmt);
  54.    } else {
  55.        echo "Por favor, complete todos los campos del formulario";
  56.    }
  57. }
  58.  
  59. mysqli_close($connection);
  60. ?>
  61.  


En línea

vicram10

Desconectado Desconectado

Mensajes: 12


Vive la vida como yo lo hago Estilo HitenMitsurugi


Ver Perfil WWW
Re: Como hago para recibir (correo_o_telefono y contraseña en mi base de datos. Aqui mi codigo
« Respuesta #1 en: 22 Febrero 2024, 17:43 pm »

Como sería la pregunta?, podes explicar un poco mas?


En línea

Parado_larga_duracion_ESP

Desconectado Desconectado

Mensajes: 49


Ver Perfil
Re: Como hago para recibir (correo_o_telefono y contraseña en mi base de datos. Aqui mi codigo
« Respuesta #2 en: 23 Febrero 2024, 10:47 am »

Vaya. ChatGPT me ha dado un código muy parecido.

Código
  1. <?php
  2.  
  3. // Establecer conexión PDO con MySQL
  4. $dsn = 'mysql:host=localhost;dbname=nombre_de_tu_base_de_datos';
  5. $usuario_bd = 'tu_usuario';
  6. $contrasena_bd = 'tu_contrasena';
  7.  
  8. try {
  9.    $conexion = new PDO($dsn, $usuario_bd, $contrasena_bd);
  10.    $conexion->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  11. } catch (PDOException $e) {
  12.    die("Error al conectar con la base de datos: " . $e->getMessage());
  13. }
  14.  
  15. // Verificar si se han enviado datos de inicio de sesión
  16. if ($_SERVER["REQUEST_METHOD"] == "POST") {
  17.    // Obtener los datos enviados
  18.    $usuario = $_POST["usuario"];
  19.    $contrasena = $_POST["contrasena"];
  20.  
  21.    // Consulta preparada para buscar el usuario en la base de datos
  22.    $consulta = $conexion->prepare("SELECT * FROM usuarios WHERE nombre_usuario = ?");
  23.    $consulta->execute([$usuario]);
  24.    $usuario_encontrado = $consulta->fetch(PDO::FETCH_ASSOC);
  25.  
  26.    if ($usuario_encontrado && password_verify($contrasena, $usuario_encontrado['contrasena'])) {
  27.        // Inicio de sesión exitoso, redirigir al usuario a la página de inicio
  28.        $_SESSION["usuario"] = $usuario;
  29.        header("Location: inicio.php");
  30.        exit;
  31.    } else {
  32.        // Credenciales incorrectas, mostrar mensaje de error
  33.        echo "Usuario o contraseña incorrectos.";
  34.    }
  35. }
  36. ?>
  37.  
  38.  
  39.  


Solo cambia que usa la API de PDO. Porque se lo he pedido expresamente.

Pues ya está, ya lo tienes, ¿no?
En línea

Danielㅤ


Desconectado Desconectado

Mensajes: 1.681


🔵🔵🔵🔵🔵🔵🔵


Ver Perfil
Re: Como hago para recibir (correo_o_telefono y contraseña en mi base de datos. Aqui mi codigo
« Respuesta #3 en: 23 Febrero 2024, 15:36 pm »

Hola, los códigos de ChatGPT son códigos preestablecidos, es decir que algún programador los creó y lo introdujo en su gran base de datos.
Por otro lado las contraseñas las tenes que guardar cifradas, nunca en texto plano.


Saludos
En línea

Parado_larga_duracion_ESP

Desconectado Desconectado

Mensajes: 49


Ver Perfil
Re: Como hago para recibir (correo_o_telefono y contraseña en mi base de datos. Aqui mi codigo
« Respuesta #4 en: 23 Febrero 2024, 15:59 pm »

Sí, es cierto, es ilegal no cifrarlos.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines