Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: emperie en 27 Mayo 2022, 20:31 pm



Título: Necesito ayuda con la captación de datos por formulario y envío a correo eléctronico
Publicado por: emperie en 27 Mayo 2022, 20:31 pm
Buen día, en la universidad me mandaron a hacer un sistema que capture datos de los estudiantes para el servicio comunitario, el estudiante debe de ingresar la cantidad de unidades curriculares cursadas, su cédula, su semestre, nombre. El problema es que los datos deben de llegar al correo del profesor, y la vista un compañero ya la presento, en distintos formularios(Diferentes index, ejemplo:"En uno la cedula y en el otro la carga de notas)".

Entonces, no sé como enviar datos de distintos formularios a mi mismo archivo php, debido a que si tengo 2 formularios en distintas páginas, los datos no los envió juntos, sino que llegan por separado, y este es el problema. Sé que no es una buena practica, si no hubieran aprobado dicho proyecto con esa vista, no tendría problema en hacer solo 1 formulario. Pero en fin, les dejaré el código por sí me pueden ayudar, estaría muy agradecido.

Ejemplo:
 
Código:

index.php


<form action="sendmail.php" method="post">
    <input type="number" name="cedula" placeholder="ingrese su numero de cedula" maxlength=8>
    <input type="submit" value="index2.php" placeholder="Ir a la carga de datos">
<form>


Código:
index2.php

<form action="sendmail.php" method="post">
    <input type="text" name="nombre" placeholder="ingrese su nombre">
    <input type="text" name="apellido" placeholder="Ingrese su apellido">
    <input type="submit" value="#">
<form>





Código:

require("mailer\PHPMailer.php");
require("mailer/SMTP.php");
require("mailer/Exception.php");


  $mail = new PHPMailer\PHPMailer\PHPMailer();


$nombre = $_POST['nombre'];
$apellido = $_POST['apellido'];
$cedula = $_POST['cedula'];


include("index2.php");
include("index.php");



try {
    //Server settings
    $mail->SMTPDebug = 0;                      //Enable verbose debug output
    $mail->isSMTP();                                            //Send using SMTP
    $mail->Host       = 'smtp.gmail.com';                     //Set the SMTP server to send through
    $mail->SMTPAuth   = true;                                   //Enable SMTP authentication
    $mail->Username   = '';                     //SMTP username
    $mail->Password   = '';                               //SMTP pass
    $mail->SMTPSecure = 'tls';            //Enable implicit TLS encryption
    $mail->Port       = 587;                                    //TCP port to connect to; use 587 if you have set `SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS`

    //Recipients
    $mail->setFrom('', 'Mailer');
    $mail->addAddress('', '');     //Add a recipient
 
    //Content
    $mail->isHTML(true);                                  //Set email format to HTML
    $mail->Subject = 'Nuevo ingreso';
    $mail->Body    = "Nueva solicitud: <br>".$nombre."Su apellido es: <br> ".$apellido. "Su cedula es <br>".
     $cedula;
 
    $mail->AltBody = 'This is the body in plain text for non-HTML mail clients';

    $mail->send();
    header("");
    echo 'Message has been sent';
} catch (Exception $e) {
    echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}";
}





Faltan algunos formularios, pero con eso es suficiente para explicar, solo falta la carga
de notas, necesito que este código php envíe todo, si quieren lo puedo subir a github.

Me los envía por separado, por supuesto que el archivo sendmail no lo configure por aquí, por las credenciales y eso...


Muchas gracias, y espero que me puedan ayudar, se los agradecería un montón.

 ;D ;D ;D






Título: Re: Necesito ayuda con la captación de datos por formulario y envío a correo eléctronico
Publicado por: l337* en 24 Junio 2022, 04:57 am
hay necesidad de persistir los datos o solo tienes que enviar la informacion capturada de los formularios por email?

si es lo ultimo, podrias usar una sesion para guardar temporalmente los datos capturados, solo asegurate de borrarlos al mandar correo.

como dices, no es buena practica y ya esta aprobado, ni modo a darle  ;D


Título: Re: Necesito ayuda con la captación de datos por formulario y envío a correo eléctronico
Publicado por: Agente Naranja en 4 Julio 2022, 05:32 am
Personalmente, borraría uno de los archivos y simplemente copiaría los <input> de uno al form del otro, y listo. Problema resuelto, en menos de un minuto.

Si el profesor no te deja hacerlo (que puede pasar, si es un profe cabrón) pues puedes usar una cookie o una sesión para guardar los datos, y cuando veas que han sido enviado todos, entonces mandas el email.