Anuncio

Anuncio Módulo
Colapsar
No hay anuncio todavía.

Ayuda PHP, algo simple para los que sepan

Título de Página Módulo
Transferir Eliminar Colapsar
X
Detalle Conversación Módulo
Colapsar
  • Filtrar
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes

  • Ayuda PHP, algo simple para los que sepan

    Buenas, tengo un problema: tengo un formulario de contacto HTML que se ejecuta por PHP. Está escrita la orden:

    mail($para, $asunto, $MESSAGE_BODY, $mailheader) or die('---')

    El script funciona bien ya que hace la funcion de enviar el email y si no se cumple el orden mail salta al ''or die'' correctamente.

    Pues lo que yo quiero hacer es que en vez de que salga la orden ''or die'', escribir una orden que si no se envía correctamente el mail, salte directamente a otra página. Alguien podría ayudarme? ando perdido en PHP, Gracias.

  • #2
    Prueba con:

    Código:
    mail($para, $asunto, $MESSAGE_BODY, $mailheader) or die("<script>location.href='pagina'</script>")
    Te en cuenta el uso de comillas dobles dentro del die para poder usar las comillas simples del javascript. O almacena previamente la url de la página en una variable de javascript

    Comentario


    • #3
      Originalmente publicado por andres_1033
      Prueba con:

      Código:
      mail($para, $asunto, $MESSAGE_BODY, $mailheader) or die("<script>location.href='pagina'</script>")
      Te en cuenta el uso de comillas dobles dentro del die para poder usar las comillas simples del javascript. O almacena previamente la url de la página en una variable de javascript
      Lo he probado y no funciona, me sale error de sintaxis. :/

      Comentario


      • #4
        No cuesta nada decir el error.. :P.. creoq ue le falta el ; (?) XD yo probaría el redirect nativo de php
        Código:
        <?php
        if(mail($para, $asunto, $MESSAGE_BODY, $mailheader)){
        header( 'Location: http://www.yoursite.com/new_page.html' ) ;
        }
        ?>
        o como tu lo estás trabajando, con la sentencia or:
        Código:
        <?php
        mail($para, $asunto, $MESSAGE_BODY, $mailheader) or
        header( 'Location: http://www.yoursite.com/new_page.html' ) ;
        ?>
        aunque el primer trozo de código estaba más legible.

        Y claro.. no olvidarse que el <?php debe eestar al inicio del documento, y no debe haber ni un espacio antes.

        Saludos.

        Comentario


        • #5
          Originalmente publicado por Dragon-Black
          No cuesta nada decir el error.. :P.. creoq ue le falta el ; (?) XD yo probaría el redirect nativo de php
          Código:
          <?php
          if(mail($para, $asunto, $MESSAGE_BODY, $mailheader)){
          header( 'Location: http://www.yoursite.com/new_page.html' ) ;
          }
          ?>
          o como tu lo estás trabajando, con la sentencia or:
          Código:
          <?php
          mail($para, $asunto, $MESSAGE_BODY, $mailheader) or
          header( 'Location: http://www.yoursite.com/new_page.html' ) ;
          ?>
          aunque el primer trozo de código estaba más legible.

          Y claro.. no olvidarse que el <?php debe eestar al inicio del documento, y no debe haber ni un espacio antes.

          Saludos.
          Buenas, mira lo que pasa es que ya tengo un "header" abajo entonces al poner la sentencia "or header" no salta en caso de error a ese "header" sino al que tengo a continuación, soluciones? Dejo el código entero.

          Código:
          <?php 
          // INGRESE EL EMAIL DONDE RECIBIRÁ LOS DATOS DEL FOMULARIO
          $para = 'mi email'; 
          
          $asunto = $_POST["tipo"]; 
          $mailheader = "From: ".$_POST["email"]."\r\n"; 
          $mailheader .= "Reply-To: ".$_POST["email"]."\r\n"; 
          $mailheader .= "Content-type: text/html; charset=iso-8859-1\r\n"; 
          $MESSAGE_BODY = "Nombre: ".$_POST["nombre"]."
          "; 
          $MESSAGE_BODY .= "Email: ".$_POST["email"]."
          "; 
          $MESSAGE_BODY .= "Tipo de contacto: ".$_POST["tipo"]."
          ";
          $MESSAGE_BODY .= "Mensaje: ".nl2br($_POST["mensaje"])."
          ";
          mail($para, $asunto, $MESSAGE_BODY, $mailheader) or header( 'Location: OTRA WEB' )
          
          //MODIFICAR A LA DIRECCIÓN EN SU SERVIDOR
          header( 'Location: MI WEB' )
          ?>

          Comentario


          • #6
            Ya está solucionado, muchas gracias por intentar ayudarme!

            Comentario

            Trabajando...
            X