Foros del Web » Programando para Internet » PHP »

formulario manda a otra pagina

Estas en el tema de formulario manda a otra pagina en el foro de PHP en Foros del Web. hola tengo un formulario de contacto que por regla cuando lo llamo seria www.dominio.com/index.php?do=contacto pero cuando el digo embiar si me llega a su misma ...
  #1 (permalink)  
Antiguo 07/11/2011, 23:01
 
Fecha de Ingreso: septiembre-2006
Mensajes: 330
Antigüedad: 17 años, 7 meses
Puntos: 2
formulario manda a otra pagina

hola tengo un formulario de contacto que por regla cuando lo llamo seria www.dominio.com/index.php?do=contacto pero cuando el digo embiar si me llega a su misma direccion embia bn lo malo es que cuando doy a embiar me manda a www.dominio.com/index.php entonces en mail no se embia que error tengo este es el codigo

parte 1

Código:
<?php



$email_admin='[email protected]';			




$adjunto_enviar=TRUE;


$titulo_web='Mensaje';


$titulo_nombre='Nombre:';
$titulo_email='E-Mail.:';
$titulo_asunto='Asunto:';
$titulo_mensaje='Mensaje.';
$titulo_adjunto='Fichero adjunto: (opcional) ';


$nombre_size=40;			
$email_size=40;				
$asunto_size=50;			
$mensaje_cols=60;			
$mensaje_rows=15;			
$archivo_size=60;			


$nombre_min=5;				
$nombre_max=50;				
$email_min=10;				
$email_max=50;				
$asunto_min=5;				
$asunto_max=100;			
$mensaje_min=10;			
$mensaje_max=1000;			
$adjunto_max=2000;			


$mensaje_principal='';


$mensaje_nombre_vacio='<li>No ha puesto ningun nombre.</li>';
$mensaje_email_vacio='<li>No ha puesto ningun email.</li>';
$mensaje_asunto_vacio='<li>No ha puesto ningun asunto.</li>';
$mensaje_mensaje_vacio='<li>No ha puesto ningun mensaje.</li>';

$mensaje_mail_no_valido='<li>Ha puesto un mail no válido.</li>';

$mensaje_nombre_min='<li>El nombre es muy pequeño.</li>';
$mensaje_email_min='<li>El email es muy pequeño.</li>';
$mensaje_asunto_min='<li>El asunto es muy pequeño.</li>';
$mensaje_mensaje_min='<li>El mensaje es muy pequeño.</li>';

$mensaje_nombre_max='<li>El nombre es muy grande.</li>';
$mensaje_email_max='<li>El email es muy grande.</li>';
$mensaje_asunto_max='<li>El asunto es muy grande.</li>';
$mensaje_mensaje_max='<li>El mensaje es muy grande.</li>';
$mensaje_adjunto_max='<li>Ha superado el límite del tamaño máximo del archivo, que esta limitado a '.$adjunto_max.' kilobytes (kB).</li>';

$porcentaje_may_aceptadas=25;			
$mensaje_muchas_may='<li>Por favor, no grite.</li>';

$censura_lista=array('puta','puto','mierda','imbécil','cabrón');
$mensaje_censura='<li>No es necesario usar ese lenguaje.</li>';

$mensaje_error_inicial='<p>Ha cometido algún error. Aquí tiene la lista.</p><ul>';

$mensaje_error_final='</ul><p>Revise estos campos. Gracias.</p>';

$mensaje_mail_enviado='<p>El email se ha enviado con éxito. Gracias.</p>';

$mensaje_mail_fallido='<p>Error enviando el mail. Probablemente por causas técnicas del servidor.</p>';


$acuse_activo=TRUE;
$acuse_mail_asunto='Acuse de recibo';
$acuse_mail_cuerpo="Gracias por contactar con nosotros.\nEn breve, nos pondremos en contacto con usted.";
$acuse_mail_enviado='<p>El email se ha enviado con éxito. Además se ha enviado un acuse de recibo. Gracias.</p>';
$acuse_mail_fallido='<p>El email se ha enviado con éxito. Pero no se ha podido enviar un acuse de recibo, quizás puso mal su correo electrónico.</p>';

$idioma='es_ES';

$enviado_por='Enviado por: ';
$enviado_el='Enviado el: ';

 
$debug=TRUE;


$html_incrustrado=true;			




if($debug=='TRUE')
	error_reporting(E_ALL);			
	
$salida=contacto();				
if($html_incrustrado==true)
	echo html($salida);			

