Foros del Web » Programando para Internet » PHP »

como denegar el accceso

Estas en el tema de como denegar el accceso en el foro de PHP en Foros del Web. Hola amigos, verán, he realizado un formulario de contacto para una web que he creado, el qual consta del archivo HTML con el formulario, el ...
  #1 (permalink)  
Antiguo 28/02/2010, 07:07
 
Fecha de Ingreso: junio-2007
Mensajes: 58
Antigüedad: 16 años, 10 meses
Puntos: 0
como denegar el accceso

Hola amigos, verán, he realizado un formulario de contacto para una web que he creado, el qual consta del archivo HTML con el formulario, el archivo envia.php y luego la hoja de estilos para dar formato al formulario.

El código PHP es el siguiente:

Código PHP:
<?php 

$mail
='[email protected].';

// IMPORTA LES DADES DEL FORMULARI
$nom $_POST['Nom_i_Cognoms']; 
$telefon $_POST['telefon']; 
$carrer $_POST['carrer']; 
$numero $_POST['numero']; 
$poblacio $_POST['poblacio']; 
$provincia $_POST['provincia']; 
$CP $_POST['CP']; 
$pais $_POST['pais']; 
$email $_POST['E-mail']; 
$assumpte $_POST['Assumpte']; 
$missatgerebut $_POST['Missatge'];

$de ='From: Banda_de_Rossell';

$ip $_SERVER['REMOTE_ADDR'];
$data date("d-M-y  H:i");

// MISSATGE A MOSTRAR SI S'ENVIA CORRECTAMENT
$enviat_ok= print("El missatge s´ha enviat correctament"); 

// CONTINGUT DEL MISSATGE
$missatge 

Nom i cognoms: "
.$nom.
Telèfon: "
.$telefon."

Adreça:
"
.$carrer.", ".$numero."
"
.$CP.", ".$poblacio.", ".$provincia."
"
.$pais."

E-Mail: "
.$email."

MISSATGE -------------------------------------------------------------------------------

Assumpte: "
.$assumpte."

Missatge: "
.$missatgerebut."


Missatge enviat des-de la IP : "
.$ip."
Data: "
.$data."";

  if (
mail($mail,"Contacta amb La Banda",$missatge$de))
      echo (
$enviat_ok);
   
 
?>
La validacion del formulario la hago con javascript en el archivo HTML, pero lo que me pasa, es que si accedo directamente al archivo PHP (pongamos por caso que entro en www.miweb.dominio/formulario/envia.php se envia un email en blanco, y aparece el mensaje diciendo que se ha enviado correctamente. Como puedo hacer, para denegar el acceso directo al archivo envia.php ... que sólo pueda acceder al script el archivo HTML que contiene el formulario ?

Pd: La carpeta formulario contiene: index.html (formulario); formulario.css (estilo); envia.php (el script)

Como puedo hacerlo ?

Saludos


Ahh... si alguien pudiera darme una mano con este otro post... http://www.forosdelweb.com/f53/1-tab...rentes-782577/



Saludos y gracias !
  #2 (permalink)  
Antiguo 28/02/2010, 08:21
Avatar de danistrein  
Fecha de Ingreso: septiembre-2008
Ubicación: Salta Capital
Mensajes: 550
Antigüedad: 15 años, 7 meses
Puntos: 9
Respuesta: como denegar el accceso

hola Niñerola, bueno puedes ponerle un name al boton con cual subministras los datos y hacer un if asi:

index.html:
Código HTML:
Ver original
  1. <input name="enviado" type="submit">
  2. </form>

envia.php:
Código PHP:
Ver original
  1. <?php
  2.  
  3. if($_POST[enviado]){
  4.  
  5. // IMPORTA LES DADES DEL FORMULARI
  6. $nom = $_POST['Nom_i_Cognoms'];
  7. $telefon = $_POST['telefon'];
  8. $carrer = $_POST['carrer'];
  9. $numero = $_POST['numero'];
  10. $poblacio = $_POST['poblacio'];
  11. $provincia = $_POST['provincia'];
  12. $CP = $_POST['CP'];
  13. $pais = $_POST['pais'];
  14. $email = $_POST['E-mail'];
  15. $assumpte = $_POST['Assumpte'];
  16. $missatgerebut = $_POST['Missatge'];
  17.  
  18. $de ='From: Banda_de_Rossell';
  19.  
  20. $ip = $_SERVER['REMOTE_ADDR'];
  21. $data = date("d-M-y  H:i");
  22.  
  23. // MISSATGE A MOSTRAR SI S'ENVIA CORRECTAMENT
  24. $enviat_ok= print("El missatge s´ha enviat correctament");
  25.  
  26. // CONTINGUT DEL MISSATGE
  27. $missatge = "
  28.  
  29. Nom i cognoms: ".$nom."
  30. Telèfon: ".$telefon."
  31.  
  32. Adreça:
  33. ".$carrer.", ".$numero."
  34. ".$CP.", ".$poblacio.", ".$provincia."
  35. ".$pais."
  36.  
  37. E-Mail: ".$email."
  38.  
  39. MISSATGE -------------------------------------------------------------------------------
  40.  
  41. Assumpte: ".$assumpte."
  42.  
  43. Missatge: ".$missatgerebut."
  44.  
  45.  
  46. Missatge enviat des-de la IP : ".$ip."
  47. Data: ".$data."";
  48.  
  49.   if (mail($mail,"Contacta amb La Banda",$missatge, $de))
  50.       echo ($enviat_ok);
  51.  
  52.  
  53. }
  54.  ?>

saludos
__________________
Appones.net - www.appones.net
  #3 (permalink)  
Antiguo 28/02/2010, 08:43
 
Fecha de Ingreso: junio-2007
Mensajes: 58
Antigüedad: 16 años, 10 meses
Puntos: 0
Respuesta: como denegar el accceso

Muchas gracias, me ha sido de gran utilidad...

Unicamente le he añadido

Código PHP:
else
{
    echo(print(
"ERROR"));

Por cierto, cuando imprime el mensaje, aparece el numero 1 al final; es decir, el mensaje queda así: ERROR1

Como es que sale ?

Saludos
  #4 (permalink)  
Antiguo 28/02/2010, 12:05
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola Niñerola

Muevo tu tema al foro de PHP desde Web general.

Saludos,
  #5 (permalink)  
Antiguo 01/03/2010, 13:01
 
Fecha de Ingreso: junio-2007
Mensajes: 58
Antigüedad: 16 años, 10 meses
Puntos: 0
Respuesta: como denegar el accceso

bueno, finalmente he terminado el código, y me ha quedado así
Código PHP:
<?php 
if ($_POST[enviar])//SI SE HA PULSADO EL BOTÓN ENVIAR


$mail='[email protected]'// EL FORMULARIO SE ENVIA A ESTA DIRECCIÓN

// IMPORTAR DATOS DEL FORMULARIO
$nombre $_POST['nombre']; 
$telefono $_POST['telefono']; 
$calle $_POST['calle']; 
$numero $_POST['numero']; 
$poblacion $_POST['poblacion']; 
$provincia $_POST['provincia']; 
$CP $_POST['CP']; 
$pais $_POST['pais']; 
$email $_POST['email']; 
$asunto $_POST['asunto']; 
$mensajerecib$_POST['mensaje'];

// HEADERS
$adicional 'MIME-Version: 1.0' "\r\n";
$adicional .= 'Content-type: text/html; charset=iso-8859-1' "\r\n";
$adicional .= 'From:Quien envia el email <[email protected]>' "\r\n";

//RECOJE LA IP, FECHA Y HORA
$ip $_SERVER['REMOTE_ADDR'];
$fecha date("d-M-y  H:i");

// MENSAJE QUE SE MUESTRA AL ENVIARSE
$ok "Mensaje enviado correctamente"

// CONTENIDO QUE VA LLEGAR A MI EMAIL
$mensaje 
<html><p><strong>Nombre y Apellidos:</strong> "
.$nombre." <br>
<strong>Tel&eacute;fono:</strong> "
.$telefono." </p>
<p><strong>Direcci&oacute;n:</strong></p></html>
"
.$calle.", ".$numero."<br>
"
.$CP.", ".$poblacion.", ".$provincia."<br>
"
.$pais."
<html><p><strong>E-Mail:</strong> "
.$email."</p></html>
<html><p><b><u>MENSAJE:</b></u></p>
<p><strong>Asunto:</strong> "
.$asunto."</p></html>
<html><p><strong>Mensaje:</strong>"
.$mensajerecib."</p></html>
<html><p>&nbsp;</p>
<p>Mensaje enviado des-de la IP : "
.$ip."<br>
Fecha: "
.$fecha."</p></html> ";

//MENSAJE COPIA
$mcopia "
<html><p><strong>Esto es una copia del mensaje enviado a TUNOMBRE </strong></p></html>
"
.$mensajerecib."";

//ASUNTO COPIA
$asuntocopia "
Copia de: "
.$asunto."";

    
// COMPRUEBA SI SE HA ACTIVADO LA CASILLa COPIA
    
if ($_POST['copia'])
    {    
    
mail($mail,$asunto,$mensaje,$adicionall); //TE ENVIA EL EMAIL
    
mail($email,$asuntocopia,$mcopia,$adicionall); //ENVIA LA COPIA
    
print($ok);//MUESTRA EL MENSAJE
    

    
    else 
//SI NO SE ACTIVÓ LA CASILLA
    
{
    
mail($mail,$asunto,$mensaje$adicional); //TE ENVIA EL EMAIL
    
print ($ok); //MUESTRA EL MENSAJE
    
}
    
}
// CIERRA LA PRIMERA CONDICION

    
else 
{
    print(
"ERROR"); //MUESTRA EL MENSAJE DE ERROR
}
?>
El formulario cuenta con un campo para poner el nombre y apellidos, otro para poner la dirección postal, otro para el tléfono, y finalmente el email asunto y mensaje. Tiene una casilla de verificacion, por si el usuario quiere recibir una copia a su bandeja de entrada.

Última edición por Niñerola; 01/03/2010 a las 13:16 Razón: traducir el código

Etiquetas: Ninguno
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 07:33.