Foros del Web » Programando para Internet » PHP »

form en un host y php en otro se puede ??

Estas en el tema de form en un host y php en otro se puede ?? en el foro de PHP en Foros del Web. Hola chicos k tal Yo uso 2 hosting gratuitos 1° .- website 2° .- foro. la funcion mail() la uso en el hosting 2° del ...
  #1 (permalink)  
Antiguo 23/09/2005, 15:30
 
Fecha de Ingreso: abril-2005
Mensajes: 130
Antigüedad: 12 años, 7 meses
Puntos: 0
Pregunta form en un host y php en otro se puede ??

Hola chicos k tal
Yo uso 2 hosting gratuitos
1° .- website
2° .- foro.

la funcion mail() la uso en el hosting 2° del foro. Por que en el otro no puedo usar esa funcion.

Ahora la pregunta es: Puedo poner el formulario en el host 1° y la funcion mail () en el 2° ??

osea poner el html en el 1° y el php en el 2°

como separo las cosas ??? y como hago para llamar al php desde la otra pag??

se entiende no ? pongo el formulario con todo el codigo html en una pagina .html en el hosting 1° y el archivo .php en el otro hosting con todas las funciones.

mucho no entiendo de php pero me las arreglo.
este es el form k uso.

Código PHP:
 <?php 
