Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Por que no funciona mi form????

Estas en el tema de Por que no funciona mi form???? en el foro de PHP en Foros del Web. hola a todos estoy haciendo un formulario para enviar un email con phpmailer Código PHP: require_once( '../Connections/connection.php' );  require( "../phpmailer/class.phpmailer.php" );      $varname  =  $_FILES ...
  #1 (permalink)  
Antiguo 08/05/2013, 11:45
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Por que no funciona mi form????

hola a todos estoy haciendo un formulario para enviar un email con phpmailer
Código PHP:
require_once('../Connections/connection.php'); 



require(
"../phpmailer/class.phpmailer.php");

    
$varname $_FILES['archivo']['name'];
    
$vartemp $_FILES['archivo']['tmp_name'];
$mail = new PHPMailer();
$mail->Host "localhost";
$mail->From "[email protected]";
$mail->FromName "Listas";
$mail->Subject "prueba";
if(!empty(
$_POST['email'])) {  
$aLista=$_POST['email'];  
mysql_select_db($database_connection$connection);
$result"SELECT * FROM informesp where Folio IN (".implode(',',$aLista).")";  
$rs1mysql_query($result$connection) or die(mysql_error());
 if(
mysql_num_rows($rs1)>0)  

  
 while (
$row mysql_fetch_array($rs1)) {
    { 
 
// HTML body 
    
$body "Hola <strong>".$row["Nombre"]."</strong>, "
    
$body.= $_POST[asunto]; 
    
$body.= "<em>List manager</em>"
    
// Text body
    
$text "Hola ".$row["Nombre"].", \n\n"
    
    
$text.= "List manager";
    
// Configurar Email
    
$mail->Body $body
    
$mail->AltBody $text
    
$mail->AddAddress($row["Email"], $row["Nombre"]);
    
// Enviar el email
    
if(!$mail->Send()) {
        echo 
"Error al enviar a: " $row["Email"] . "<br>"
     }
    
    
$mail->ClearAddresses();  
    }
        }
        }
        } 

hasta funciona bien se envia el mensaje y todo pero cunado a ese script le agrego
lo siguiente
Código PHP:
if ($_POST['action'] == "send") {
.
.
.
.

YA NO ENVIA LOS EMAILS

este es mi form
Código HTML:
<form action="" method="post" enctype="multipart/form-data" name="form">
<table>
  <tr valign="middle">
    <td height="32" align="right"><div align="left"><font size="2">Asunto:</font></div></td>
    <td height="32"><input type="text" name="asunto"  value="" size="32" />
     
  </tr>
  <tr valign="middle">
   
	    <td height="45" ><div align="left"><font size="2">Adjuntar archivo:</font></div></td>
      <td> <input type="file" size="25" id="caja" name="archivo" style="width:400px"/></td>
    
  </tr>
  <tr valign="middle">
    <td height="45" align="right"><div align="left"><font size="2">Mensaje:</font></div></td>
    <td height="45"><textarea name="mensaje" cols="32"  ></textarea></td>
  </tr>
  <tr valign="baseline">
    <td align="right"> <input type="image" name="btsend" src="img/CorreoE3Bn_r12_c9.png" border="0" id="btsend" alt="" /> 
<input type="submit" value="Cancelar" />
   </td>
  
  
    
  </tr>
</table> <input type="hidden" name="action" value="send" /></form> 
No entiendo porque no se envia al poner lo del form y si lo quito salen los emails sin ningun problema
  #2 (permalink)  
Antiguo 08/05/2013, 11:49
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Por que no funciona mi form????

Adivinar exactamente dónde colocas la condición que no te funciona es imposible.

Sería mas inteligente de tu parte mostrar el código real, es más útil.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 08/05/2013, 11:50
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: Por que no funciona mi form????

Cita:
Iniciado por pateketrueke Ver Mensaje
Adivinar exactamente dónde colocas la condición que no te funciona es imposible.

Sería mas inteligente de tu parte mostrar el código real, es más útil.
la agrego al incio queda asi
require_once('../Connections/connection.php');


Código PHP:
require("../phpmailer/class.phpmailer.php");
if (
$_POST['action'] == "send") {
    
$varname $_FILES['archivo']['name'];
    
$vartemp $_FILES['archivo']['tmp_name'];
$mail = new PHPMailer();
$mail->Host "localhost";
$mail->From "[email protected]";
$mail->FromName "Listas";
$mail->Subject "prueba";
if(!empty(
$_POST['email'])) {  
$aLista=$_POST['email'];  
mysql_select_db($database_connection$connection);
$result"SELECT * FROM informesp where Folio IN (".implode(',',$aLista).")";  
$rs1mysql_query($result$connection) or die(mysql_error());
 if(
mysql_num_rows($rs1)>0)  

  
 while (
$row mysql_fetch_array($rs1)) {
    { 
 
// HTML body 
    
$body "Hola <strong>".$row["Nombre"]."</strong>, "
    
$body.= $_POST[asunto]; 
    
$body.= "<em>List manager</em>"
    
// Text body
    
$text "Hola ".$row["Nombre"].", \n\n"
    
$text.= $_POST[mensaje];
    
$text.= "List manager";
    
// Configurar Email
    
$mail->Body $body
    
$mail->AltBody $text
    
$mail->AddAddress($row["Email"], $row["Nombre"]);
    
// Enviar el email
    
if(!$mail->Send()) {
        echo 
"Error al enviar a: " $row["Email"] . "<br>"
     }
    
    
$mail->ClearAddresses();  
    }
        }
        }
        }
        
    } 
  #4 (permalink)  
