<?php

ini_set('error_reporting', E_ALL);
//-----------------------------------------------------

msg("Ejecuta el PHP");
msg("--------------");


//--- Env�o de e-mails con php mailer
//require_once("phpmailer/class.phpmailer.php");
require_once("Tmailer.php");

//--------- Campos permitidos en un formulario ----------
//
// nombre  - texto
// email   - email (usuario) Se usa para enviar respuesta al uausario
// mensaje - texto
// archivo - fichero adjunto
// direc   - texto
// pobla   - texto
// prov    - texto
// cp      - texto
// cif     - texto
//
//
//   *** OCULTOS ***
//
// email_destino - email
// asunto - texto
// html_respuesta  ( Fichero Texto HTML, Si existe hay que enviar otro email de respuesta al email del usuario con este fichero)
// html_asunto     ( Asunto del email de respuesta)
// html_empresa    ( Nombre del due�o de la web para cambiarlo en el fichero respuesta "html_respuesta" )
//
// bot-field       ( si no lo recibe o no es vac�o, es que no lo ha enviado nuestro submit, sino un robot de spam)

msg("ENtra");

// Verifica si se ha enviado el formulario
if ($_SERVER["REQUEST_METHOD"] == "POST") 
{
    // Recupera los datos del formulario

    msg( "Recupera los datos del formulario POST");

    // Verifica si el campo oculto "no-bot" est� vac�o o no existe
    //if (!isset($_POST["bot-field"]) || empty($_POST["bot-field"]))
    if (!isset($_POST["bot-field"]) || $_POST["bot-field"] !== "")
     {
         msg("Interrumpido por bot");
         return; // Termina la ejecuci�n del script si "no-bot" no est� definido o est� vac�o
     }

    // Ocultos
    $email_destino = isset($_POST["email_destino"]) ? $_POST["email_destino"] : "buzonjmartial@gmail.com";
    $asunto        = isset($_POST["asunto"]) ? $_POST["asunto"] : "Formulario Web";   

    $isExistRespuesta = false;
    if (isset($_POST["html_respuesta"]))
    {
      $isExistRespuesta = true;
      $html_respuesta = $_POST["html_respuesta"];
      $html_asunto    = $_POST["html_asunto"];
      $html_empresa   = $_POST["html_empresa"];
    }  
    //-------------

    //msgalert($email_destino);

    $nombre  = isset($_POST["nombre"]) ? $_POST["nombre"] : "";   
    $tfno    = isset($_POST["tfno"]) ? $_POST["tfno"] : "";
    $email   = isset($_POST["email"]) ? $_POST["email"] : "";
    $mensaje = isset($_POST["mensaje"]) ? $_POST["mensaje"] : "";
    $archivo = isset($_FILES['archivo']) ? $_FILES['archivo'] : "";
    
    $direc   = isset($_POST["direc"]) ? $_POST["direc"] : "";
    $pobla   = isset($_POST["pobla"]) ? $_POST["pobla"] : "";
    $prov    = isset($_POST["prov"]) ? $_POST["prov"] : "";
    $cp      = isset($_POST["cp"]) ? $_POST["cp"] : "";
    $cif     = isset($_POST["cif"]) ? $_POST["cif"] : "";

    $cuerpo =  "<div style='font-family:Roboto,monospace; font-size:16px; margin: 0 10px; padding-bottom:1rem; text-align:left;'>";

    $cuerpo .= $nombre  == "" ? "" : "<strong>Nombre...: </strong>".$nombre."<br>"; 
    $cuerpo .= $direc   == "" ? "" : "<strong>Direcci�n: </strong>".$direc."<br>"; 
    $cuerpo .= $pobla   == "" ? "" : "<strong>Poblaci�n: </strong>".$pobla."<br>"; 
    $cuerpo .= $prov    == "" ? "" : "<strong>Provincia: </strong>".$prov."<br>"; 
    $cuerpo .= $cp      == "" ? "" : "<strong>C.Postal.: </strong>".$cp."<br>"; 
    $cuerpo .= $cif     == "" ? "" : "<strong>CIF......: </strong>".$cif."<br>";
    $cuerpo .= $tfno    == "" ? "" : "<strong>Tfno.....: </strong>".$tfno."<br>"; 
    $cuerpo .= $email   == "" ? "" : "<strong>email....: </strong>".$email."<br>"; 
    $cuerpo .= $mensaje == "" ? "" : "<strong>Mensaje..: </strong>".$mensaje."<br>";
    
    $cuerpo .= "</div>";

    // Verifica si se seleccion� un archivo
    if ($archivo !== "" && $archivo['error'] == UPLOAD_ERR_OK) {
        
        $isAdjunto = true;

        // Ruta temporal del archivo
        $archivo_temporal = $archivo['tmp_name'];
        // Nombre original del archivo
        $nombre_original = $archivo['name'];
        // Ruta final en el directorio actual con el nombre original del archivo
        $ruta_destino = './' . $nombre_original;

        // Mueve el archivo a la ubicaci�n final
        move_uploaded_file($archivo_temporal, $ruta_destino);

        // Llama a la funci�n envia_email_phpmailer con el archivo adjunto
        $resultado = envia_email_phpmailer($email_destino, $asunto, $cuerpo, true, $ruta_destino, $email, $nombre);

        // Puedes hacer algo con el resultado, como mostrar un mensaje al usuario
        if ($resultado === true) {
            //echo 'Correo enviado con �xito.';
        } else {
            //echo 'Error: ' . $resultado;
        }
     } 
     else 
     {
        // Llama a la funci�n envia_email_phpmailer SIN el archivo adjunto
        $resultado = envia_email_phpmailer($email_destino, $asunto, $cuerpo, true, "", $email, $nombre);
        $isAdjunto = false;
     }
    
    // Enviamos por email
    if ($isAdjunto)
    {
        // Borra el archivo despu�s de que se ha enviado el correo
        unlink($ruta_destino);
    }

    // Despu�s de que la l�gica de PHP se haya ejecutado, emite c�digo JavaScript
    //msgalert("Prueba");

    if ($isExistRespuesta)
    {
       $cuerpo = getHtmlRespuesta($html_respuesta,$nombre,$html_empresa); 
       if ($cuerpo !== false) 
       {
          // Llama a la funci�n envia_email_phpmailer con la respuesta al usuario
          $resultado = envia_email_phpmailer($email, $html_asunto, $cuerpo, true);
       }   
   }

    sleep(2); // Espera 2 segundos antes de refrescar  
    $url = $_SERVER['HTTP_REFERER'];
    echo "<META HTTP-EQUIV='refresh' CONTENT='0; URL=$url'>";

}