function contacto()
{
	global $email_admin,$adjunto_enviar,$titulo_web;
	global $titulo_nombre,$titulo_email,$titulo_asunto,$titulo_mensaje,$titulo_adjunto;
	global $nombre_size,$asunto_size,$mensaje_cols,$mensaje_rows,$archivo_size;
	global $nombre_min,$nombre_max,$email_min,$email_max,$asunto_min,$asunto_max,$mensaje_min,$mensaje_max,$adjunto_max;
	global $mensaje_principal,$mensaje_nombre_vacio,$mensaje_email_vacio,$mensaje_asunto_vacio,$mensaje_mensaje_vacio;
	global $mensaje_mail_no_valido;
	global $mensaje_nombre_min,$mensaje_email_min,$mensaje_asunto_min,$mensaje_mensaje_min;
	global $mensaje_nombre_max,$mensaje_email_max,$mensaje_asunto_max,$mensaje_mensaje_max,$mensaje_adjunto_max;
	global $porcentaje_may_aceptadas,$mensaje_muchas_may,$censura_lista,$mensaje_censura;
	global $mensaje_error_inicial,$mensaje_error_final;
	global $mensaje_mail_enviado,$mensaje_mail_fallido;
	global $idioma,$enviado_el,$debug;
	global $enviado_por,$enviado_el;
	global $acuse_activo,$acuse_mail_asunto,$acuse_mail_cuerpo,$acuse_mail_enviado;

	if ( isset($_POST['form_enviar']) && isset($_POST['form_email']) && isset($_POST['form_asunto']) && isset($_POST['form_mensaje']) )
	{
  #2 (permalink)  
Antiguo 07/11/2011, 23:02
 
Fecha de Ingreso: septiembre-2006
Mensajes: 330
Antigüedad: 17 años, 7 meses
Puntos: 2
Respuesta: formulario manda a otra pagina

aqui esta lo que sigue

Código:
$mensaje_error='';

		$form_nombre=limpiar($_POST['form_nombre']);
		$form_email=limpiar($_POST['form_email']);
		$form_asunto=limpiar($_POST['form_asunto']);
		$form_mensaje=limpiar($_POST['form_mensaje']);

		if(!isset($form_nombre))				
			$mensaje_error.=$mensaje_nombre_vacio;
		if(!isset($form_email))					
			$mensaje_error.=$mensaje_email_vacio;
		if(!isset($form_asunto))				
			$mensaje_error.=$mensaje_asunto_vacio;
		if(!isset($form_mensaje))				
			$mensaje_error.=$mensaje_mensaje_vacio;

		if(!email_valido($form_email))
			$mensaje_error.=$mensaje_mail_no_valido;

		
		$form_nombre_len=strlen($form_nombre);			
		$form_email_len=strlen($form_email);			
		$form_asunto_len=strlen($form_asunto);			
		$form_mensaje_len=strlen($form_mensaje);		

	
		if( ($form_nombre_len<=$nombre_min) && (!empty($form_nombre)) )
			$mensaje_error.=$mensaje_nombre_min;
		
		if( ($form_email_len<=$email_min)  && (!empty($form_email)) )
			$mensaje_error.=$mensaje_email_min;
		
		if( ($form_asunto_len<=$asunto_min) && (!empty($form_asunto)) )
			$mensaje_error.=$mensaje_asunto_min;

		if( ($form_mensaje_len<=$mensaje_min) && (!empty($form_mensaje)) )
			$mensaje_error.=$mensaje_mensaje_min;

		

		if($form_nombre_len>=$nombre_max)			
			$mensaje_error.=$mensaje_nombre_max;
		if($form_email_len>=$email_max)				
			$mensaje_error.=$mensaje_email_max;
		if($form_asunto_len>=$asunto_max)			
			$mensaje_error.=$mensaje_asunto_max;
		if($form_mensaje_len>=$mensaje_max)			
			$mensaje_error.=$mensaje_mensaje_max;

		
		if($adjunto_enviar==TRUE)
		{
			$archivo=$_FILES['form_archivo']['name'];		
			$temporal=$_FILES['form_archivo']['tmp_name'];		
		
			if($temporal!='')					
			{
				
				$adjunto_tamano=filesize($temporal)/1024;	
				if($adjunto_tamano>=$adjunto_max)
					$mensaje_error.=$mensaje_adjunto_max;
			}
		}
		else
			$temporal='';					

		
		if ((cuenta_letras_mayusculas($form_asunto)>$porcentaje_may_aceptadas) || (cuenta_letras_mayusculas($form_mensaje)>$porcentaje_may_aceptadas))
			$mensaje_error.=$mensaje_muchas_may;


		if( (censurar($form_asunto,$censura_lista)==FALSE) || (censurar($form_mensaje,$censura_lista)==FALSE) )
			$mensaje_error.=$mensaje_censura;

		if(empty($mensaje_error))			
		{
	
			$ip=ip();												
			setlocale (LC_TIME,$idioma);			
			$fecha=gmstrftime("%a, %d/%b/%y %H:%M:%S (%Z)",time());	
			$mensaje_texto=$form_mensaje."\n\n".$enviado_por.' '.$ip."\n".$enviado_el.' '.$fecha;

			
			if($temporal!='')
			{
				
				$buffer = implode("",file($temporal));		
				$buffer = chunk_split(base64_encode($buffer));	

				
				$cabecera = "MIME-version: 1.0\n";
				$cabecera .= "From: $form_nombre<$form_email>\n";
				$cabecera .= "Return-Path: $email_admin\n";
				$cabecera .= "Content-type: multipart/mixed; ";
				$cabecera .= "boundary=\"Message-Boundary\"\n";
				$cabecera .= "Content-transfer-encoding: 7BIT\n";
				$cabecera .= "X-attachments: $temporal";

				
				$mensaje = "--Message-Boundary\n";
				$mensaje .= "Content-type: text/plain; charset=ISO-8859-1\n";
				$mensaje .= "Content-transfer-encoding: 7BIT\n";
				$mensaje .= "Content-description: Mail message body\n\n";
				$mensaje .=$mensaje_texto;

				
				$mensaje .= "\n\n--Message-Boundary\n";
				$mensaje .= "Content-type: Binary; name=\"$archivo\"\n";
				$mensaje .= "Content-Transfer-Encoding: BASE64\n";
				$mensaje .= "Content-disposition: attachment; filename=\"$archivo\"\n\n";
				$mensaje .= "$buffer\n";
				$mensaje .= "--Message-Boundary--\n";
			}
			else
			{
				
				$cabecera = "From: $form_nombre<$form_email>\n";
				$cabecera .= "Return-Path: $email_admin\n";

				
				$mensaje = $mensaje_texto;
			}

			
			
			if (@mail($email_admin,$form_asunto,$mensaje,$cabecera))	
			{
				
				if($acuse_activo==TRUE)
				{
					
					if (@mail($form_email,$acuse_mail_asunto,$acuse_mail_cuerpo))	
						$salida=$acuse_mail_enviado;
					else	
						$salida=$acuse_mail_fallido;
				}
				else	
					$salida=$mensaje_mail_enviado;		
			}
			else		
				$salida=$mensaje_mail_fallido;		
		}
		else															 
		{
			
			$mensaje_error=$mensaje_error_inicial.$mensaje_error.$mensaje_error_final;

			
			$salida=formulario($form_nombre,$form_email,$form_asunto,$form_mensaje,$mensaje_error);
		}
	}
	else															
		$salida=formulario();			

	return $salida;					
}