Antiguo 08/05/2013, 11:53
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Por que no funciona mi form????

¿Sabes qué?

Primero deberías aprender a escribir código legible, así como lo tienes es complicado ver donde empiezan y terminan los bloques.

Puede que por ahí esté el problema, igual estás anidando mal los bloques, pero es complicado de leer así, recuerda que somos humanos también.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 08/05/2013, 12:44
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: Por que no funciona mi form????

Cita:
Iniciado por pateketrueke Ver Mensaje
¿Sabes qué?

Primero deberías aprender a escribir código legible, así como lo tienes es complicado ver donde empiezan y terminan los bloques.

Puede que por ahí esté el problema, igual estás anidando mal los bloques, pero es complicado de leer así, recuerda que somos humanos también.
Gracias por el dato bien ya probe el codigo en otro archivo donde el form funciona pero con el script nada solo manda cuando lo hago solo sin el form....
  #6 (permalink)  
Antiguo 08/05/2013, 12:59
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: Por que no funciona mi form????

¿y por qué la necesidad de usar un campo oculto?

haz un var_dump($_POST) para ver qué recibes.



Por cierto, maquetar formularios con tablas ya es obsoleto desde hace mucho, es más limpio y eficiente usar css.

<td height="32" align="right"><div align="left"><font size="2">Asunto:</font></div></td>
<td height="32"><input type="text" name="asunto" value="" size="32" />


<label>Asunto:</label><input type="text" name="asunto" value=""/>

Y si requieres algo especial

<label css"label32">Asunto:</label><input type="text" name="asunto" value="" css="input32"/>
  #7 (permalink)  
Antiguo 08/05/2013, 15:23
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: Por que no funciona mi form????

Gracias por la informacion hice lo q me indicas y me muestra esto
array(5) { ["asunto"]=> string(1) "a" ["alumno"]=> string(3) " a" ["idalumno"]=> string(0) "" ["mensaje"]=> string(1) "a" ["MM_insert"]=> string(5) "form1" }
  #8 (permalink)  
Antiguo 08/05/2013, 15:36
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: Por que no funciona mi form????

si estan pasando por POST pero no entiendo porque no funciona el codigo cuando le paso el form
  #9 (permalink)  
Antiguo 08/05/2013, 15:37
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Por que no funciona mi form????

Si se están pasando todas las demás variables, pero "action" no, es curioso porque está dentro del mismo formulario.

Intenta quitar el hidden y ponerle el name al submit, envía el formulario de nuevo y observa si "action" existe.

Si eso no soluciona nada tal vez estés editando el script equivocado.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #10 (permalink)  
Antiguo 08/05/2013, 15:47
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años
Puntos: 47
Respuesta: Por que no funciona mi form????

Hola Birss, primero que nada hice un par de correcciones a tu codigo, tenias unas llaves de mas, asi que te dejo el codigo corregido, no digo que con esas correcciones se soluciona tu duda, pero si son correcciones necesarias que habia que hacerle.