/*Función para validar e-mail con Exprexiones Regulares*/ 
function check_email($email) { 
    
//caracteres permitidos en el nombre: 0-9a-Z-._ en el host: 0-9a-Z-. entre los 2: @ 
    
if (!preg_match('/^[0-9a-zA-Z\.\-\_]+\@[0-9a-zA-Z\.\-]+$/'$email)) 
        return 
False
    
//Nombre debe empezar con algún caracter alfanumerico 
    
if ( preg_match('/^[^0-9a-zA-Z]|[^0-9a-zA-Z]$/'$email)) 
        return 
False
    
//Nombre debe terminar con algún caracter alfanumerico 
    
if (!preg_match('/([0-9a-zA-Z_]{1})\@./',$email) )                     
        return 
False
    
//Host debe empezar con algún caracter alfanumerico 
    
if (!preg_match('/.\@([0-9a-zA-Z_]{1})/',$email) )                     
        return 
False
    
#Par .- or -. or -- or .. no permitidos 
    
if ( preg_match('/.\.\-.|.\-\..|.\.\..|.\-\-./',$email) ) 
        return 
False
    
#Par ._ or -_ or _. or _- or __ no permitidos 
    
if ( preg_match('/.\.\_.|.\-\_.|.\_\..|.\_\-.|.\_\_./',$email) ) 
        return 
False
    
#Host debe terminar con '.' más 2-5 alfa para TopLevelDomain 
    
if (!preg_match('/\.([a-zA-Z]{2,5})$/',$email) ) 
        return 
False
    return 
True

/*Si se le dio al boton submit*/ 
if (isset($_POST['submit'])) { 
//revisa si no estan vacios los campos 
  
if (!empty($_POST['nombre']) &&   !empty($_POST['asunto']) && !empty($_POST['mensaje'])) { 
//revisa si el e-mail es valido 
    
if (check_email($_POST['email'])) { 
//asigno variables para el envio       
$para "[email protected]"
$email $_POST['email']; 
$nombre $_POST['nombre']; 
$asunto $_POST['asunto']; 
$mensaje="Nombre: $nombre.
Su ip es("
.$_SERVER['REMOTE_ADDR'].") 
Su mensaje es: "
.$_POST['mensaje']." \n"
$headers "From: $email \r\n"
$headers.= "To:$para \r\n";
$headers.= "Bcc: [email protected][email protected]\r\n";
$headers.= "La version que usa ".$_POST['version']." \n"
//envio el mail 
      
if (mail($para,$asunto,$mensaje,$headers)){
   
//Redirecciona la pag con envio exitoso
      
echo "<script language= \"JavaScript\">alert('Gracias por tus comentarios te lo agradecemos.'); window.location.href=\"http://www.redirecion.htm\";</script>"
      }else{ 
//si no se pudo enviar 
      
echo "<script language=\"javascript\" type=\"text/javascript\">alert('Error: El e-mail no pudo ser enviado')</script>";} 
      }else{ 
//si el e-mail no es valido 
     
echo "<script language=\"javascript\" type=\"text/javascript\">alert('El e-mail debe ser valido')</script>";} 
}else{ 
//si algun campo quedo vacio 
  
echo "<script language=\"javascript\" type=\"text/javascript\">Alert('Debes rellenar todos los campos')</script>";}
}else{ 
?>
<title>Formulario mail</title> 
<body bgcolor="#000000">
<form action="<?php $PHP_SELF ?>" method=post>
  <p><font color="#FFFFFF">Nombre:</font> 
    <input type=text name="nombre" size=16>
    <br />
    <font color="#FFFFFF">Tu Email:</font> 
    <input type=text name="email" size=16>
    <br />
    <font color="#FFFFFF">Asunto:</font> 
    <input type=text name="asunto" size=16>
    <br />
    <font color="#FFFFFF">Version que jugas del Cs</font>. 
    <select name="version">
      <option>Counter Strike 1.5</option>
      <option>Counter Strike 1.6</option>
      <option>Counter Strike Source</option>
    </select>
 <br />
    <font color="#FFFFFF">Comentarios:</font><br />
    <textarea name="mensaje" cols=50 rows=8 wrap="VIRTUAL"></textarea>
    <br />
    <input type=submit value="Enviar" name="submit">
    <input type=reset value="Limpiar" name="reset">
  </p>
  </form> 
<? 
}?>
GRACIAS
  #2 (permalink)  
Antiguo 23/09/2005, 15:42
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 13 años
Puntos: 34
Con solo en el action del form poniendo action="http://www.tuhost2.com/pagina.php" estaria listo.

Espero que te sirva.
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #3 (permalink)  
Antiguo 23/09/2005, 15:45
 
Fecha de Ingreso: agosto-2005
Ubicación: Valencia
Mensajes: 76
Antigüedad: 12 años, 3 meses
Puntos: 1
Para enviar datos recogidos en un formulario que se encuentra en un servidor y usarlos con un código en php alojado en otro solo debes indicar en el formulario html:

<form name="mi_form" method="post" action="http://servidor2.com/mi_script.php">

De esta manera el script recive por el método post los datos recogidos en el formulario y los procesa según quieras si más problemas.

En cuanto a si puedes usar la función mail, en principio no hay problema ya que el script está alojado en el servidor que te permite su uso y llamarás a la función desde allí.

Para separar ambos, simplemente usa el script de arriba, separando php puro del html. Coloca cada uno en su servidor y ya está.
__________________
Quien a buen árbol se arrima, buena sombra le cobija. :aplauso:

http://dbtrucos.com
  #4 (permalink)  
Antiguo 23/09/2005, 15:51
 
Fecha de Ingreso: abril-2005
Mensajes: 130
Antigüedad: 12 años, 7 meses
Puntos: 0
GRACIAS CHICOS POR SU RAPIDA RESPUESTA

era lo k yo pensaba hacer pero no sabia muy bien, asi que pregunto a los expertos ja

gracias despues les digo si anduvo todo bien.
  #5 (permalink)  
Antiguo 23/09/2005, 16:11
 
Fecha de Ingreso: abril-2005
Mensajes: 130
Antigüedad: 12 años, 7 meses
Puntos: 0
It works ¡¡¡¡ its a live¡¡

jaja

Funciona de maravilla GRACIAS MUCHACHOS
  #6 (permalink)  
Antiguo 23/09/2005, 16:25
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pero OJO! .. por qué lo mismo que tu llamas a tu script "genérico" de envio del e-mail lo podrá hacer cualquier otra persona desde otro servidor (e incluso desde una página HTML ejecutada en un navegador cualquiera).

Debes validar que la petición (la ejecución) de tu script.php se hace sólo desde el formulario que está en cierto servidor .. Puedes usar algunas variables HTTP como HTTP_HOST si mal no recuerdo y/o HTTP_REFERER (que no es el todo fiable pero bueno ..)

Un saludo,
  #7 (permalink)  
Antiguo 23/09/2005, 16:31
 
Fecha de Ingreso: abril-2005
Mensajes: 130
Antigüedad: 12 años, 7 meses
Puntos: 0
NO sabia de eso¡¡¡ por favor alguien me diga bien como poner esa funcion en el php POR FAVOR

si eso llegara a pasar me sacarian todo el trafico k uso. y como es hosting gratis no tengo mucho.

ALGUIEN K ME EXPLIQUE ESA FUNCION POR FAVOR
  #8 (permalink)  
Antiguo 23/09/2005, 16:59
 
Fecha de Ingreso: agosto-2005
Ubicación: Valencia
Mensajes: 76
Antigüedad: 12 años, 3 meses
Puntos: 1
Código PHP:
$refer $_SERVER['HTTP_REFERER'];

if(
$refer == "http://www.mihost.com/miformulario.html"){
      
// Rutinas para enviar mail

}else{
       echo 
"No estás autorizado a acceder a esta página";

Donde "http://www.mihost.com/miformulario.html" , escribe la ruta completa al formulario.
__________________
Quien a buen árbol se arrima, buena sombra le cobija. :aplauso:

http://dbtrucos.com
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 14:56.