Foros del Web » Programando para Internet » PHP »

Algo mal en este codigo???

Estas en el tema de Algo mal en este codigo??? en el foro de PHP en Foros del Web. Estoy haciendo un form, con algunos campos como nombre, telefono y algo asi, y que eso me lo envie con la funcion "mail()" a una ...
  #1 (permalink)  
Antiguo 24/12/2002, 13:09
Avatar de Ne0Xer0  
Fecha de Ingreso: noviembre-2002
Mensajes: 33
Antigüedad: 15 años
Puntos: 0
Algo mal en este codigo???

Estoy haciendo un form, con algunos campos como nombre, telefono y algo asi, y que eso me lo envie con la funcion "mail()" a una direccion especificada con un listbox. hize este codigo y tb no he recivido el mail, ¿que esta mal con este codigo?.

if ($quien = 1)
{$email = "[email protected]";}
elseif ($quien = 2)
{$email = "[email protected]";}
elseif ($quien = 3)
{$email = " [email protected]";}
elseif ($quien = 4)
{$email = "[email protected],[email protected]";}
$mandarmail = mail($email,"Consulta web",$nombre.", ".$mail.", ".$rut.", ".$dir." le ha enviado esto:\n".$comentario);
if ($mandarmail = true)
{echo "\nSu comentario ha sido enviado, en poco tiempo le tendremos su respuesta";}
else
{echo "\nSu comentario no ha podido ser enviado, pruebe mas tarde";}
__________________
echo $REMOTE_ADDR;
  #2 (permalink)  
Antiguo 24/12/2002, 13:52
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
if ($mandarmail = true)

eso sería:
if ($mandarmail)

(si quieres usar el true deberias usar el == de comparación no el = de asignación)

if ($mandarmail == true)

Luego .. el monton de if elseif que usas quedaria mas legible el código si usases:

Código PHP:
switch ($quien) {
   case 
1:
       
$email="[email protected]";
   case 
2:
       
$email="[email protected]";
   case 
3:
       
$email="[email protected]";
   default:
       
$email="[email protected]";

Y sobre el uso de mail() .. mejor revisa la sintaxis correcta de mail():
http://us.php.net/manual/en/function.mail.php


Tambien como observación:

if ($mandarmail = true)
{echo "\nSu comentario ha sido enviado, en poco tiempo le tendremos su respuesta";}
else
{echo "\nSu comentario no ha podido ser enviado, pruebe mas tarde";}

eso despista bastante a la hora de leer codigo usa mejor:

if ($mandarmail = true){
echo "Su comentario ha sido enviado, en poco tiempo le tendremos su respuesta<br>";
} else {
echo "Su comentario no ha podido ser enviado, pruebe mas tarde<br>";
}

Se ve mas facil así donde termina y empieza un bloque {} .. y mas claro se ve si tuvieras mas lineas de código por bloque.

Y .. los saltos de linea \n q haces al prinpico e cada frase "echo" .. deberian ser al final .. En este caso .. ese salto de linea \n no es válido para HTML .. en HTML el salto de linea es \n (suponemos q estas dando salida a un navegador no ? ..)

Un saludo,
  #3 (permalink)  
Antiguo 24/12/2002, 14:02
Avatar de Ne0Xer0  
Fecha de Ingreso: noviembre-2002
Mensajes: 33
Antigüedad: 15 años
Puntos: 0
vaya, muchas gracias, necesitaba que me corrigieran todo eso.
__________________
echo $REMOTE_ADDR;
  #4 (permalink)  
Antiguo 26/12/2002, 14:34
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

Otra opcion para la seleccion del email es usar arrays y olvidarse de ifs y switchs. Pe:
Código PHP:
$emails=(1=>"[email protected]",2=>"[email protected]",3=>"[email protected]");
$email=$emails[$quien]; 
Es otra opcion. Habria que añadirle codigo para asegurarse que $quien tiene un valor valido (con array_key_exists()) y darle un valor por defecto.

Espero haber sido de ayuda.

PD: Respuesta patrocinada por AAA (Asociacion de Amigos del Array)
__________________
Josemi

Aprendiz de mucho, maestro de poco.
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 11:32.