function limpiar($texto)
{
	$texto = trim($texto);			
	$texto = stripslashes($texto);			
	$texto = strip_tags($texto);			
	return $texto;					
}


function email_valido($email)
{
	if (preg_match('!^[a-z0-9.+-_]+@([a-z0-9-]+(?:.[a-z0-9-]+)+)$!i',$email,$partes))
	{

		if (!checkdnsrr($partes[1]))
			return FALSE;
		else
			return TRUE;
	}
	else
		return FALSE;
}


function ip()
{
	if (isset($_SERVER['HTTP_X_FORWARDED_FOR']))
		$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
	elseif (isset($_SERVER['HTTP_VIA']))
		$ip = $_SERVER['HTTP_VIA'];
	elseif (isset($_SERVER['REMOTE_ADDR']))
		$ip = $_SERVER['REMOTE_ADDR'];
	else
		$ip = 'desconocida';

	return $ip;				
}


function cuenta_letras_mayusculas($cadena)
{
	$string2=strtolower ($cadena);				
	similar_text ($cadena,$string2,$porcentaje); 		
	$porcentaje=100-$porcentaje;				
	return $porcentaje;
}


function censurar($texto,$filtro)
{
   	foreach ($filtro as $palabra)
	{
		if(eregi($palabra,$texto)!='')
			return FALSE;
	}
	return TRUE;
}