function getHtmlRespuesta($file,$nombre_usu,$html_empresa)
{

// Ruta al archivo
$rutaArchivo = '../'.$file;

// Cargar el contenido del archivo en una variable
$contenido = file_get_contents($rutaArchivo);

if ($contenido !== false)
{
  // Sustituir palabras
  $contenido = str_replace("#nombre#", $nombre_usu, $contenido);
  $contenido = str_replace("#html_empresa#", $html_empresa, $contenido);
}  

return $contenido;
}

function envia_email_phpmailer($email_recibe,$asunto, $cuerpo, $isHTML=false,$file="",$email_usuario="",$nombre_usuario="")
  {
    /*
    PHPmailer
    */
        
        // $dominio  = "portalmainfo.com";
        // $Port     = 587;
        // $Username = "mainfo@portalmainfo.com";
        // $Password = "Mainfo=9876C";

        $dominio  = "portaldominus.com";
        $Port     = 587;
        $Username = "webshop@portaldominus.com";
        $Password = "Dominus=9876X";
        
        //$dominio = "portalmainfo.com";
        // $contenido_archivo = file_get_contents('pedidomail.mod');
        $mail = new PHPMailer();

        $CharSet = "utf-8"; // Por defecto es iso-8859-1
        
        $mail->IsSMTP();
        //$mail->Mailer   = "smtp";
        $mail->Helo     = $dominio; //"portaldominus.com"; //Muy importante para que llegue a hotmail y otros
        //$mail->Helo     = $dominio; //Muy importante para que llegue a hotmail y otros
        $mail->SMTPAuth   = true;
        $mail->SMTPSecure = "tls";
        
        $mail->Host     = "mail.".$dominio; //portaldominus.com";
        //$mail->Host     = "mail.".$dominio;
        $mail->Port     = $Port; //25; //26; //depende de lo que te indique tu ISP. El default es 25, pero nuestro ISP lo tiene puesto al 26
        $mail->Username = $Username;
        $mail->Password = $Password;
        $mail->Timeout  = 60;

        //----------------------------------------------
        //$mail->Hostname = '92.43.19.122';
        //$mail->Hostname = '62.138.142.61';
        $mail->Hostname = $dominio; //'portaldominus.com';
        
        $mail->SetFrom($Username, "Dominus WebShop");
        $mail->Sender   = $Username;

        // Configurar Reply-To al email del usuario
        if (!empty($email_usuario)) {
            $mail->AddReplyTo($email_usuario, $nombre_usuario);
        } else {
            $mail->AddReplyTo($Username, "Responde a este mail");
        }
        
        $mail->Subject  = $asunto;
        $mail->Body     = $cuerpo; 
        
        $mail->IsHTML( $isHTML );
        $mail->AddAddress($email_recibe, "User Name");

        // Adjuntar archivo
        if ($file !== "")
           $mail->addAttachment($file);

        //msgAlert($cuerpo); 
        $lOk = $mail->Send();
        //msgAlert('Fin envio email');
        //****unlink($privatekeyfile);
        
        if ($lOk==FALSE)
        {
            //msgalert("Ha habido un error en clase mailer");
            //msgalert($mail->ErrorInfo );
           // echo $mail->ErrorInfo;
        }
    //--------------------------------------------------------------
    return $lOk;
  }

  function msgAlert($cMsg = "Aviso de alerta")
  {
      //$cMsg = "'".$cMsg."'";
      $cMsg = str_replace("'", "\\'", $cMsg); // Escapar comillas simples
      $cMsg = str_replace("\n", "\\n", $cMsg); // Agregar saltos de l�nea
      echo '<script>';
      echo 'window.alert(\'' . $cMsg . '\');';
      echo '</script>';
  }

  // Guarda msg en fichero para debug
function logFilePHPmsgTEMP($texto)
{
    // Para anularlo
    return true;
    //----------------

    $file = "logFilePHPconfiWeb.log";
    
    $fechaHora = date('d-m-Y H:i:s'); // Obtener la fecha y hora actual en formato 'DD-MM-YYYY HH:mm:ss'
    $contenido = $fechaHora . ' - ' . $texto . PHP_EOL; // Concatenar fecha, hora y texto con un salto de l�nea

    $ddf = fopen($file, 'a'); // Abrir en modo append
    fwrite($ddf, $contenido); // Agregar el contenido al final del archivo
    fclose($ddf);
}

function msg($texto) {logFilePHPmsgTEMP($texto);}

  ?>