Como hago para recibir (correo_o_telefono y contraseña en mi base de datos. Aqui mi codigo

(1/1)

GuerrerOdeDios:
Código
<?php
session_start();
 
$user = "root";
$pass = "";
$host = "localhost";
$database = "dbformulario";
 
$connection = mysqli_connect($host, $user, $pass, $database);
 
if (!$connection) {
   die("Error de conexión: " . mysqli_connect_error());
}
 
// Verificar si se enviaron datos mediante el método POST
if ($_SERVER["REQUEST_METHOD"] == "POST") {
   // Verificar si se recibieron los datos del formulario
   if (isset($_POST["correo_o_telefono"], $_POST["contraseña"])) {
       $correo_o_telefono = $_POST["correo_o_telefono"];
       $contraseña = $_POST["contraseña"];
 
       // Verificar si el correo_o_telefono es un correo electrónico o un número de teléfono
       if (filter_var($correo_o_telefono, FILTER_VALIDATE_EMAIL)) {
           $where_clause = "correo=?";
       } else {
           $where_clause = "telefono=?";
       }
 
       // Consulta preparada
       $consulta = "SELECT * FROM tabla_form WHERE $where_clause";
       $stmt = mysqli_prepare($connection, $consulta);
       mysqli_stmt_bind_param($stmt, 's', $correo_o_telefono);
       mysqli_stmt_execute($stmt);
       $resultado = mysqli_stmt_get_result($stmt);
 
       if (mysqli_num_rows($resultado) == 1) {
           $fila = mysqli_fetch_assoc($resultado);
           // Verificar la contraseña utilizando password_verify
           if (password_verify($contraseña, $fila['contraseña'])) {
               $_SESSION['loggedin'] = true;
               $_SESSION['nombre_completo'] = $fila['nombre_completo'];
               // Otros datos que quieras guardar en la sesión
 
               // Redirigir a la página principal
               header('Location: welcome.html');
               exit;
           } else {
               echo "Contraseña incorrecta";
           }
       } else {
           echo "Usuario no encontrado";
       }
 
       mysqli_stmt_close($stmt);
   } else {
       echo "Por favor, complete todos los campos del formulario";
   }
}
 
mysqli_close($connection);
?>
 

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

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

Código
<?php
session_start();
 
// Establecer conexión PDO con MySQL
$dsn = 'mysql:host=localhost;dbname=nombre_de_tu_base_de_datos';
$usuario_bd = 'tu_usuario';
$contrasena_bd = 'tu_contrasena';
 
try {
   $conexion = new PDO($dsn, $usuario_bd, $contrasena_bd);
   $conexion->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
   die("Error al conectar con la base de datos: " . $e->getMessage());
}
 
// Verificar si se han enviado datos de inicio de sesión
if ($_SERVER["REQUEST_METHOD"] == "POST") {
   // Obtener los datos enviados
   $usuario = $_POST["usuario"];
   $contrasena = $_POST["contrasena"];
 
   // Consulta preparada para buscar el usuario en la base de datos
   $consulta = $conexion->prepare("SELECT * FROM usuarios WHERE nombre_usuario = ?");
   $consulta->execute([$usuario]);
   $usuario_encontrado = $consulta->fetch(PDO::FETCH_ASSOC);
 
   if ($usuario_encontrado && password_verify($contrasena, $usuario_encontrado['contrasena'])) {
       // Inicio de sesión exitoso, redirigir al usuario a la página de inicio
       $_SESSION["usuario"] = $usuario;
       header("Location: inicio.php");
       exit;
   } else {
       // Credenciales incorrectas, mostrar mensaje de error
       echo "Usuario o contraseña incorrectos.";
   }
}
?>
 
 
 


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

Pues ya está, ya lo tienes, ¿no?

Danielㅤ:
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

Parado_larga_duracion_ESP:
Sí, es cierto, es ilegal no cifrarlos.

Navegación

[0] Índice de Mensajes