function formulario($form_nombre='',$form_email='',$form_asunto='',$form_mensaje='',$mensaje_error='')
{

	global $titulo_nombre,$titulo_email,$titulo_asunto,$titulo_mensaje;
	global $nombre_size,$email_size,$asunto_size,$mensaje_cols,$mensaje_rows;
	global $titulo_web,$mensaje_principal,$nombre_max,$email_max,$asunto_max;
	global $adjunto_enviar,$titulo_adjunto,$adjunto_max,$archivo_size;

	$url=$_SERVER['PHP_SELF'];		
	if($adjunto_enviar==TRUE)
	{
		$adjunto =<<<EOT
$titulo_adjunto<br />
<input type="file" name="form_archivo" size="$archivo_size" /><br />
EOT;
	}
	else
		$adjunto ='';

	$formulario =<<<EOT
$mensaje_principal
$mensaje_error
<p>&nbsp;</p>

<form enctype="multipart/form-data" method="post" action="$url">
 
  <table width="503" border="0">
  <tr>
    <td width="100">$titulo_nombre</td>
    <td width="387"><input type="text" name="form_nombre" maxlength="$nombre_max" size="$nombre_size" value="$form_nombre" /></td>
  </tr>
  <tr>
    <td>$titulo_email</td>
    <td><input type="text" name="form_email" maxlength="$email_max" size="$email_size" value="$form_email" /></td>
  </tr>
  <tr>
    <td>$titulo_asunto</td>
    <td><input type="text" name="form_asunto" maxlength="$asunto_max" size="$asunto_size" value="$form_asunto" /></td>
  </tr>
</table>
<p> $titulo_mensaje<br />
<textarea cols="$mensaje_cols" style="background-image:images/form.jpg" rows="$mensaje_rows" name="form_mensaje">$form_mensaje</textarea><br />
$adjunto
  <input type="submit" name="form_enviar" value="Enviar" />
</p>
</form>
EOT;

	return $formulario;						
}


function html($cuerpo)
{

	global $titulo_web;

	$pagina =<<<EOT
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>$titulo_web</title>

</head>
<body>
<h1>$titulo_web</h1>
$cuerpo
</body>
</html>
EOT;

	return $pagina;
}


?>
  #3 (permalink)  
Antiguo 07/11/2011, 23:21
Avatar de Uncontroled_Duck
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Málaga [Spain]
Mensajes: 806
Antigüedad: 12 años, 11 meses
Puntos: 261
Respuesta: formulario manda a otra pagina

Revisa la url que le envías al action del form.
Código:
<form enctype="multipart/form-data" method="post" action="$url">
Saludos,
__________________
Todos agradeceremos que pongas el código en su respectivo Highlight
  #4 (permalink)  
Antiguo 07/11/2011, 23:27
 
Fecha de Ingreso: septiembre-2006
Mensajes: 330
Antigüedad: 17 años, 7 meses
Puntos: 2
Respuesta: formulario manda a otra pagina

ese es el pro qu eno se mucho de php y no se cual seria el pro o donde estaria por eso pregunto si alguien usa algo parecido o puede detectarme el error hay si es que tengo que declarar eso el "$url"
  #5 (permalink)  
Antiguo 07/11/2011, 23:46
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 14 años, 11 meses
Puntos: 322
Respuesta: formulario manda a otra pagina

Cita:
pregunto si alguien usa algo parecido o puede detectarme el error hay
Es ahí, no hay.
Y ya que estamos, es ENVIAR.

Y bueno, ya te 'detectaron' tu error, te toca a tí corregirlo. Si no sabes PHP, empieza leyéndo sobre él. Puedes visitar la Wiki/Buscador del foro, Google y el Manual Oficial, créeme, hay muchísima información rondando.
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #6 (permalink)  
Antiguo 08/11/2011, 07:16
 
Fecha de Ingreso: septiembre-2006
Mensajes: 330
Antigüedad: 17 años, 7 meses
Puntos: 2
Respuesta: formulario manda a otra pagina

yo creia que esto es un foro de php no de lenguaje
  #7 (permalink)  
Antiguo 08/11/2011, 17:47
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 14 años, 11 meses
Puntos: 322
Respuesta: formulario manda a otra pagina

Claro, pero como en todo foro, una de las reglas es escribir apropiadamente.
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #8 (permalink)  
Antiguo 08/11/2011, 18:17
 
Fecha de Ingreso: septiembre-2006
Mensajes: 330
Antigüedad: 17 años, 7 meses
Puntos: 2
Respuesta: formulario manda a otra pagina

bueno gracias pero mi problema es que cuando le doy enviar me manda a index.php y no a index.php?do=contacto por que si me manda a index.php no envia pero a contacto si al parecer
  #9 (permalink)  
Antiguo 09/11/2011, 10:18
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: formulario manda a otra pagina

Ya te lo dijo Uncontroled_Duck, el problema es tu variable $url, revisa que URL estas generando en tu formulario para que te envie a la url correcta.

Etiquetas: formulario, html
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 23:24.