Foros del Web » Programando para Internet » PHP »

¿formulario que se llama a si mismo?

Estas en el tema de ¿formulario que se llama a si mismo? en el foro de PHP en Foros del Web. esto se puede hacer asi?? echo "<FORM ACTION=$PHP_SELF METHOD=\"POST\">\n"; ¿hay alguna otra manera?...
  #1 (permalink)  
Antiguo 17/03/2003, 17:17
Avatar de pereztroff  
Fecha de Ingreso: junio-2002
Ubicación: En la Internet.
Mensajes: 4.068
Antigüedad: 21 años, 10 meses
Puntos: 5
¿formulario que se llama a si mismo?

esto se puede hacer asi??
echo "<FORM ACTION=$PHP_SELF METHOD=\"POST\">\n";

¿hay alguna otra manera?
  #2 (permalink)  
Antiguo 17/03/2003, 17:24
Avatar de pereztroff  
Fecha de Ingreso: junio-2002
Ubicación: En la Internet.
Mensajes: 4.068
Antigüedad: 21 años, 10 meses
Puntos: 5
tambien lo probe asi
echo "<FORM ACTION=\"/encuesta/poll.php\" METHOD=\"POST\">\n";

pero no vuelve aparecer el formulario... se queda la pantalla vacia
¿porque? ¿que solucion hay?
  #3 (permalink)  
Antiguo 17/03/2003, 20:37
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
/encuesta/poll.php

Esa ruta no es correcta a no ser que tu directorio ecuesta cuelque del raiz del sistema de archivos FISICO del servidor . .NO el relativo de tu sitio .. para eso deberias usar el "punto" que indica "este directorio"

./encuesta/poll.php

(y suponiendo que la llamada que haces de ese formulario está en una rama arriba de tu /encuesta/ ..)

Si poll.php contiene la encuesta esa y está en el mismo script o directorio que el formulario .. llamalo simplemente poll.php

$PHP_SELF puede ser que no puedas leerlo así (asumiendo global) si usas register_globals a OFF .. en tal caso deberias usar $_SERVER['PHP_SELF'] .. Tambien puede ser que no puedas acceder a variables del servidor via $_SERVER[] porque uses PHP como CGI en tal caso sería getenv('PHP_SELF') .. etc .. etc .. Todo esto lo explica el manual de PHP ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #4 (permalink)  
Antiguo 18/03/2003, 04:11
 
Fecha de Ingreso: febrero-2002
Ubicación: ¿donde vivo? pues en mi casa, ¿donde voy a vivir?...
Mensajes: 214
Antigüedad: 22 años, 1 mes
Puntos: 0
Yo me juego lo q sea, a q no le funciona pq no discrimina q tiene q hacer el script en cada carga.
__________________
Linux, es para los que odian Microsoft/Windows, BSD, es para los que amamos *IX.
  #5 (permalink)  
Antiguo 18/03/2003, 12:03
Avatar de pereztroff  
Fecha de Ingreso: junio-2002
Ubicación: En la Internet.
Mensajes: 4.068
Antigüedad: 21 años, 10 meses
Puntos: 5
no me funciona
probe:

1.- echo "<FORM ACTION=\"../encuesta/poll.php\" METHOD=\"POST\">\n";

2.- echo "<FORM ACTION=\"./encuesta/poll.php\" METHOD=\"POST\">\n";

3.- echo "<FORM ACTION=\"poll.php\" METHOD=\"POST\">\n";
  #6 (permalink)  
Antiguo 18/03/2003, 12:43
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
pereztroff

Cualquier código fuera de contexto como es el caso de tu ejemplo no se ve el problema real que tengas .. Es probale que sea lo q comenta NeBeBus .. pero sin ver el código completo de ese script q contiene y proces al formulario No se pude ver q puede pasar ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #7 (permalink)  
Antiguo 18/03/2003, 12:45
Avatar de pereztroff  
Fecha de Ingreso: junio-2002
Ubicación: En la Internet.
Mensajes: 4.068
Antigüedad: 21 años, 10 meses
Puntos: 5
encuesta jodida

estoy haciendo una encuesta en php y archivo de texto sin mysql.

el tema es el siguiente:

1.- el archivo que contiene la encuesta y graba los datos se llama poll.php que se encuentra en un directorio llamado "encuesta".

2.- la encuesta funciona en base a un formulario
echo "<FORM ACTION=\"/encuesta/poll.php\"
METHOD=\"POST\">\n";

