Foros del Web » Programando para Internet » PHP »

Formulario que no se envía

Estas en el tema de Formulario que no se envía en el foro de PHP en Foros del Web. Hola, a ver si me podéis ayudar porque por muchas vueltas que le doy no sé donde está el fallo. Tengo un formulario en una ...

  #1 (permalink)  
Antiguo 01/06/2008, 13:36
 
Fecha de Ingreso: julio-2003
Ubicación: Sevilla
Mensajes: 81
Antigüedad: 20 años, 9 meses
Puntos: 1
Exclamación Formulario que no se envía

Hola, a ver si me podéis ayudar porque por muchas vueltas que le doy no sé donde está el fallo.

Tengo un formulario en una página web, en la que el contenido se envía a una dirección de correo mediante PHP, concretamente uso la función mail(), y después de enviarse, dependiendo se si se envía bien o si hubo algún error durante el proceso, te debe de redirigir a una página donde te da las gracias, si todo ha ido bien, o a una donde te dice que ha habido un error, pero el problema está en que ni envía el formulario, ni tampoco redirige a ninguna página, hace como que lo envía, y después se vuelve a cargar de nuevo la página con el formulario, por lo que la persona que rellena el formulario piensa que se ha enviado bien, pero no es así.

Pongo aquí el código, no entero, ya que es un formulario muy largo, y tiene tablas por medio, y serían muchas líneas de código, y el problema no está en el HTML, sino en el PHP, a ver si alguien detecta qué está mal:


Código PHP:
<?php
if (!$HTTP_POST_VARS) { // con esto compruebo al principio no hay nada en la variable $HTTP_POST_VARS, y muestro el formulario
?> <!-- el if se cierra al final -->
Código HTML:
<form method="POST" name="Reservas" action="reservas.php">
<!-- contenido del formulario -->
<input type="submit" value="ENVIAR" name="B1" style="font-size: 12pt">
<input type="reset" value="BORRAR" name="B2" style="font-size: 12pt">
</form> 

Código PHP:
<?php

} else { // cierro la llave del 'if' anterior y abro la del 'else'
// en caso de que en la variable '$HTTP_POST_VARS' haya algo, significa que se ha enviado el formulario

// Recibo el formulario y compongo el cuerpo del mensaje que voy a enviar
$cuerpo "<h1>Reserva de Mesa</h1>";
$cuerpo .= "Fecha de reserva: " $HTTP_POST_VARS["Dia"] . " de " $HTTP_POST_VARS["Mes"] . " a las " $HTTP_POST_VARS["Hora"] . "<br>";

$cuerpo .= "Número de comensales: " $HTTP_POST_VARS["Comensales"] . "<br>";

// y así con todos y cada uno de los campos del formulario

// para que se envíe en formato HTML
$headers "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";

// dirección del remitente, la cogemos del campo del formulario al respecto
$headers .= "From: " $HTTP_POST_VARS["Email"] . "\r\n";

//ruta del mensaje desde origen a destino
$headers .= "Return-path: " $HTTP_POST_VARS["Email"] . "\r\n"

// mando el correo...
if (mail("email_destino","Reserva de Mesa",$cuerpo,$headers)) {

// Redirijo a la página de formulario recibido, si el valor del if es que sí 
header("location:http://www.miserver.com/enviado.htm");
}else{

// En caso contrario, redirijo a la página de formulario enviado erróneamente
header("location:http://www.miserver.com/error.htm");
}
// cierro el 'else' de la función mail()
}// cierro el 'else' del principio del script, en el que comprobaba el contenido de la variable $HTTP_POST_VARS
?>
De todos modos, si veis que esto ésta bien y necesitáis el código entero, no tengo ningún inconveniente en transcribirlo entero, pero creo que no es necesario.


Muchas gracias de antemano.
  #2 (permalink)  
Antiguo 01/06/2008, 14:14
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 1 mes
Puntos: 52
Respuesta: Formulario que no se envía

hola

prueba asi tu if:

Código PHP:
if (!isset($HTTP_POST_VARS)) { 
  #3 (permalink)  
Antiguo 01/06/2008, 15:31
 
Fecha de Ingreso: julio-2003
Ubicación: Sevilla
Mensajes: 81
Antigüedad: 20 años, 9 meses
Puntos: 1
Respuesta: Formulario que no se envía

Nada, tiene el mismo efecto, no envía nada, y sigue sin redirigirme a ninguna página, se vuelve a cargar otra vez la página del formulario como si nada.

Otra cosa, al principio del todo de la página, antes incluso que la etiqueta HTML, tengo puesto lo siguiente:
Código PHP:
<?php
ob_start
(); // Buffering de salida. Para que no haya problemas más tarde con la función "header()"
?>
Creo que no influye para nada, pero por si acaso lo pongo aquí.

Un saludo.

P.D.: ¿Para qué sirve la función isset()?.
  #4 (permalink)  
Antiguo 01/06/2008, 15:40
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 1 mes
Puntos: 52
Respuesta: Formulario que no se envía

eso esta bien, de hecho, no te da error el header

pues prueba a cambiar los $HTTP_POST_VARS por $_POST

recoge solo una variable y hazle un echo a ver que imprime


prueba esto, colocalo antes del if , a tu escript no le llegan las variables, creo, y por eso siempre te lo muestra despues de enviar, porque es lo que tu le has dicho que haga, si no hay variables enviadas por POST, muestra el form


Código PHP:
<?php 

$email 
$HTTP_POST_VARS["Email"]; //aunque aqui deberias usar comillas simples y no dobles, no me di cuenta
echo $email;

echo 
"<br>";
$dia $_POST['Dia'];
echo 
$dia;

if (!
$HTTP_POST_VARS) { // con esto compruebo al principio no hay nada en la variable $HTTP_POST_VARS, y muestro el formulario 
?> <!-- el if se cierra al final -->
  #5 (permalink)  
Antiguo 01/06/2008, 17:35
 
Fecha de Ingreso: julio-2003
Ubicación: Sevilla
Mensajes: 81
Antigüedad: 20 años, 9 meses
Puntos: 1
Respuesta: Formulario que no se envía

He cambiado todos los '$HTTP_POST_VARS', por '$_POST', excepto los de los 'if', y las comillas dobles por comillas simples en las variables de los campos de formulario, pero sigue sin enviarse el formulario, ni redireccionarme a otra página.

He puesto antes del 'if' ese del '(!$HTTP_POST_VARS)', y sí que me muestra el contenido de las variables como debía, y dentro del formulario la asignación de las variables es más o menos igual que en lo anterior, la única diferencia con el código del mensaje del principio, son los cambios del primer párrafo, con lo que quedaría así la cosa ahora:

Código PHP:
$cuerpo "<h1><u>Reserva de Mesa</u></h1>";
$cuerpo .= "Fecha de reserva: " $_POST['Dia'] . " de " $_POST['Mes'] . " a las " $_POST['Hora'] . "<br>";
$cuerpo .= "Número de comensales: " $_POST['Comensales'] . "<br>";

// dirección del remitente, la cogemos del campo del formulario al respecto
$headers .= "From: " $_POST['Email'] . "\r\n"
Sin embargo, sigue sin enviarse.
  #6 (permalink)  
Antiguo 01/06/2008, 17:42
 
Fecha de Ingreso: febrero-2007
Mensajes: 38
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: Formulario que no se envía

Hola

Como sugerencia, crearia un script mucho mas simple solo de prueba para verificar en primer lugar que el problema no este del lado del servidor.

Despues de verificar el correcto funcionamiento del servidor, entonces seguiria buscando el problema en el script actual.
  #7 (permalink)  
Antiguo 01/06/2008, 17:48
 
Fecha de Ingreso: julio-2003
Ubicación: Sevilla
Mensajes: 81
Antigüedad: 20 años, 9 meses
Puntos: 1
Respuesta: Formulario que no se envía

Ok, tienes razón, haré lo que comentas, y ya os diré el resultado.


Un saludo.
  #8 (permalink)  
Antiguo 01/06/2008, 17:49
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 1 mes
Puntos: 52
Respuesta: Formulario que no se envía

pero este if:

Cita:
if (!$HTTP_POST_VARS)
creo que deberia ser asi:

Cita:

if (!isset($HTTP_POST_VARS)){
  #9 (permalink)  
Antiguo 01/06/2008, 17:52
 
Fecha de Ingreso: febrero-2007
Mensajes: 38
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: Formulario que no se envía

Creo que lo mas basico que puedes usar es algo como esto:

<?php

$email_origen = "[email protected]";
$email_destino = "[email protected]";


$asunto = "Script de prueba send mail";
$mensaje = "Contenido del Script de prueba send mail";


//************************************************** ***************//
$headers = "From: $email_origen \r\n";
$headers .= "Return-Path: $email_origen \r\n";
$headers .= "Reply-To: $email_origen \r\n";
//************************************************** ***************//


if (mail($email_destino, $asunto, $mensaje, $headers)) {
echo "Mensaje Enviado Correctamente<br>";
} else {
echo "Mensaje NO enviado";
}
?>
  #10 (permalink)  
Antiguo 01/06/2008, 18:00
 
Fecha de Ingreso: julio-2003
Ubicación: Sevilla
Mensajes: 81
Antigüedad: 20 años, 9 meses
Puntos: 1
Respuesta: Formulario que no se envía

Lo del 'if' añadiéndose el 'isset' ya lo cambié antes, fue lo primero que me sugeriste.


Un saludo.

Última edición por rvelezb; 01/06/2008 a las 18:08
  #11 (permalink)  
Antiguo 01/06/2008, 18:01
 
Fecha de Ingreso: febrero-2007
Mensajes: 38
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: Formulario que no se envía

Te funciona el que yo te he enviado?
  #12 (permalink)  
Antiguo 01/06/2008, 18:12
 
Fecha de Ingreso: julio-2003
Ubicación: Sevilla
Mensajes: 81
Antigüedad: 20 años, 9 meses
Puntos: 1
Respuesta: Formulario que no se envía

Todavía no lo he puesto, ya lo probaré mañana y os comentaré que tal, ahora me voy a la cama, que mañana madrugo.


Un saludo.
  #13 (permalink)  
Antiguo 02/06/2008, 04:13
 
Fecha de Ingreso: julio-2003
Ubicación: Sevilla
Mensajes: 81
Antigüedad: 20 años, 9 meses
Puntos: 1
Respuesta: Formulario que no se envía

Antonio, el script que tú has puesto funciona perfecto, envía el correo bien, y te sale el mensaje de que se ha enviado bien, y lo recibo bien, así que el problema no está en el servidor sino en mi código.

Muchas gracias.

Última edición por rvelezb; 02/06/2008 a las 06:27
  #14 (permalink)  
Antiguo 02/06/2008, 06:07
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 1 mes
Puntos: 52
Respuesta: Formulario que no se envía

hazlo alreves

Código PHP:
<?php 
if (isset ($HTTP_POST_VARS)) { // con esto compruebo al principio  hay algo en la variable $HTTP_POST_VARS, y inserto en la BD
?> <!-- el if se cierra al final -->


Código PHP:
// Recibo el formulario y compongo el cuerpo del mensaje que voy a enviar 
$cuerpo "<h1>Reserva de Mesa</h1>"
$cuerpo .= "Fecha de reserva: " $HTTP_POST_VARS["Dia"] . " de " $HTTP_POST_VARS["Mes"] . " a las " $HTTP_POST_VARS["Hora"] . "<br>"

$cuerpo .= "Número de comensales: " $HTTP_POST_VARS["Comensales"] . "<br>"

// y así con todos y cada uno de los campos del formulario 

// para que se envíe en formato HTML 
$headers "MIME-Version: 1.0\r\n"
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n"

// dirección del remitente, la cogemos del campo del formulario al respecto 
$headers .= "From: " $HTTP_POST_VARS["Email"] . "\r\n"

//ruta del mensaje desde origen a destino 
$headers .= "Return-path: " $HTTP_POST_VARS["Email"] . "\r\n";  

// mando el correo... 
if (mail("email_destino","Reserva de Mesa",$cuerpo,$headers)) { 

// Redirijo a la página de formulario recibido, si el valor del if es que sí  
header("location:http://www.miserver.com/enviado.htm"); 
}else{ 

// En caso contrario, redirijo a la página de formulario enviado erróneamente 
header("location:http://www.miserver.com/error.htm"); 
}
// cierro el 'else' de la función mail() 
}// cierro el 'else' del principio del script, en el que comprobaba el contenido de la variable $HTTP_POST_VARS 
?> 

Código PHP:
} else {
<
form method="POST" name="Reservas" action="reservas.php">
<!-- 
contenido del formulario -->
<
input type="submit" value="ENVIAR" name="B1" style="font-size: 12pt">
<
input type="reset" value="BORRAR" name="B2" style="font-size: 12pt">
</
form>

  #15 (permalink)  
Antiguo 02/06/2008, 06:25
 
Fecha de Ingreso: julio-2003
Ubicación: Sevilla
Mensajes: 81
Antigüedad: 20 años, 9 meses
Puntos: 1
Respuesta: Formulario que no se envía

Cita:
Iniciado por jaronu Ver Mensaje
hazlo alreves

Código PHP:
<?php 
if (isset ($HTTP_POST_VARS)) { // con esto compruebo al principio  hay algo en la variable $HTTP_POST_VARS, y inserto en la BD
?> <!-- el if se cierra al final -->
Si lo pongo al revés, entonces el formulario en sí debería de ir en el 'else', ¿no?, y aquí iría lo que antes iría en el 'else', ¿no?, vamos que sería así:

Código PHP:
<?php 
if (isset ($HTTP_POST_VARS)) { // con esto compruebo al principio  hay algo en la variable $HTTP_POST_VARS, e inserto en la BD
header("location:http://www.miserver.com/error.htm"); 
} else {
// cierro la llave del 'if', pongo el 'else' y abro la llave del 'else'
?> <!-- el if se cierra al final -->
Código HTML:
<form method="POST" name="Reservas" action="reservas.php">
<!-- Aquí iría todo el formulario -->
<input type="submit" value="ENVIAR" name="B1" style="font-size: 12pt">
<input type="reset" value="BORRAR" name="B2" style="font-size: 12pt">
</form> 
Código PHP:
<?php
// Recibo el formulario y compongo el cuerpo del mensaje que voy a enviar 
$cuerpo "<h1>Reserva de Mesa</h1>"
$cuerpo .= "Fecha de reserva: " $HTTP_POST_VARS["Dia"] . " de " $HTTP_POST_VARS["Mes"] . " a las " $HTTP_POST_VARS["Hora"] . "<br>"

$cuerpo .= "Número de comensales: " $HTTP_POST_VARS["Comensales"] . "<br>"

// y así con todos y cada uno de los campos del formulario 

// para que se envíe en formato HTML 
$headers "MIME-Version: 1.0\r\n"
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n"

// dirección del remitente, la cogemos del campo del formulario al respecto 
$headers .= "From: " $HTTP_POST_VARS["Email"] . "\r\n"

//ruta del mensaje desde origen a destino 
$headers .= "Return-path: " $HTTP_POST_VARS["Email"] . "\r\n";  

// mando el correo... 
if (mail("email_destino","Reserva de Mesa",$cuerpo,$headers)) { 

// Redirijo a la página de formulario recibido, si el valor del if es que sí  
header("location:http://www.miserver.com/enviado.htm"); 
}
// cierro el 'else' de la función mail() 
}// cierro el 'else' del principio del script, en el que comprobaba el contenido de la variable $HTTP_POST_VARS
?>
Corrígeme si me equivoco.
  #16 (permalink)  
Antiguo 02/06/2008, 06:31
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 1 mes
Puntos: 52
Respuesta: Formulario que no se envía

creo que te equivocas
va como te indique el el post de arriba

si existen variables post----> manda el correo
else
muestra el formulario
  #17 (permalink)  
Antiguo 02/06/2008, 06:42
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 1 mes
Puntos: 52
Respuesta: Formulario que no se envía

Hola. a si lo tengo hecho, y funciona bien:


Código PHP:

<?

if (isset($_POST["email"])) {

    
    
$asunto $_POST ['asunto'];
    
$texto $_POST ['texto'];


if(
$asunto==NULL|$texto==NULL|$email==NULL) {
        echo 
"un campo está vacio.";
        
        }else{
 
// Datos del email
$_GET ['nombre'] = $nombre;
$nombre_origen    "tu nombre";
$email_origen     "tu correo";
//$email_copia      = $email;
//$email_ocultos    = $email;
//$email_destino    = "".$row['email']."";  
$email_destino    $_POST ['email'];  
$asunto           $asunto;
$mensaje          $texto;
$formato          "html";

//*****************************************************************//
$headers  "From: $nombre_origen <$email_origen> \r\n";
$headers .= "Return-Path: <$email_origen> \r\n";
$headers .= "Reply-To: $email_origen \r\n";
$headers .= "X-Sender: $email_origen \r\n";
$headers .= "X-Priority: 3 \r\n";
$headers .= "MIME-Version: 1.0 \r\n";
$headers .= "Content-Transfer-Encoding: 7bit \r\n";

//*****************************************************************//
 
if($formato == "html")
 { 
$headers .= "Content-Type: text/html; charset=iso-8859-1 \r\n";  }
   else
    { 
$headers .= "Content-Type: text/plain; charset=iso-8859-1 \r\n";  }

if (@
mail($email_destino$asunto$mensaje$headers)) 
    { 
    echo 
"email enviado con exito";
    
    } 
     
            

                
                
                
  }    
}
            








?>
                        </div></td>
                  </tr>
                </table>
                <p>&nbsp;</p></td>
            </tr>
            <tr>
              <td height="30" colspan="3" bgcolor="#cccccc"><div align="center" class="Estilo23">Enviar email de contestacion de:</div></td>
              </tr>
            <tr>
              <td colspan="3"></td>
              </tr>
            
            <tr>
              <td height="29" colspan="3" align="center" class="Estilo18"><form id="contestar_centroki" name="contestar_centroki" method="post" action="contestar_form_centro.php">
                <table width="572" border="0" cellpadding="0" cellspacing="0">
                  <tr>
                    <td height="18" colspan="3" class="Estilo23">&nbsp;</td>
                  </tr>
                  <tr>
                    <td height="27" colspan="3" bgcolor="#6699FF" class="Estilo23"><div align="center">
                    
                                        
                    </div></td>
                  </tr>
                  <tr>
                    <td height="37" colspan="3" class="Estilo17"><div align="center" class="Estilo30">Mandar email</div></td>
                    </tr>
                  <tr>
                    <td width="42" class="Estilo18">email</td>
                    <td width="288"><label>
                      <input name="email" type="text" class="estilotextarea471" id="email" value="<? echo $email?>" size="40"/>
                    </label></td>
                    <td width="181">&nbsp;</td>
                  </tr>
                  <tr>
                    <td>&nbsp;</td>
                    <td>&nbsp;</td>
                    <td align="center"><label></label></td>
                  </tr>
                  <tr>
                    <td height="24" class="Estilo18">Asunto</td>
                    <td><label>
                        <input name="asunto" type="text" class="estilotextarea4" id="asunto" size="60" />
                          </label>                        </td>
                   <td align="center">&nbsp;</td>
                  </tr>
                  <tr>
                    <td>&nbsp;</td>
                    <td>&nbsp;</td>
                     <td>&nbsp;</td>
                  </tr>
                  <tr>
                    <td>Texto del email</td>
                    <td><label>
                      <textarea name="texto" cols="60" rows="10" class="estilotextarea41" id="texto"></textarea>
                    </label></td>
                    <td>&nbsp;</td>
                  </tr>
                  <tr>
                    <td>&nbsp;</td>
                    <td>&nbsp;</td>
                    <td>&nbsp;</td>
                  </tr>
                  <tr>
                    <td>&nbsp;</td>
                    <td>&nbsp;</td>
                    <td>&nbsp;</td>
                  </tr>
                  <tr>
                    <td>&nbsp;</td>
                    <td>&nbsp;</td>
                    <td>&nbsp;</td>
                  </tr>
                  <tr>
                    <td>&nbsp;</td>
                    <td><div align="center">
                      <input type="submit" name="button" id="button" value="Enviar" />
                    </div></td>
                    <td>&nbsp;</td>
                  </tr>
                 </table>
              </form>
Y ya creo que estamos escribiendo demasiado codigo
  #18 (permalink)  
Antiguo 02/06/2008, 07:29
 
Fecha de Ingreso: julio-2003
Ubicación: Sevilla
Mensajes: 81
Antigüedad: 20 años, 9 meses
Puntos: 1
Respuesta: Formulario que no se envía

Cita:
Iniciado por jaronu Ver Mensaje
creo que te equivocas
va como te indique el el post de arriba

si existen variables post----> manda el correo
else
muestra el formulario
Al ponerlo así, directamente al cargar la página, se me redirige automáticamente a la página de enviado bien, ni siquiera se carga el formulario.
Código PHP:
<?php
if (!isset($_HTTP_POST_VARS)){
 
// Recibimos el formulario y compongo el cuerpo
$cuerpo "Fecha de reserva: " $_POST['dia'] . " de " $_POST['mes'] . " a las " $_POST['hora'] . "<br>";
$cuerpo .= "Número de comensales: " $_POST['comensales'] . "<br>";
$cuerpo .= "Email de contacto: " $_POST['email'] . "<br>";

                    
// para que me llegue en HTML
$headers "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";

$headers .= "From: " $_POST['email'] . "\r\n";
                 
                            
// mando el correo...
if (mail("[email protected]","Reserva de Mesa",$cuerpo,$headers)) {

                          
// Si es correcto se redirige página de OK
header("location:http://www.parrillaandaluza.com/enviado.htm");

}else{ 
// Si no, redirijo a la página de que error                            

header("location:http://www.parrillaandaluza.com/error.htm");                    

// cierro el 'else' del 'if' de la función 'mail()'
} else { // cierro la llave del 'if' del principio del script, y abro al del ¡else'
?>  <!-- el 'if' se cierra después del formulario -->
Código PHP:
<?php
// se cierra la llave del 'else' que se abrió antes del formulario
?>
Y entre medio de ambos scripts va el formulario, pero nunca se llega a cargar, directamente me redirige a la página de que se ha enviado bien y me envía el email, pero me llega en blanco, y además en el mensaje me salen las etiquetas HTML.


Un saludo.

Última edición por rvelezb; 02/06/2008 a las 11:30
  #19 (permalink)  
Antiguo 02/06/2008, 10:17
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 1 mes
Puntos: 52
Respuesta: Formulario que no se envía

pero no te dije eso fijate bien en el post de arriba en el IF

es: if (isset($_POST["email"])) {

y tu has puesto

if (!isset($_POST["email"])) {

cambialo
  #20 (permalink)  
Antiguo 02/06/2008, 11:19
 
Fecha de Ingreso: julio-2003
Ubicación: Sevilla
Mensajes: 81
Antigüedad: 20 años, 9 meses
Puntos: 1
Respuesta: Formulario que no se envía

Cierto, ha sido un lapsus, había puesto la negación delante y por eso nunca me mostraba el formulario, corregido eso, ahora estamos igual que al principio, muestra el formulario, pero no lo envía, le das a enviar y se vuelve a cargar la página del formulario, pero no se envía nada.


Un saludo.
  #21 (permalink)  
Antiguo 02/06/2008, 13:00
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 1 mes
Puntos: 52
Respuesta: Formulario que no se envía

por favor, prueba en cambiar $_HTTP_POST_VARS, por $_POST
  #22 (permalink)  
Antiguo 02/06/2008, 13:03
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 1 mes
Puntos: 52
Respuesta: Formulario que no se envía

Y no se si el if esta bien hecho.
Un ejemplo mas claro es este:

Cita:
$dia = $_POST ['dia']; //primero recupero la variable

if (isset($dia)) {//despues compruebo que exista
creo que asi seria mas correcto
Un saludo
  #23 (permalink)  
Antiguo 02/06/2008, 13:12
 
Fecha de Ingreso: julio-2003
Ubicación: Sevilla
Mensajes: 81
Antigüedad: 20 años, 9 meses
Puntos: 1
Respuesta: Formulario que no se envía

Pero es que en el 'if' no pregunto por ninguna variable en concreto, es una pregunta general, si hay algo en cualquiera de las variables de formulario.

Código PHP:
if (isset($_POST)){ 
  #24 (permalink)  
Antiguo 02/06/2008, 13:21
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 1 mes
Puntos: 52
Respuesta: Formulario que no se envía

creo que esta mal has de poner lo que te dije

para hacerlo general deberia de ser con el nombre del formulario

Cita:

if (isset($_POST['Reservas'])){
  #25 (permalink)  
Antiguo 02/06/2008, 14:03
 
Fecha de Ingreso: julio-2003
Ubicación: Sevilla
Mensajes: 81
Antigüedad: 20 años, 9 meses
Puntos: 1
Respuesta: Formulario que no se envía

Con el nombre del formulario:
Código PHP:
if (isset($_POST['Reservas'])){ 
tampoco funciona, hace como que envía, pero en realidad no envía nada, vuelve a cargar el formulario y ya está. Y poniéndolo de la manera que decías antes, preguntando por una variable en concreto, así:
Código PHP:
$dia $_POST ['dia']; //primero recupero una variable cualquiera
if (isset($dia)) {// y después compruebo que exista 
el resultado es el mismo que antes, nada.
  #26 (permalink)  
Antiguo 02/06/2008, 14:34
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 1 mes
Puntos: 52
Respuesta: Formulario que no se envía

que servidor usas, local de pago,
apache, IIS
cual???
  #27 (permalink)  
Antiguo 02/06/2008, 15:39
 
Fecha de Ingreso: julio-2003
Ubicación: Sevilla
Mensajes: 81
Antigüedad: 20 años, 9 meses
Puntos: 1
Respuesta: Formulario que no se envía

El servidor que uso es uno de pago, un servidor virtual dedicado de Godaddy, con Apache instalado.
  #28 (permalink)  
Antiguo 02/06/2008, 15:51
Avatar de terepaima  
Fecha de Ingreso: junio-2008
Mensajes: 82
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Formulario que no se envía

Hola

Si entiendo bien, lo que estas buscando es validar que se este enviando el form para entonces correr el script.

Si es asi, porque no colocas un hidde Field que contenga una variable X y simplemente si esa variable existe dejas correr el script?

<input name="enviaremail" type="hidden" id="enviaremail" value="si" />

<?PHP
if ($_post["enviaremail"] == "si") {
// aqui el codigo de envio
}
?>
  #29 (permalink)  
Antiguo 02/06/2008, 15:54
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 1 mes
Puntos: 52
Respuesta: Formulario que no se envía

mas o meno lo que le llevo diciendo un rato

que use $_POST
  #30 (permalink)  
Antiguo 02/06/2008, 17:01
 
Fecha de Ingreso: julio-2003
Ubicación: Sevilla
Mensajes: 81
Antigüedad: 20 años, 9 meses
Puntos: 1
De acuerdo Respuesta: Formulario que no se envía

Cita:
Iniciado por jaronu Ver Mensaje
mas o meno lo que le llevo diciendo un rato

que use $_POST
El $_POST lo llevo utilizando desde hace rato, lo puedes comprobar en los últimos fragmentos de código que he puesto.

Lo que ha sugerido terepaima funciona, las vueltas que le hemos dado y al final esa tontería era lo que faltaba para que se enviara el puto formulario bien de una vez por todas.


Muchas gracias a todos por ayudarme, he sido un poco pesado con el tema, cada uno a puesto su granito de arena y al final entre todos habéis conseguido que funcione.
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 20:08.