Foros del Web » Programando para Internet » PHP »

Problemas con "Include"

Estas en el tema de Problemas con "Include" en el foro de PHP en Foros del Web. Hola, Estoy empezando con esto del php y la verdad es que no tengo mucha idea, por lo que ruego que me deis todas las ...
  #1 (permalink)  
Antiguo 31/01/2010, 18:02
 
Fecha de Ingreso: enero-2010
Mensajes: 35
Antigüedad: 14 años, 10 meses
Puntos: 0
Problemas con "Include"

Hola,

Estoy empezando con esto del php y la verdad es que no tengo mucha idea, por lo que ruego que me deis todas las indicaciones posibles.

Mi duda es tan simple como que estoy intentando llamar dos encuestas mediante "include" y solo aparece el primer archivo pese a que ambos funcionan correctamente por separado.

Código PHP:
include ("encuesta1.php"); 
Código PHP:
include ("encuesta2.php"); 
Si pongo en primer lugar la encuesta 2, carga la 2 pero no la 1 y viceversa. Como os indico, ambas encuestas funcionan correctamente por separado, y si tan solo incluyo una de ellas tambien carga sin ningún problema.

¿Como puedo solucionarlo?

Muchas gracias de antemano.
Un saludo
  #2 (permalink)  
Antiguo 31/01/2010, 18:21
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 15 años, 3 meses
Puntos: 150
Respuesta: Problemas con "Include"

Sin duda tiene que ser por algo del propio contenido de encuesta1.php o encuesta2.php, algun conflicto de variables, conexion a la base de datos.... ¿no te muestra ningun error? Pon esto al inicio de tus php: error_reporting(2|4);
  #3 (permalink)  
Antiguo 31/01/2010, 18:24
Avatar de dggluz  
Fecha de Ingreso: abril-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 525
Antigüedad: 15 años, 6 meses
Puntos: 50
Respuesta: Problemas con "Include"

Fíjate en el archivo error.log (o similar, según tu servidor), cuál es el error que tienes. De todos modos me animo a decir que debe ser que dentro de esos archivos ya estás haciendo includes molestos (quizás estés intentando definir dos veces la misma función o cosas similares), en ese caso lo más prudente es usar include_once. Espero que te sea de ayuda. Si el problema persiste y no logras averiguar qué ocurre, pon el código fuente para que podamos ayudarte. ¡Suerte!
  #4 (permalink)  
Antiguo 31/01/2010, 19:24
Avatar de xbx
xbx
 
Fecha de Ingreso: mayo-2008
Ubicación: /home/xbx
Mensajes: 301
Antigüedad: 16 años, 6 meses
Puntos: 11
Respuesta: Problemas con "Include"

Sí, muéstranos esos scripts.
  #5 (permalink)  
Antiguo 31/01/2010, 20:06
 
Fecha de Ingreso: enero-2010
Mensajes: 35
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Problemas con "Include"

Hola,

Gracias a todos por las respuestas.
En principio parece que me indica que hay un error en la variable $total_votos (linea 76). No funciona con mysql, como podeis ver los datos se guardan en un archivo de texto plano.

Por otra parte, quisiera plantear otra cuestión. Esta encuesta esta programada para utilizaruna unica imagen "jpg" como barra grafica de porcentaje. Quisiera saber como podría implementar una distinta para la otra respuesta. Dejando una verde para votos positivos y una roja para los negativos.

Os dejo el script:

Código PHP:
$titulo "Opina"
$archivo "votos.txt";    
$archivoip "ips.txt";        

function 
YaVotaste() {        
global 
$archivoip;
global 
$REMOTE_ADDR;
$ips fopen($archivoip"r");
while (!
feof($ips)) {
    
$ip fgets($ips20);

    if (
$ip == $REMOTE_ADDR "\r\n") {
        
$coincide 1;
        break;
        }
    }
    
fclose($ips);
    if (!
$coincide) {
    
$ips fopen($archivoip"a");
    
fputs($ips$REMOTE_ADDR "\r\n");
    
fclose($ips);
    return 
false;
    }
    else {
    return 
true;
    }
}
function 
agregaVotacion($voto) {        
    global 
$archivo;
    
$leer_votacion fopen($archivo"r");
    
$tu_voto fread($leer_votacionfilesize($archivo));
    
fclose($leer_votacion);
    
$votos split('[|:]'$tu_voto);
    for (
$i 1$i count($votos); $i $i 2) {
    
$nombre $i 1;
    if (
$votos[$nombre] == $voto) {
        
$votos[$i]++;
        }

    if (
$i == (count($votos) - 1)) {
        
$act_Voto .= $votos[$nombre] . ":" $votos[$i];
        }
    else {
        
$act_Voto .= $votos[$nombre] . ":" $votos[$i] . "|";
        }
    }

    
$escribe_archivo fopen($archivo"w");
    
fputs($escribe_archivo$act_Voto);
    
fclose($escribe_archivo);
}


function 
mostrar($msgs) {            
    global 
$titulo$archivo;

    echo 
"<html>";
    echo 
"<head>";
    echo 
"<title>$titulo - Resultados</title>";
    
    global 
$clscr;
    echo 
"</head>";
    echo 
"<body>";
    
        
    echo 
"<font face='Tahoma' size='2'>";
    
$leer_votacion fopen($archivo"r");
    
$tu_voto fread($leer_votacionfilesize($archivo));
    
fclose($leer_votacion);
    
$votos split('[|:]'$tu_voto);
    echo 
"<u><b>Resultados</b></u><br>";
    
    for (
$i 1$i count($votos); $i $i 2)
    {
    
$total_votos += $votos[$i];
    }

    for (
$i 1$i count($votos); $i $i 2) {
    
$nombre $i 1;
    if (
$total_votos == 0) {
    
$porcnt 0;
    }
    else {
    
$porcnt $votos[$i] / $total_votos 100;
    
$porcnt round($porcnt1);
    }

    echo 
"<br>";
    echo 
"\t$votos[$nombre] -> ";
    echo 
"\t<b>$votos[$i]</b> votos <br>";

        
    if (
$porcnt == 0) {
    echo 
"\t<img src=barra.jpg width=$porcnt height=15> <br><b>$porcnt%</b>";
    }

        
    else {
    echo 
"\t<img src=barra.jpg width=$porcnt height=15> <br><b>$porcnt%</b> <br>";
    }

    
        echo 
"<br>";
    }
    echo 
"Total Votos: <b>$total_votos</b><br>";
    if(
$clscr==1)
    {
        echo 
"<a href=javascript:window.close();>Cerrar</a>";
    }
    else
    {
        echo 
"<a href=javascript:history.back(-1);>Volver</a>";
    }
        
    if (isset(
$msgs)) {
        echo 
"$msgs";
    }
     echo 
"<br>";
    echo 
"</body>";
    echo 
"</html>";
}

if (!isset(
$voto)) {
    
mostrar("");
    exit;
}
if (
YaVotaste()) {
    
mostrar("<br><br><b>No puede votar dos veces.<br> Gracias por su participación</b>");
    exit;
}
agregaVotacion($voto);
mostrar(""); 
  #6 (permalink)  
Antiguo 31/01/2010, 20:09
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 15 años, 3 meses
Puntos: 150
Respuesta: Problemas con "Include"

Ese script es encuesta1.php? encuesta2.php? que es? no le encuentro relacion a tu duda inicial.......

x_X
  #7 (permalink)  
Antiguo 31/01/2010, 20:17
 
Fecha de Ingreso: enero-2010
Mensajes: 35
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Problemas con "Include"

Seria encuesta1.php (encuesta 2 seria un archivo similar a este pero con distinto nombre) Como indico en el primer post, ambos funcionan correctamente por separado desde sus respectivos archivos y tambien si los ubico en primera posición con "include" desde el fichero resultados.php que unicamente contiene el codigo:

Código PHP:
Ver original
  1. include ("encuesta1.php");

Código PHP:
Ver original
  1. include ("encuesta1.php");

Gracias nuevamente
  #8 (permalink)  
Antiguo 31/01/2010, 21:01
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 15 años, 3 meses
Puntos: 150
Respuesta: Problemas con "Include"

Entonces es lo que indicó dggluz, no puedes definir dos veces la misma funcion:

function YaVotaste() {

function agregaVotacion($voto) {


etc

Arreglatelas para que estas funciones sean declaradas solo 1 vez, sacalas y ponlas en un php aparte o algo asi.
  #9 (permalink)  
Antiguo 01/02/2010, 02:10
 
Fecha de Ingreso: enero-2010
Mensajes: 35
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Problemas con "Include"

Intentaré resolverlo, aunque no controlo mucho el tema la verdad...

Y sobre añadir otro jpg para la segunda opción que da la encuesta?
Es decir; que lso votos positivos salgan en verde y los negativos en rojo, se os ocurre como puedo hacerlo.

Muchisimas gracias de antemano.
  #10 (permalink)  
Antiguo 01/02/2010, 02:25
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 15 años, 3 meses
Puntos: 150
Respuesta: Problemas con "Include"

Sobre lo de mostrar una imagen u otra, algo asi:

Código PHP:
if ($votos>=0) {
   
$imagenmostrar="barraverde.jpg";
} else {
   
$imagenmostrar="barraroja.jpg";
}

echo 
"<img src='".$imagenmostrar."'>"
  #11 (permalink)  
Antiguo 01/02/2010, 02:59
 
Fecha de Ingreso: enero-2010
Mensajes: 35
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Problemas con "Include"

Gracias por contestar tan rapido.

Acabo de probar, pero las dos barras salen con el color que establezco en la primera opción. Es decir;

Si pongo primero la roja salen las dos rojas, si pongo la verde, salen las dos verdes.

Tengo que aclarar que las distintas opciones de la encuesta se cargan desde votos.txt ( Si :25|No :24 )donde puedo añadir tantas como desee (Si:00|No:00|X:00...) Posteriormente estos datos adquieren formato en encuesta.php. En mi caso solo necesito dos respuestas con sus respectivos colores (verde y rojo).

Gracias nuevamente.

Última edición por estudio54; 01/02/2010 a las 03:22
  #12 (permalink)  
Antiguo 01/02/2010, 04:00
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 15 años, 3 meses
Puntos: 150
Respuesta: Problemas con "Include"

Realmente no mire tu codigo a fondo, te puse solo un ejemplo, es pura metodologia, poner un IF en el lugar correspondiente y darle el valor adecuado de la imagen que queramos a la variable...
  #13 (permalink)  
Antiguo 01/02/2010, 04:35
 
Fecha de Ingreso: enero-2010
Mensajes: 35
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Problemas con "Include"

Muchas gracias, mas o menos creo que me puedo apañar, pero me parece que la cosa va un poco "mas allá" ya que encuesta.php da el mismo formato de las barras a todas las opciones independientemente de IF, ECHO, ELSE...

Pero creo que me puedo apañar.

Muchas gracias por vuestra ayuda.
  #14 (permalink)  
Antiguo 01/02/2010, 05:20
 
Fecha de Ingreso: enero-2010
Mensajes: 35
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Problemas con "Include"

El tema es que encuesta.php muestra todo el contenido de votos.txt y lo traduce al formato establecido (verde o rojo) Tendría que hacer que interpretara cada votacion (si o no) por separado para asi darle el formaro que corresponda, y la verdad es que me pierdo aquí.

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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 21:47.