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