3.- los resultados aparecen en otra ventanita con el siguiente codigo
echo <<<HTML
<script languaje="Javascript">
window.open('../encuesta/resultado.php','Encuesta','height=250, width=300 scrollbars=no, resizable=yes, status=no, toolbar=no, menubar=no, location=no');
</script> HTML;


4.- el problema es que despues de votar en la encuesta esta, no aparece, se queda la pantalla vacia ¿porque?
supongo que falla el "action" del formulario

¿alguien me ayuda please?
  #8 (permalink)  
Antiguo 18/03/2003, 12:49
Avatar de pereztroff  
Fecha de Ingreso: junio-2002
Ubicación: En la Internet.
Mensajes: 4.068
Antigüedad: 21 años, 10 meses
Puntos: 5
el codigo completo:
Código PHP:
<body bgcolor="#EFECFD">
<?php

// Variables:
require('variables.php');


/******************************************************************************/

if (! $vote && ! $result) {
    echo 
"<FORM ACTION=\"../encuesta/poll.php\" METHOD=\"POST\">\n";
    echo 
"<TABLE bgcolor=\"#EFECFD\" WIDTH=100% BORDER=0><TR><TD><TABLE WIDTH=\"100%\" BORDER=0>\n";
    echo 
"<TR><TH>$QUESTION</TH></TR>\n";
    while (list(
$key$val) = each($ANSWER)) {
        echo 
"<TR><TD align=\"center\"><INPUT TYPE=\"radio\" NAME=\"answer\" VALUE=\"$key\"> $val</TD></TR>\n";
    } 
    echo 
"<TR><TD align=\"center\"><INPUT TYPE=\"Submit\" NAME=\"vote\" VALUE=\" Votar \"></TD></TR>\n";
    echo 
"<TR><TD align=\"center\"><INPUT TYPE=\"Submit\" NAME=\"result\" VALUE=\" Ver resultados \"></TD></TR>\n";
    echo 
"</TABLE></TD></TR></TABLE></FORM>";
} else {

    
$file_array file($RESULT_FILE_NAME); // or error("Can not open \$RESULT_FILE_NAME");

    // Graba resultado

    
if ($answer count($ANSWER) && $vote) {
        if (
count($file_array) < count($ANSWER))  {
            
$file_array = array("0\n""0\n""0\n""0\n""0\n""0\n""0\n""0\n""0\n""0\n");
        }
        
$old_answer $file_array[$answer];
        
$old_answer preg_replace("/\n\r*/"""$old_answer);
        
$file_array[$answer] = ($old_answer 1)."\n";

        
$file join(''$file_array);
        
$fp fopen("$RESULT_FILE_NAME""w"); //or error("Can not write \$RESULT_FILE_NAME");
        
flock($fp1);
        
fputs($fp$file);                                                     
        
flock($fp3);
        
fclose($fp);
        echo <<<HTML
        <script languaje="Javascript">
        window.open('../encuesta/resultado.php','Encuesta','height=250, width=300 scrollbars=no, resizable=yes, status=no, toolbar=no, menubar=no, location=no');
        </script>
HTML;
    }

}


?>

Última edición por pereztroff; 18/03/2003 a las 13:27
  #9 (permalink)  
Antiguo 18/03/2003, 13:04
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
pereztroff .. en vez de usar "negrita" para poner tu código .. tienes el boton "PHP" que colorea el código y se aprecia mejor ... Usalo.

Te fijastes en el código que genera ese script PHP: editar -> ver código fuente HTML ? ..
Código PHP:
echo "<FORM ACTION=\"".$_SERVER['PHP_SELF']."\" METHOD=\"POST\">\n"
Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #10 (permalink)  
Antiguo 18/03/2003, 13:16
Avatar de pereztroff  
Fecha de Ingreso: junio-2002
Ubicación: En la Internet.
Mensajes: 4.068
Antigüedad: 21 años, 10 meses
Puntos: 5
****no me funciono cluster****** ¿¿¿¿?????


este es el archivo de resultados:

Código PHP:
<body bgcolor="#EFECFD">
<?php
require('variables.php');    
$file_array file($RESULT_FILE_NAME);


// Visualizar los resultados de la encuesta

    
while (list($key$val) = each($file_array)) {
        
$total += $val;
    }

    echo 
"Resultados:";
    echo 
