PHP - ¿Por que no se ejecuta la funcion php en formulario?

 
Vista:
sin imagen de perfil

¿Por que no se ejecuta la funcion php en formulario?

Publicado por Ulises (2 intervenciones) el 09/04/2018 05:22:58
Bueno, seré breve. Anteriormente tenia un código de formulario que enviaba un mensaje por correo y que a su vez al presionar el boton "enviar" también ejecutaba una función que crea un archivo xml.

Ahora que retome el código nuevamente, cada vez que le doy click al botón para enviar no se ejecuta tal funcion, si no que me ridirecciona a ella (Por lo que no se envia nada ni se ejecuta nada por este error).


esto funcionaba así;

<form method="post" action="crearxml.php>

Por lo que ahora tengo que quitar el; action="crearxml.php para que mínimo se envié el mensaje.

¿Como soluciono esto o que otras altenativas existen que funcionen como el; action?

CODIGO FORMULARIO.PHP;


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<body>
<!--Cuadro formulario-->
<h1>Formulario de contacto</h1>
<div class="contact">
	<div class="contact-main">
	<form method="post" action="crearxml.php">
 
	    <h3>Emisor</h3>
		<input type="text" placeholder="Nombre" class="hola"  name="customer_name" required />
 
		<h3>Receptor</h3>
		<input type="text" placeholder="Nombre" class="hola"  name="customer_sname" required />
 
		<h3>Email</h3>
		<input type="email" placeholder="Usuario@gmail.com" class="hola"  name="customer_email" required />
 
		<h3>Asunto</h3>
 
		<input type="text" placeholder="Escribe Asunto aqui ..." class="hola"  name="subject" required />
		<h3>Mensaje</h3>
 
		<textarea  name="message" placeholder="Escribe tu mensaje aqui ..." required /></textarea>
 
//ESTOS SON LOS DATOS QUE OCUPARA EL CREARXML.PHP
 
		<?php
			if (isset($_POST['send'])){
				include("sendemail.php");//Mando a llamar la funcion que se encarga de enviar el correo electronico
 
				/*Configuracion de variables para enviar el correo*/
				$mail_username="gtaulises@gmail.com"; //Correo electronico saliente, EMISOR.
				$template="email_template.html";//Ruta de la plantilla HTML para enviar nuestro mensaje
 
				/*Inicio captura de datos enviados por $_POST para enviar el correo */
				$mail_setFromEmail=$_POST['customer_email'];
				$mail_setFromName=$_POST['customer_name'];
                $mail_setFromsName=$_POST['customer_sname'];
				$txt_message=$_POST['message'];
				$mail_subject=$_POST['subject'];
 
				sendemail($mail_username,$mail_userpassword,$mail_setFromEmail,$mail_setFromName,$mail_setFromsName,$mail_addAddress,$txt_message,$mail_subject,$template);//Enviar el mensaje
			}
		?>
	</div>
	<div class="enviar">
		<div class="contact-check">
 
		</div>
        <div class="contact-enviar">
		  <input type="submit" value="Enviar mensaje" name="send">
		</div>
		<div class="clear"> </div>
		</form>
</div>
</div>
 
</body>

CÓDIGO CREAR.XML;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<!--CÓDIGO QUE  INSERTA DATOS AL XML TRAS ENVIAR MENSAJE POR CORREO [historial.xml] -->
 
 
<?php
//llamado de los datos ingresados del formulario
if (isset($_POST['send']))
 
{
//cargar documento xml
$xml = new DOMDocument ("1.0","UTF-8");
 
$xml->load('historial.xml');
 
//llamado de los campos del formulario
 
$emisorname = $_POST['customer_name']; //Nombre del EMISOR
$emisoremail = "gtaulises@gmail.com"; //Correo electronico saliente, EMISOR.
$receptoremail = $_POST['customer_email']; //Correo electronico saliente, RECEPTOR.
ini_set('date.timezone','America/Mazatlan'); //FECHA
$hoy = date("j/n/Y g:i:s A");
$asunto = $_POST['subject']; //Correo electronico saliente, EMISOR.
$mensaje = $_POST['message']; //Correo electronico saliente, EMISOR.
 
$rootTag = $xml->getElementsByTagName("Proyecto")->item(0); //etiqueta del atributo xml
 
$infoTag = $xml->createElement("Historial");  //crea etiqueta del elemento xml
    //Datos/elementos que lo conformaran y como deberan de presentarse en los tag
    $EnameTag = $xml->createElement("EnviadoPor", $emisorname);
    $EEmailTag = $xml->createElement("DeEmail", $emisoremail);
    $REmailTag = $xml->createElement("AlEmail", $receptoremail);
    $HoyTag = $xml->createElement("Fecha", $hoy);
    $AsuntoTag = $xml->createElement("Asunto", $asunto);
    $MensajeTag = $xml->createElement("Mensaje", $mensaje);
    //imprimir
$infoTag->appendChild($EnameTag);
$infoTag->appendChild($EEmailTag);
$infoTag->appendChild($REmailTag);
$infoTag->appendChild($HoyTag);
$infoTag->appendChild($AsuntoTag);
$infoTag->appendChild($MensajeTag);
//Guardar                      
$rootTag->appendChild($infoTag);
$xml -> save ('estroctura.xml');
 
}
 
 
?>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de santi
Val: 588
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

¿Por que no se ejecuta la funcion php en formulario?

Publicado por santi (204 intervenciones) el 09/04/2018 16:12:32
Hola,

no entiendo muy bien:

compruebas si el formulario se ha enviado entre medio del código del formulario? Entre la apertura y el cierre?

¿Te da algún error?

¿Has probado de crear primero el archivo y después enviar el mensaje?

Perdona pero no lo he entendido muy bien..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar