Recogida de datos y envío por mail

No tengo mucha idea de php, pero me metí porque parecía muy sencillo, y por hacer un favor, y se me está complicando. A ver si me pueden echar una mano.
Formulario html: con Nombre, y email + botón submit, que tiene en el action llamar al script php llamado addreg.php.Luego en el addreg.php, como entendéreis, es para agregar esos datos capturados del formulario a una base de datos mysql que tiene los siguientes campos.
ID-Autonumerico
Nombre
Email
Y os explico lo que necesito hacer. El usuario mete su datos en el formulario, y una vez se añade el registro, necesitaria mandar la información relativa a ese usuario por mail al propio correo electronico del usuario, con el ID.
Entiendo, que al no pasar el campo ID desde el formulario, antes de cerrar la conexión, podría lanzar un Select sobre la tabla para obtener el valor de este ID, comparando por el mail por ejemplo, y a continuación hacer el envío del mail, con las variables que tengo almacenadas, ¿usando la funcion mail() no?
Hasta ahora tengo este codigo... Perdonad si os duelen los ojos, que es un poco chapuza.
<?php
//parameros de conexion
$user = "qra630";
$pass = "Jnvision1994";
$server = "217.76.143.16";
$bdd = "qra630";
//creo cadena de conexion
$cn = mysql_connect($server, $user, $pass) or die(mysql_error());
//selecciono base datos a usar
mysql_select_db($bdd) or die(mysql_error());
// recojo las variables enviadas por el formulario
$nombre = $_POST["nombre"];
$email = $_POST["email"];
//creo el query para insercion en mysql
$sql = "INSERT INTO datos (nombre, email) VALUES ('".$nombre."', '".$email."')";
echo mysql_error();
//creo el recordset con el query para ejecutarlo
mysql_query($sql, $cn);
//verifico si los datos se agregaron o no
if (mysql_affected_rows()>0){
echo "Datos recogidos correctamente. En breve recibira un email con su nº de participacion";
$sql2 = "SELECT ID FROM datos where email = '$email'";
$id =mysql_query($sql2);
// Ahora se envía el e-mail usando la función mail() de PHP
//$headers = 'From: '.$email_from."\r\n";
//'Reply-To: '.$email_from."\r\n";
//'X-Mailer: PHP/' . Phpversion();
//@mail($email, "correo de prueba", "correo de prueba, tu id es: "$id"", $headers);
}
else{
echo "Se ha producido un error. Intentelo de nuevo";
}
//cierro conexion
mysql_close();
?>
</body>
</html>
Por favor, a ver si alguien me puede echar una mano con esto, que para muchos de vosotros será una tonteria, pero yo llevo tres días amargado intentando solucionarlo.

1 respuesta

Respuesta
1

El código no es que sea chapuza, pero se puede mejorar, siempre se puede mejorar, mirate lo siguiente:

.-Phpmailer (es una librería para el envío de correos, esta muy bien)

.- filter_input (para no usar $_POST, nunca se debe usar $_POST)

.- PDO (alternativa a mysql_connect, mucho mas seguro y mas funcionalidades)

.- MVC una forma de crear código con relación a objetos.

Dicho esto, ¿en dónde te falla? ¿Qué errores te da?

Muy buenas, y muchas gracias por responder.

Evidentemente, mi programación se de sobra que no es la más adecuada, pero tampoco tenía tiempo para pararme a hacer las cosas bien porque correo algo de prisa. De todas maneras, me lo apunto para futuras ocasiones revisarlo.

El problema que tengo, es que actualmente, evidentemente con la parte del código del mail sin comentar, no como te pegue a ti, cuando realizo la operación, me devuelve:

PHP Parse error: syntax error, unexpected T_VARIABLE in D:\XVRT\xxxxxxx.com\Html\ADDREG.PHP on line 44

y yo no le veo el error de sintaxis

Siento responder tan tarde, he estado liado, creo que el problema en un ";" que no esta bien puesto.

Ese es el tipo de error, de todas formas, copiando el código no llego a 44 lineas, a si que dime cual es la linea 44 en tu código para revisarlo mejor, pegamelo exactamente como tu lo tienes para poder hacerlo mejor.

Del mismo modo, recuerda que puedes pegar código con el anteultimo botón de la derecha.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas