Foros del Web » Programando para Internet » PHP »

Problema on include

Estas en el tema de Problema on include en el foro de PHP en Foros del Web. Hola a todos... Estoy haciendo una web muy simple, y para ordernarme un poco decidi hacer las distintas paginas separadas, pero mostrarlas a todas en ...
  #1 (permalink)  
Antiguo 12/03/2009, 07:03
 
Fecha de Ingreso: noviembre-2008
Mensajes: 67
Antigüedad: 15 años, 4 meses
Puntos: 0
Pregunta Problema on include

Hola a todos... Estoy haciendo una web muy simple, y para ordernarme un poco decidi hacer las distintas paginas separadas, pero mostrarlas a todas en un mismo index.php, y anda barbaro, pero en la de contacto, cuando envio el formulario es como si ignorara el codigo PHP para enviar/comprobar el formulario... (la comprobacion la hice en javascript, pero tambien en PHP en caso de q el usuario tenga desactivado el javascript...) pero ni me toma las acciones del formulario y cuando doy 'enviar' no pasa nada...

Por ej: la web es personal y tiene una pagina de inicio, acerca de..etc. y contacto.

Esas paginas yo las tengo separadas cada una de ellas en un PHP, pero lo unico q contiene cada uno de esos archivos es lo q muestra esa pagina, ya q todo es visualizado con el index.... algo asi:

Código PHP:
<?php

define
(PAGEStrue);

?>
<html>
<head></head>
<body>

<?php

/**
 * las paginas se obtienen por GET, Ej: index.php?link=contacto
 */
$link = isset($_GET['link']) ? $_GET['link'] : '';

/**
 * En la funcion display() se fija si existe el archivo de la pagina a la q se quiere 
 * include() ... si el archivo no existe, imprime un error...
 *
 * Por Ej. en el caso de 'contacto' incluye el archivo: contacto.php
 */
switch ($link) {
    case 
'experiencia'display('experience');
    break;
    case 
'servicios'display('services');
    break;
    case 
'historia'display('history');
    break;
    case 
'ubicacion'display('location');
    break;
    case 
'contacto'display('contact');
    break;
    default: 
display('home');

?>

</body>
</html>
Y el archivo contacto.php es algo asi:

Código PHP:
<?php

/**
 * En el index.php esta la declaracion define(PAGES, true); 
 * Entonces cuando se incluye la pagina en el index, primero se fija si esta 
 * definida la constante PAGES para mostrar la pagina... Esto lo hice para q la 
 * pagina contacto.php no se muestre si intentamos verla directamente 
 * desde el script, por ej: dominio.com/contacto.php ya 
 * que solo quiero que se muestre desde el index...
 */
if (!defined('PAGES') {
    exit;
}
else { 
?>
    <p><!-- CONTENIDOS EN HTML --></p>
<?
}

?>
Creo que me explico hasta aca... El tema es q en la pagina de contacto, dentro del 'else', donde van los contenidos como explike arriba... Tengo el formulario... y ahi mismo tambien tengo el codigo que envia el formulario, por ej:

Código PHP:
<?php

if ($submit) {
    
// Aca se toman los valores del $_POST, se comprueba si los campos estan correctos, y manda el mail... si los campos estan mal, larga error para q se complete bien el formulario...
}

?>
Ahi esta el problema... no se porke el formulario no funciona... no comprueba, no manda ni nada... :(
Y mal hecho no esta, porke lo probe poniendolo directamente en el index y anda, pero cuando lo pongo en la pagina de contacto.php que se muestra a traves de include() ahi es cuando no me funciona...

Espero que alguien me entienda y me ayude!

saludos...
  #2 (permalink)  
Antiguo 12/03/2009, 09:07
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Problema on include

Revisa el HTML del formulario, asegurate que el target sea el index.php y pases el parámetro de la seccion que quieres cargar.

Saludos
  #3 (permalink)  
Antiguo 12/03/2009, 17:34
 
Fecha de Ingreso: noviembre-2008
Mensajes: 67
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Problema on include

Creo que el HTML esta OK porque lo hice en localhost, teniendo el AppServ instalado... Y el script hace la comprobacion, y obviamente me tira el error de que no pudo mandar el mail ya q estando en localhost no puedo probar eso... Por eso no entiendo porke en el hosting no lo hace... :\
  #4 (permalink)  
Antiguo 12/03/2009, 17:43
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Problema on include

Código php:
Ver original
  1. // De donde sale $submit?
  2. if($submit)
  3.  
  4. // Si viene de POST, es mas correcto:
  5. if(isset($_POST['submit']))

Me parece que en localhost tienes activo register_globals y esto esta deshabilitado en la mayoria de los servidores, por lo que todas las variables que esperas de GET y POST debes tomarlas desde la superglobal correspondiente en vez de dar por entendido que ya estan declaradas.

Código php:
Ver original
  1. // Si en el formulario tienes <input name="nombre" ... />
  2. $nombre = $_POST['nombre'];
__________________
- León, Guanajuato
- GV-Foto
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 09:24.