Código PHP:
Ver original
  1. <?php
  2. require("../phpmailer/class.phpmailer.php");
  3. if(isset($_POST['asunto'])){
  4.     $varname = $_FILES['archivo']['name'];
  5.     $vartemp = $_FILES['archivo']['tmp_name'];
  6.     $mail = new PHPMailer();
  7.     $mail->Host = "localhost";
  8.     $mail->From = "[email protected]";
  9.     $mail->FromName = "Listas";
  10.     $mail->Subject = "prueba";
  11.     if(!empty($_POST['email'])) {
  12.         $aLista=$_POST['email'];  
  13.         mysql_select_db($database_connection, $connection);
  14.         $result= "SELECT * FROM informesp where Folio IN (".implode(',',$aLista).")";  
  15.         $rs1= mysql_query($result, $connection) or die(mysql_error());
  16.         if(mysql_num_rows($rs1)>0){        
  17.             while ($row = mysql_fetch_array($rs1)){
  18.                 // HTML body  
  19.                 $body = "Hola <strong>".$row["Nombre"]."</strong>, ";  
  20.                 $body.= $_POST[asunto];  
  21.                 $body.= "<em>List manager</em>";  
  22.                 // Text body
  23.                 $text = "Hola ".$row["Nombre"].", \n\n";  
  24.                 $text.= $_POST[mensaje];
  25.                 $text.= "List manager";
  26.                 // Configurar Email
  27.                 $mail->Body = $body;  
  28.                 $mail->AltBody = $text;  
  29.                 $mail->AddAddress($row["Email"], $row["Nombre"]);
  30.                 // Enviar el email
  31.                 if(!$mail->Send()) {
  32.                     echo "Error al enviar a: " . $row["Email"] . "<br>";  
  33.                 }            
  34.                 $mail->ClearAddresses();  
  35.             }              
  36.         }
  37.     }
  38. }  
  39. ?>

Pasando a ayudarte a solucionar tu problema, por lo que puedo ver es bastante simple, en tu form tienes dos botones tipo submit, uno tipo imagen que asumo que es el enviar y otro que cancelar que supongo es para limpiar los valores de los campos del form, por lo que te recomiendo que hagas lo siguiente, la imagen que ocupas de boton para enviar el formulario dejala tal cual, luego el boton cancelar en vez que sea submit hazlo reset, para que resetee el formulario.

Luego veo que le hace falta el valor del action a tu formulario, prueba con esto a ver que tal.
  #11 (permalink)  
Antiguo 08/05/2013, 16:31
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: Por que no funciona mi form????

Pues en mi pagina nunca puede encontrar porque no envia en los forms lo pase a una nueva desde cero y sin nada extra (mi pagina tenia javas, css , etc) y funciono ahora tendre q darle estilo gracias por tu tiempo
  #12 (permalink)  
Antiguo 08/05/2013, 16:43
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años
Puntos: 47
Respuesta: Por que no funciona mi form????

ok, entonces marca como solucionado el post
  #13 (permalink)  
Antiguo 08/05/2013, 17:42
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: Por que no funciona mi form????

ammm pues no fue falasa alarma jejeje sigue sin funcionar
  #14 (permalink)  
Antiguo 08/05/2013, 17:55
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: Por que no funciona mi form????

