Autor Tema: Creando un enviador de email's  (Leído 1070 veces)

Desconectado Ishamato

  • PHPero Avanzado
  • ****
  • Mensajes: 346
  • Karma: 3
  • Sexo: Masculino
  • PHPero adicto
    • Ver Perfil
Creando un enviador de email's
« en: 12 de Noviembre de 2007, 20:18:33 pm »
Pues bien... no terminé los examenes, justo los estoy empezando pero para desconectar esto me sirbió xDD

No se si lo hice bien pero aquí se lo dejo... me gustaría que me dijerais si encontrais muchos bugs y cuales son xD


Esto sería el código que registraría el email
Código: [Seleccionar]
<?php

include("config.php");

if(isset(
$_POST[&#39;enviar&#39;])) {

$registrar "INSERT INTO emails (correo) VALUE (&#39;"$_POST[&#39;email&#39;]"&#39;)";

} else {

echo 
"Ha sucedido un error, porfavor, contácte con el webmaster.";

if(
mysql_query($registrar)){

echo 
"Se ha registrado su email";

} else {

echo 
"Ha sucedido un error, porfavor, contácte con el webmaster.";

}


?>
[/quote]


Aquí vendría el código que usaríamos cuando quisiésemos mandar un email comunitario
Código: [Seleccionar]

<?php

if(isset($_POST[&#39;enviar&#39;])); {

$enviar = &#39;SELECT * FROM emails //Aqui ya no se seguir T.T 

} else {

echo 
"Ha sucedido un error";

?>



Help xD

<? echo "Aprendiendo y descubriendo poco a poco"; ?>

Comunidad PHPeros

Creando un enviador de email's
« en: 12 de Noviembre de 2007, 20:18:33 pm »

Desconectado lalitros

  • PHPer@ Fijo
  • ***
  • Mensajes: 162
  • Karma: 3
  • Sexo: Masculino
    • Ver Perfil
Re: Creando un enviador de email's
« Respuesta #1 en: 12 de Noviembre de 2007, 22:52:18 pm »
Que onda Ishamato! Un saludo!
Mira, creo que seria mejor hacer esto:

include(&#39;config.php&#39;);
if(isset($_POST[&#39;enviar&#39;])){// Se indica si se pulso el boton enviar
          
if(!empty($_POST[&#39;enviar&#39;])){// Aqui se indica, "Si no estan Vacios, que prosiga a..."
             
$registrar "INSERT INTO emails (correo) VALUES (&#39;".$_POST[&#39;correo&#39;]."&#39;)";// Se registra el email
             
$query = @mysql_query($sql) or die (mysql_error());// se hace la consulta a la base de datos y si sale algo mal, manda el error en pantalla
             
if($query){// Se indica si se establecio correcto el query y se prosigue a...
             
echo "Se ha registrado su email";//  Solucion correcta
} else {
             echo 
"Ha ocurrido un error, porfavor, contacte con el Webmaster";// De lo contrario... manda error.
}
}
}


Y para el otro codigo, necesitarios hacer un form, y un codigo php aparte, seria mas ordenado!
Un saludo!
« Última modificación: 12 de Noviembre de 2007, 22:55:32 pm por lalitros »

Si me dieran a escojer entre el MUNDO y Tu.. Te escojeria a Ti, porque mi MUNDO ERES TU

Desconectado Frank005

  • PHPero Experto
  • *****
  • Mensajes: 580
  • Karma: 3
  • Sexo: Masculino
    • Ver Perfil
Re: Creando un enviador de email's
« Respuesta #2 en: 12 de Noviembre de 2007, 22:55:49 pm »
Yo lo haría asi:

<?php
include("config.php");
if(isset(
$_POST[&#39;enviar&#39;])) {
mysql_query("INSERT INTO emails (correo) VALUE (&#39;".htmlspecialchars($_POST[&#39;email&#39;])."&#39;)") or die(mysql_error());
echo "Se ha registrado con éxito.";
} else {
echo 
"Ha sucedido un error, porfavor, contácte con el webmaster.";
	

}
?>


Ahorras líneas, y tambien utilizé la funcion htmlspecialchars() sirve para que no te metan scripts, esa funcion sirve para mostrar el texto en plano. Y si quieres comprovar si hay algún campo vacío te recomiendo que utilizes la funcion empty()

Mas info www.php.net/empty  ;)

Y ovbiamente debes conectar a la base de datos, si ya tienes un archivo llamado conectar.php puedes incluirlo con este simple código:

include("conectar.php"); // Conectamos a la db

O bien poner esto al principio de tu código:

$conectar mysql_connect(localhostUsuarioDBPassDB) or die(mysql_error());
mysql_select_db(db_NombreDeLaDB$conectar);


Debes modificar ese código con los datos de tu SQL  ;)



Citar
Aquí vendría el código que usaríamos cuando quisiésemos mandar un email comunitario

No entiendo a que te referis con email comunitario. Si deseas enviar información a un email utiliza la funcion mail()  ;)
« Última modificación: 13 de Noviembre de 2007, 00:00:30 am por Frank005 »

Desconectado CarlosRdrz

  • Moderador Global
  • PHPero Master
  • *****
  • Mensajes: 2.505
  • Karma: 131
  • Sexo: Masculino
  • A.k.a. TLX
    • Ver Perfil
Re: Creando un enviador de email's
« Respuesta #3 en: 13 de Noviembre de 2007, 09:20:52 am »
No esta nada mal Frank
Pero htmlspecialchars transforma las etiquetas html (<body> por ejemplo) en texto plano como dices, pero no evita una inyeccion de mysql.
En lugar de usar htmlspecialchars es mejor usar la funcion mysql_real_escape_string, que es la que evita inyecciones sql para proteger bien tus bases de datos.
Se usa exactamente igual que htmlspecialchars

Saludos!
La dedicación de mi respuesta sera directamente proporcional a la dedicación de tu pregunta.
Hacer códigos que entiendan las máquinas es fácil, lo difícil y realmente útil es hacer códigos que entiendan las personas.
http://twitter.com/CarlosRdrz
http://www.carlosrdrz.es

Desconectado Frank005

  • PHPero Experto
  • *****
  • Mensajes: 580
  • Karma: 3
  • Sexo: Masculino
    • Ver Perfil
Re: Creando un enviador de email's
« Respuesta #4 en: 13 de Noviembre de 2007, 17:24:39 pm »
Gracias por la corrección TLX, entonces el código quedaría así:

<?php
include("config.php");
if(isset(
$_POST[&#39;enviar&#39;])) {
mysql_query("INSERT INTO emails (correo) VALUE (&#39;".mysql_real_escape_string($_POST[&#39;email&#39;])."&#39;)") or die(mysql_error());
echo "Se ha registrado con éxito.";
} else {
echo 
"Ha sucedido un error, porfavor, contácte con el webmaster.";
	

}
?>

Desconectado Ishamato

  • PHPero Avanzado
  • ****
  • Mensajes: 346
  • Karma: 3
  • Sexo: Masculino
  • PHPero adicto
    • Ver Perfil
Re: Creando un enviador de email's
« Respuesta #5 en: 14 de Noviembre de 2007, 18:47:56 pm »
Nose si lo entendí...

El email comunitario sería que cuando fuésemos al formulario y pusiéramos el texto que quisiésemos enviar, al darle al botón "enviar", fuera a la base de datos, cogiera todos los mails y les mandara a todos el mismo correo.

No se si es posible hacerlo con php...  :embarassed:

<? echo "Aprendiendo y descubriendo poco a poco"; ?>

Desconectado Frank005

  • PHPero Experto
  • *****
  • Mensajes: 580
  • Karma: 3
  • Sexo: Masculino
    • Ver Perfil
Re: Creando un enviador de email's
« Respuesta #6 en: 14 de Noviembre de 2007, 21:02:46 pm »
Bueno entonces eso ya serían 2 procesos, el de enviar a la db y luego de la db enviarlos a un email.

Ante que nada necesitas mas campos en la db, tu solo tienes el de "correo" y necesitas uno que diga: "asunto" "mensaje".

Para eso necesitas mas campos de textos...

Para enviar de un campo de texto a la db, utiliza el código dicho anteriormente:

<?php
include("config.php");
if(isset(
$_POST[&#39;enviar&#39;])) {
mysql_query("INSERT INTO emails (correo, asunto, mensaje) VALUE (&#39;".mysql_real_escape_string($_POST[&#39;email&#39;])."&#39;),".mysql_real_escape_string($_POST[&#39;asunto&#39;])."&#39;),".mysql_real_escape_string($_POST[&#39;mensaje&#39;])."&#39;)") or die(mysql_error());
echo "Se ha enviado con éxito.";
} else {
echo 
"Ha sucedido un error, porfavor, contácte con el webmaster.";
	

}
?>


Y luego para enviarlos de la db a un email tendrías que hacer un SELECT a la base de datos, yo lo haría de esta forma:

<?php
$select 
mysql_query("SELECT * FROM tabla");
$datos mysql_fetch_array($select);
if(
mail("tuemail@hotmail.com",".$datos[&#39;asunto&#39;].",".$datos[&#39;mensaje&#39;].")){
echo &
#39;Enviado con éxito&#39;;
} else {
echo &
#39;No se pudo enviar&#39;;
}
?>


Ovbiamente debes hacer un isset para comprobar si se pulsó el boton  ;)

Desconectado x.mara.x

  • PHPero Master
  • ******
  • Mensajes: 1.364
  • Karma: 57
  • Sexo: Femenino
    • Ver Perfil
Re: Creando un enviador de email's
« Respuesta #7 en: 17 de Noviembre de 2007, 17:26:31 pm »
esto es para hacer boletines?

Desconectado Frank005

  • PHPero Experto
  • *****
  • Mensajes: 580
  • Karma: 3
  • Sexo: Masculino
    • Ver Perfil
Re: Creando un enviador de email's
« Respuesta #8 en: 17 de Noviembre de 2007, 18:15:26 pm »
Esto es para enviar datos a un email, de la base de datos a un email utilizando la funcion mail()  ;)