"<TABLE CELLSPACING=2 CELLPADDING=1 BORDER=0>";
    echo 
"<tr><th>Opción</th><th>Porcentaje</th><th>Votos</th></tr>";

while (list(
$key$val) = each($ANSWER)) {
        
$percent =  $file_array[$key] * 100 $total;
        
$percent_int floor($percent);
        
$percent_float number_format($percent1);
        
$tp += $percent_float;
        echo 
"<tr><td> $ANSWER[$key] </td><td><img height=9 src=\"vote_left.gif\"><img height=9 width=\"$percent_int\" src=\"vote_middle.gif\"><img height=9 src=\"vote_right.gif\"> $percent_float % </td><td>$file_array[$key]</td></tr>";
    }


    echo 
"</TABLE><br>";


?>
  #11 (permalink)  
Antiguo 18/03/2003, 13:28
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
pereztroff ... te das cuenta que cada vez que dices "no me funciona" .. pones un poquito mas del código completo que usas? ...

Pon el código completo .. incluido archivos de prueba de esas encuestas en algun sitio para que el que guste se lo baje y lo pruebe .. Incluido la página donde llamas a esa encuesta (si mal no recuerdo lo metes todo en un iframe? ..)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #12 (permalink)  
Antiguo 18/03/2003, 15:33
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

pereztroff, tiene sque definir un poco mas 'no me funciono'. ¿Quieres decir que no te abre la ventana con los resultados? ¿O quieres decir que en la ventana donde estaba el formulario no sale nada? ¿O ambas cosas? ¿Cual es el codigo HTML generado? ¿Genera bien el HTML/Javascript? ¿Te has fijado que no te de un error de javascript? ¿Que es lo que ponian las instrucciones de uso? ¿Has probado a acceder directamente a resultado.php?

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #13 (permalink)  
Antiguo 19/03/2003, 07:03
Avatar de pereztroff  
Fecha de Ingreso: junio-2002
Ubicación: En la Internet.
Mensajes: 4.068
Antigüedad: 21 años, 10 meses
Puntos: 5
me refiero a lo siguiente:
1.- el formulario funciona a la hora de votar y almacenar los valores de la encuesta en el archivo.
2.- sale correctamente la ventana con los resultados, el javascript es correcto.

3.- el problema es que despues de de votar y salir la ventanita con los resultados de la votacion, no vuelve a aparecer el formulario en su sitio, se queda vacia la pantalla.
  #14 (permalink)  
Antiguo 19/03/2003, 07:28
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Claro, es que es eso lo que le has puesto que haga. En pseudocodigo lo que estas diciendo es:
Código PHP:
si no a pulsado 'votar' y tampoco a pulsado 'Ver resultados' entonces
  mostrar el formulario
sino
  si se ha votado
guardar el voto
  crear nueva ventana con los resultados 
Es decir, solo muestra el formulario si no has pulsado ninguno de los 2 botones.

Pero resulta que lo que tu quieres es:
Código PHP:
mostrar el formulario
si se ha pulsado 
'votar' o se ha pulsado 'Ver resultados' entonces
  si se ha votado
guardar el voto
  crear nueva ventana con los resultados 
Con esto creo que esta todo dicho. No pienso poner el codigo PHP porque tu problema no es de codigo, si no de forma de pensar.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #15 (permalink)  
Antiguo 19/03/2003, 14:05
Avatar de pereztroff  
Fecha de Ingreso: junio-2002
Ubicación: En la Internet.
Mensajes: 4.068
Antigüedad: 21 años, 10 meses
Puntos: 5
se podria hacer con un

do while????
  #16 (permalink)  
Antiguo 19/03/2003, 14:23
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
do while() es un bucle. Creo que en el pseudo codigo no he puesto ningun bucle. Y en tu codigo original de poll.php no habia ningun bucle. Asi que creo que no necesitas un bucle para nada.

Suerte.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #17 (permalink)  
Antiguo 20/03/2003, 14:59
Avatar de pereztroff  
Fecha de Ingreso: junio-2002
Ubicación: En la Internet.
Mensajes: 4.068
Antigüedad: 21 años, 10 meses
Puntos: 5
no hay ninguna alma caritativa que pueda ayudarme por favor? no doy pie con bola

**no soy programador ni lo sere solo quiero acabar el script para colgarlo online, tambien todo este desarrollo y planteamientos puedan servir a otros/as compañeras.
  #18 (permalink)  
Antiguo 20/03/2003, 15:06
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Metelo en un <iframe> el código original y olvidate del tema ... Si no quieres ser programador .. te tendras que aguantar con lo que haga la apliación que escogistes .. o bien buscarte otra que esté diseñada para trabajar como "módulo" de tu pagina y no como una aplicación independiente como lo hace el q tienes.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #19 (permalink)  
Antiguo 20/03/2003, 15:14
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

Si no eres programador, ¿que haces programando? Ya se, por que necesitas que el script haga lo que necesitas. Pero, ¿no te valdria modificar tu aplicacion para adaptarse al funcionamiento del script? ¿O rebuscar hasta encontrar otro script? ¿O localizar un script que haga algo parecido y que tenga una comunidad de usuarios que realicen modificaciones?

Sin que sirva de precedente:
Código PHP:
<body bgcolor="#EFECFD">
<?php

// Variables:
require('variables.php');


/******************************************************************************/

    
echo "<FORM ACTION=\"../encuesta/poll.php\" METHOD=\"POST\">\n";
    echo 
"<TABLE bgcolor=\"#EFECFD\" WIDTH=100% BORDER=0><TR><TD><TABLE WIDTH=\"100%\" BORDER=0>\n";
    echo 
"<TR><TH>$QUESTION</TH></TR>\n";
    while (list(
$key$val) = each($ANSWER)) {
        echo 
"<TR><TD align=\"center\"><INPUT TYPE=\"radio\" NAME=\"answer\" VALUE=\"$key\"> $val</TD></TR>\n";
    } 
    echo 
"<TR><TD align=\"center\"><INPUT TYPE=\"Submit\" NAME=\"vote\" VALUE=\" Votar \"></TD></TR>\n";
    echo 
"<TR><TD align=\"center\"><INPUT TYPE=\"Submit\" NAME=\"result\" VALUE=\" Ver resultados \"></TD></TR>\n";
    echo 
"</TABLE></TD></TR></TABLE></FORM>";
if (
$vote || $result) {

    
$file_array file($RESULT_FILE_NAME); // or error("Can not open \$RESULT_FILE_NAME");

    // Graba resultado

    
if ($answer count($ANSWER) && $vote) {
        if (
count($file_array) < count($ANSWER))  {
            
$file_array = array("0\n""0\n""0\n""0\n""0\n""0\n""0\n""0\n""0\n""0\n");
        }
        
$old_answer $file_array[$answer];
        
$old_answer preg_replace("/\n\r*/"""$old_answer);
        
$file_array[$answer] = ($old_answer 1)."\n";

        
$file join(''$file_array);
        
$fp fopen("$RESULT_FILE_NAME""w"); //or error("Can not write \$RESULT_FILE_NAME");
        
flock($fp1);
        
fputs($fp$file);                                                     
        
flock($fp3);
        
fclose($fp);
        echo <<<HTML
        <script languaje="Javascript">
        window.open('../encuesta/resultado.php','Encuesta','height=250, width=300 scrollbars=no, resizable=yes, status=no, toolbar=no, menubar=no, location=no');
        </script>
HTML;
    }

}


?>
Este se supone que es poll.php.

Suerte.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #20 (permalink)  
Antiguo 21/03/2003, 03:20
Avatar de pereztroff  
Fecha de Ingreso: junio-2002
Ubicación: En la Internet.
Mensajes: 4.068
Antigüedad: 21 años, 10 meses
Puntos: 5
muchas gracias josemi por tu interes e inestimable ayuda

bueno, tambien gracias a los demas que tambien intentaron ayudarme.

si alguien necesita el script me lo pida por mail y lo envio gustosamente.
  #21 (permalink)  
Antiguo 21/03/2003, 07:28
Avatar de DINASEN  
Fecha de Ingreso: marzo-2003
Mensajes: 997
Antigüedad: 21 años, 1 mes
Puntos: 1
pues la verdad es que a mi si me gustaria tenerlo por que uqiero hacer uno pronto y me vendria bien una orientacion...


micorreo es :
[email protected]


Gracias
  #22 (permalink)  
Antiguo 21/03/2003, 09:25
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
DINASEN

pereztroff dijo textualmente "el que lo quiere que ME LO PIDA POR MAIL" ...

Porfavor .. el que quiera ese script q use "MP" (mensaje privado) o se contactan via e-mail .. No usen este mensaje para "yo tambien lo quiero .." por favor.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 02:58.