deje esto en el script
Código PHP:
require("../phpmailer/class.phpmailer.php"); 
if(isset(
$_POST['asunto'])){
    
$varname $_FILES['archivo']['name']; 
    
$vartemp $_FILES['archivo']['tmp_name']; 
    
$mail = new PHPMailer(); 
    
$mail->Host "localhost"
    
$mail->From "[email protected]"
    
$mail->FromName "Listas"
    
$mail->Subject "prueba"
    if(!empty(
$_POST['email'])) { 
        
$aLista=$_POST['email'];   
        
mysql_select_db($database_connection$connection); 
        
$result"SELECT * FROM informesp where Folio IN (".implode(',',$aLista).")";   
        
$rs1mysql_query($result$connection) or die(mysql_error()); 
        if(
mysql_num_rows($rs1)>0){        
            while (
$row mysql_fetch_array($rs1)){
                
// HTML body  
                
$body "Hola <strong>".$row["Nombre"]."</strong>, ";  
                
$body.= $_POST[asunto];  
                
$body.= "<em>List manager</em>";  
                
// Text body 
                
$text "Hola ".$row["Nombre"].", \n\n";  
                
$text.= $_POST[mensaje]; 
                
$text.= "List manager"
                
// Configurar Email 
                
$mail->Body $body;  
                
$mail->AltBody $text;  
                
$mail->AddAddress($row["Email"], $row["Nombre"]); 
                
// Enviar el email 
                
if(!$mail->Send()) { 
                    echo 
"Error al enviar a: " $row["Email"] . "<br>";  
                }            
                
$mail->ClearAddresses();   
            }               
        } 
    }

se llama 2.php

y este el form
Código HTML:
<form action="2.php" method="post" enctype="multipart/form-data">
  <table>
    <tr valign="middle">
      <td height="32" align="right"><div align="left"><font size="2">Asunto:</font></div></td>
        <td height="32"><input type="text" name="asunto"  value="" size="32" />

    </tr>
    <tr valign="middle">
    
	    <td height="45" ><div align="left"><font size="2">Adjuntar archivo:</font></div></td>
      <td height="45" > <input type="file" size="25" id="caja" name="archivo" style="width:400px"/></td>
       
      </tr>
    <tr valign="middle">
      <td height="45" align="right"><div align="left"><font size="2">Mensaje:</font></div></td>
        <td height="45"><textarea name="mensaje" cols="32"  ></textarea></td>
      </tr>
    <tr valign="baseline">
    
      <td><input type="submit" value="Cancelar" /></td>
       <td><input type="submit" value="Enviar" name="action" value="send" /></td>
    </tr>
    </table>
  
</form> 
  #15 (permalink)  
Antiguo 08/05/2013, 19:01
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: Por que no funciona mi form????

He estado analizando a fondo esto jejejeje y creo q el error qunque aun no termino de comprenderlo es el sig.... antes de este form tengo otro donde muestro una lista de personas ahi tengo un checkbox para marcar a quiens les enviare el mensaje hasta aca todo bien y este form
lo tengo asi
<form action="1.php" method="post" id="form1" name="form1" >

en 1 curisamente si pasa la variable email (que viene desde el primer form donde se elegi a aquien se enviaran)

me refiero a esta parte if(!empty($_POST['email'])) {
pero al querer pasar variables del mismo archivo 1.php pasa las variables pero no no hace la validacion
intente con este al principio del script del envio de emails
if(!empty($_POST['asunto'])) {

y no lo hace asunto es un input del archivo 1.php.... en cambio si asunto lo tengo en el archivo previo (donde elejo a quien enviare el email) el script se ejecuta sin problemas....

ya vi que el script funciona al usar datos del form previo pero no del mismo...
pero no se como solucionar esto....
  #16 (permalink)  
Antiguo 09/05/2013, 09:24
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: Por que no funciona mi form????

¿Por que no puedo manipular mis datos en el mismo form pero si los que vienen de otro :/?
  #17 (permalink)  
Antiguo 09/05/2013, 10:14
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años
Puntos: 47
Respuesta: Por que no funciona mi form????

mira sin duda este post es la continuación de otros que has abierto antes :D, mira porque no muestras todo el codigo eso si separando cada archivo deacuerdo al orden del proceso que sigues, asi podremos ver en que parte hay errores y podriamos ayudarte a resolver las dudas.

trata de colocar tu codigo lo mas ordenado posible eso nos ayudara a comprenderlo e identificar los errores que podria tener y tambien nos facilitará la comprensión del proceso que se debe desarrollar en cada paso de tus scripts
  #18 (permalink)  
Antiguo 09/05/2013, 10:46
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: Por que no funciona mi form????

Cita:
Iniciado por alex1084 Ver Mensaje
mira sin duda este post es la continuación de otros que has abierto antes :D, mira porque no muestras todo el codigo eso si separando cada archivo deacuerdo al orden del proceso que sigues, asi podremos ver en que parte hay errores y podriamos ayudarte a resolver las dudas.

trata de colocar tu codigo lo mas ordenado posible eso nos ayudara a comprenderlo e identificar los errores que podria tener y tambien nos facilitará la comprensión del proceso que se debe desarrollar en cada paso de tus scripts
Gracias por tu tiempo mira lo q hice al final fue poner un div que por defecto sale oculto al presionar un texto "enviar email" se muestra ahi tengo mis text para redactar el mensaje y ya estos los paso sin problema al archivo q enviara el email
nunca di con el error pero bueno con esto funciona

Etiquetas: formulario, html, mysql, select, sql
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 06:26.