Foros del Web » Programando para Internet » PHP »

no se envia el correo

Estas en el tema de no se envia el correo en el foro de PHP en Foros del Web. ola amigos!!! estube aciendo esto para mi web osea se trata de enviar un mensaje a todos los contactos almacenados en una taba en mi ...
  #1 (permalink)  
Antiguo 05/10/2009, 15:49
 
Fecha de Ingreso: septiembre-2009
Mensajes: 18
Antigüedad: 14 años, 7 meses
Puntos: 0
no se envia el correo

ola amigos!!!
estube aciendo esto para mi web osea se trata de enviar un mensaje a todos los contactos almacenados en una taba en mi mysql primero un formulario donde escrivo el asunto y el mensaje y luego llamo a esto:
Código PHP:
<?
$dbhost
='mysql.com';
$dbusername='a2lee';
$dbuserpass='b6';
$dbname='ae';

    if(isset(
$_POST['asunto']) && !empty($_POST['asunto']) &&
    isset(
$_POST['mensaje']) && !empty($_POST['mensaje'])) {

       
        
$link mysql_connect("$dbhost","$dbusername","$dbuserpass");
        
mysql_select_db("$dbname",$link);

        
        
$my_error mysql_error($link);

        if(!empty(
$my_error)) {

            echo 
"Ha habido un error.";

        

        } else {

            
$result mysql_query("SELECT nombre,email FROM usuario"$link);
            if (
$row mysql_fetch_array($result)){
            do {

            
$nombre $row["nombre"];
            
$email $row["email"];
            
$asunto $_POST['asunto'];
            
$headers 'From: miguel' "\r\n" .
                
'Reply-To: no-reply' "\r\n" .
                
'X-Mailer: PHP/' phpversion();

            
            
$message $_POST['mensaje'];

            
mail($email,$asunto,$message,$headers);
            
            } while (
$row mysql_fetch_array($result));
            } else {

            echo 
"¡ La base de datos está vacia !";

            }

        }

    } else {

        echo 
"Error, no ha introducido todos los datos.";

    }

?>
pero no funciona=( no em aparece ningun texto despues ni nada =S ayudenme please!!!

muchas gracias!!!
  #2 (permalink)  
Antiguo 05/10/2009, 15:57
Avatar de urgido  
Fecha de Ingreso: febrero-2005
Mensajes: 2.351
Antigüedad: 19 años, 1 mes
Puntos: 25
Respuesta: no se envia el correo

Código PHP:
Ver original
  1. <?
  2. $dbhost='mysql.com';
  3. $dbusername='a2lee';
  4. $dbuserpass='b6';
  5. $dbname='ae';
  6.  
  7.     if(isset($_POST['asunto']) && !empty($_POST['asunto']) &&
  8.     isset($_POST['mensaje']) && !empty($_POST['mensaje'])) {
  9.  
  10.        
  11.         $link = mysql_connect($dbhost,$dbusername,$dbuserpass);
  12.         mysql_select_db($dbname,$link);
  13.  
  14.        
  15.         $my_error = mysql_error($link);
  16.  
  17.         if(!empty($my_error)) {
  18.  
  19.             echo "Ha habido un error.";
  20.  
  21.        
  22.  
  23.         } else {
  24.  
  25.             $result = mysql_query("SELECT nombre,email FROM usuario", $link);
  26.             if(mysql_num_rows($result)>0){
  27.             while($row = mysql_fetch_array($result)){
  28.            
  29.  
  30.             $nombre = $row["nombre"];
  31.             $email = $row["email"];
  32.             $asunto = $_POST['asunto'];
  33.             $headers = 'From: [email protected]' . "\r\n" .
  34.                 'Reply-To: no-reply' . "\r\n" .
  35.                 'X-Mailer: PHP/' . phpversion();
  36.  
  37.            
  38.             $message = $_POST['mensaje'];
  39.  
  40.             mail($email,$asunto,$message,$headers);
  41.            
  42.             }
  43.             } else {
  44.  
  45.             echo "¡ La base de datos está vacia !";
  46.  
  47.             }
  48.  
  49.         }
  50.  
  51.     } else {
  52.  
  53.         echo "Error, no ha introducido todos los datos.";
  54.  
  55.     }
  56.  
  57. ?>

Lo hice de rápido checalo igual y tuve errorcitos
__________________
Hospedaje Web al mejor costo!
  #3 (permalink)  
Antiguo 05/10/2009, 16:03
 
Fecha de Ingreso: enero-2009
Mensajes: 408
Antigüedad: 15 años, 3 meses
Puntos: 14
Respuesta: no se envia el correo

Hola ,pues mira a simple vista estas usando la estructura iterativa equivocada , te explico , do while se ejecuta siempre 1 vez por más que la condición no se cumpla entonces si no tiene datos en tu vector resultante.....estaremos el problemas , por otro lado si mal no entiendo tu utilizas mysql_fetch_array en una condición de un if ? , pues bien eso esta MAL , mysql_fetch_array te devuelve retorna si mal no me equivoco true si se ejecuto bien , pero nada mas , ahi lo optimo seria ver si tienes o no registros resultantes mediante mysql_num_rows($variable_de_tu_consula) y reemplazar la estructura do while por una while , con lo cual tu codigo querdaria asi:

Código php:
Ver original
  1. <?
  2. $dbhost = 'mysql.com';
  3. $dbusername = 'a2lee';
  4. $dbuserpass = 'b6';
  5. $dbname = 'ae';
  6.  
  7. if (isset($_POST['asunto']) && !empty($_POST['asunto']) && isset($_POST['mensaje']) &&
  8.     !empty($_POST['mensaje'])) {
  9.  
  10.  
  11.     $link = mysql_connect("$dbhost", "$dbusername", "$dbuserpass") or die("Error LINK");
  12.     mysql_select_db("$dbname", $link) or die("Error Select");
  13.  
  14.     $result = mysql_query("SELECT nombre,email FROM usuario", $link) or die("Error CONSULTA");
  15.     $rows = mysql_num_rows($result);
  16.     if ($rows > 0) {
  17.         while ($row = mysql_fetch_assoc($result)) {
  18.             $nombre = $row["nombre"];
  19.             $email = $row["email"];
  20.             $asunto = $_POST['asunto'];
  21.             $headers = 'From: miguel' . "\r\n" . 'Reply-To: no-reply' . "\r\n" .
  22.                 'X-Mailer: PHP/' . phpversion();
  23.  
  24.  
  25.             $message = $_POST['mensaje'];
  26.  
  27.             mail($email, $asunto, $message, $headers);
  28.         }
  29.     } else {
  30.         echo "La base de datos esta vacia";
  31.     }
  32.  
  33.  
  34. } else {
  35.  
  36.     echo "Error, no ha introducido todos los datos.";
  37.  
  38. }
  39.  
  40. ?>

Fijate el cambio de estructura a una más adecuada y la forma en que verifico si obtuve registros validos o no.

Saludos!
  #4 (permalink)  
Antiguo 05/10/2009, 16:18
 
Fecha de Ingreso: septiembre-2009
Mensajes: 18
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: no se envia el correo

funciono MUchas GracIAS!!!!!!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:06.