PHP - No sé envía el formulario post

 
Vista:

No sé envía el formulario post

Publicado por Laura (1 intervención) el 13/05/2024 19:41:33
Mis datos de registro no se envían a la base de datos, ya comprobé la conexión y me aparece que si se estableció conección y está seleccionada la tabla usuarios pero me sale el mensaje que no se ha enviado ningún formulario
Mi botón lo tengo de esta manera
1
<button type="submit" id="registro-btn" name="submit">Registrar</button>

Y el formulario HTML
1
<form action="registro.php" method="POST" id="registration-form" class="form">

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Consulta DB</title>
    <style type="text/css">
        table {
            border: solid 2px #7e7c7c;
            border-collapse: collapse;
        }
 
        th, h1 {
            background-color: #edf797;
        }
 
        td,
        th {
            border: solid 1px #7e7c7c;
            padding: 2px;
            text-align: center;
        }
    </style>
</head>
<body>
 
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
 
// Validación de datos del servidor
$user = "root";
$pass = "";
$host = "localhost";
$dbname = "registro";
 
// Conexión a la base de datos
$connection = mysqli_connect($host, $user, $pass, $dbname);
 
// Verificación de la conexión a la base de datos
if (!$connection) {
    die("No se ha podido conectar con el servidor: " . mysqli_connect_error());
} else {
    echo "<b><h3>Hemos conectado al servidor</h3></b>";
}
 
// Procesamiento del formulario y generación de la tabla
if ($_SERVER && isset($_SERVER["REQUEST_METHOD"]) && $_SERVER["REQUEST_METHOD"] === "POST" && isset($_POST["submit"])) {
    // Establecer parámetros desde los datos POST
    $nombres = $_POST['nombres'];
    $apellidop = $_POST['apellidop'];
    $apellidom = $_POST['apellidom'];
    $correos = $_POST['correos'];
    $cel = $_POST['cel'];
    $fecha = $_POST['fecha'];
    $sex = $_POST['sex'];
    $contrasena = $_POST['contrasena'];
 
    // Función para generar una clave única
    function generarClaveUnica($nombres, $apellidop, $apellidom, $fecha)
    {
        // Obtener las dos primeras letras del nombre
        $nombre_abreviado = substr($nombres, 0, 2);
        // Obtener las dos primeras letras del apellido paterno
        $apellidop_abreviado = substr($apellidop, 0, 2);
        // Obtener las dos primeras letras del apellido materno
        $apellidom_abreviado = substr($apellidom, 0, 2);
        // Extraer el año de nacimiento de la fecha de nacimiento
        $anio_nacimiento = date('Y', strtotime($fecha));
        // Generar un número aleatorio entre 100 y 999
        $numero_aleatorio = mt_rand(100, 999);
        // Concatenar todas las partes para formar la clave única
        $clave_unica = $nombre_abreviado . $apellidop_abreviado . $apellidom_abreviado . $anio_nacimiento . $numero_aleatorio;
        return $clave_unica;
    }
 
    // Generar la clave única
    $clave_unica = generarClaveUnica($nombres, $apellidop, $apellidom, $fecha);
 
    // Insertar datos de registro a la base de datos
    $instruccion_SQL = "INSERT INTO usuarios (clave_unica, nombres, apellidop, apellidom, correos, cel, fecha, sex, contrasena)
    VALUES ('$clave_unica', '$nombres', '$apellidop', '$apellidom', '$correos', '$cel', '$fecha', '$sex', '$contrasena')";
 
    $resultado = mysqli_query($connection, $instruccion_SQL);
 
    if (!$resultado) {
        echo "Error al ejecutar la consulta: " . mysqli_error($connection);
    }
 
    // Consulta para seleccionar todos los datos de la tabla
    $consulta = "SELECT * FROM usuarios";
    $result = mysqli_query($connection, $consulta);
 
    if (!$result) {
        echo "Error al ejecutar la consulta: " . mysqli_error($connection);
    }
 
    echo "<table>";
    echo "<tr>";
    echo "<th><h1>clave_unica</th></h1>";
    echo "<th><h1>Nombre</th></h1>";
    echo "<th><h1>Apellido Paterno</th></h1>";
    echo "<th><h1>Apellido Materno</th></h1>";
    echo "<th><h1>Correo</th></h1>";
    echo "<th><h1>Celular</th></h1>";
    echo "<th><h1>Fecha de Nacimiento</th></h1>";
    echo "<th><h1>Género</th></h1>";
    echo "<th><h1>Contraseña</th></h1>";
    echo "</tr>";
 
    while ($colum = mysqli_fetch_array($result)) {
        echo "<tr>";
        echo "<td><h2>" . $colum['clave_unica'] . "</td></h2>";
        echo "<td><h2>" . $colum['nombres'] . "</td></h2>";
        echo "<td><h2>" . $colum['apellidop'] . "</td></h2>";
        echo "<td><h2>" . $colum['apellidom'] . "</td></h2>";
        echo "<td><h2>" . $colum['correos'] . "</td></h2>";
        echo "<td><h2>" . $colum['cel'] . "</td></h2>";
        echo "<td><h2>" . $colum['fecha'] . "</td></h2>";
        echo "<td><h2>" . $colum['sex'] . "</td></h2>";
        echo "<td><h2>" . $colum['contrasena'] . "</td></h2>";
        echo "</tr>";
    }
    echo "</table>";
 
    mysqli_close($connection);
 
    echo '<a href="index.html"> Volver Atrás</a>';
} else {
    echo "No se ha enviado ningún formulario.";
}
?>
 
</body>
</html>

La base de datos
1
2
3
4
5
6
7
8
9
10
11
CREATE TABLE usuarios (
    clave_unica VARCHAR(20) PRIMARY KEY,
    nombres VARCHAR(50) NOT NULL,
    apellidop VARCHAR(50) NOT NULL,
    apellidom VARCHAR(50) NOT NULL,
    correos VARCHAR(100) NOT NULL,
    cel VARCHAR(20) NOT NULL,
    fecha DATE NOT NULL,
    sex VARCHAR(10) NOT NULL,
    contrasena VARCHAR(255) NOT NULL
);

También tengo un script y que me válida los campos antes de enviar y cuando todo está correcto y le doy al botón sale una ventana que dice:
Localhost: realizó tu registro
El localhost tiene el usuario todos los privilegios, no encuentro el error
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

No sé envía el formulario post

Publicado por Annata (2 intervenciones) el 30/05/2024 08:34:43
I also need guidance on submitting my Pokerogue article
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar