Foros del Web » Programando para Internet » PHP »

Problemas con Encuesta

Estas en el tema de Problemas con Encuesta en el foro de PHP en Foros del Web. Bueno Compañeros creoo que las palabras estan de mas. Warning: fopen(ips.txt): failed to open stream: Permission denied in /pub/web/www.royalty-sindicatos.cl/encuesta.php on line 20 Warning: fputs(): supplied ...
  #1 (permalink)  
Antiguo 05/08/2004, 20:53
 
Fecha de Ingreso: marzo-2004
Ubicación: Chile
Mensajes: 382
Antigüedad: 20 años, 1 mes
Puntos: 0
Problemas con Encuesta

Bueno Compañeros creoo que las palabras estan de mas.

Warning: fopen(ips.txt): failed to open stream: Permission denied in /pub/web/www.royalty-sindicatos.cl/encuesta.php on line 20

Warning: fputs(): supplied argument is not a valid stream resource in /pub/web/www.royalty-sindicatos.cl/encuesta.php on line 21

Warning: fclose(): supplied argument is not a valid stream resource in /pub/web/www.royalty-sindicatos.cl/encuesta.php on line 22

Warning: fopen(votos.txt): failed to open stream: Permission denied in /pub/web/www.royalty-sindicatos.cl/encuesta.php on line 49

Warning: fputs(): supplied argument is not a valid stream resource in /pub/web/www.royalty-sindicatos.cl/encuesta.php on line 50

Warning: fclose(): supplied argument is not a valid stream resource in /pub/web/www.royalty-sindicatos.cl/encuesta.php on line 51

Este es mi formulario donde el usuario Vota:
<form name="form1" method="post" action="encuesta.php">
<table width="30%" border="1" align="center">
<tr>
<td colspan="2"><div align="center"><strong><font color="#FF0000" size="2" face="Verdana, Arial, Helvetica, sans-serif">&iquest;Usted
Apoya el Royalty?</font></strong></div></td>
</tr>
<tr>
<td width="14%"><font color="#FFFFFF" size="2" face="Arial, Helvetica, sans-serif">
<input type="radio" name="voto" value="SI (Lo Apoyo)">
</font></td>
<td width="86%"><font color="#FF0000" size="2" face="Verdana, Arial, Helvetica, sans-serif">SI
(Lo apoyo) </font></td>
</tr>
<tr>
<td><font color="#FFFFFF" size="2" face="Arial, Helvetica, sans-serif">
<input type="radio" name="voto" value="NO (Lo Apoyo)">
</font></td>
<td><font color="#FF0000" size="2" face="Verdana, Arial, Helvetica, sans-serif">NO
(Lo Apoyo) </font></td>
</tr>
<tr>
<td colspan="2"><div align="center"><font color="#FFFFFF">
<input type="submit" name="Submit22" value="Votar">
</font></div></td>
</tr>
</table>
<p><font color="#FFFFFF" size="2" face="Arial, Helvetica, sans-serif"> </font></p>
<p> <font color="#FFFFFF"> </font></p>
</form>

Y esta es encuesta.php

<?
$titulo = "¿Usted Apoya el Royalty?"; //titulo de tu encuesta
$archivo = "votos.txt"; //archivo donde almacena los votos
$archivoip = "ips.txt"; //archivo donde almacena las IP's de los votantes

function YaVotaste() { //funcion para ver si ya votaste o no, segun la IP
global $archivoip;
global $REMOTE_ADDR;
$ips = fopen($archivoip, "r");
while (!feof($ips)) {
$ip = fgets($ips, 20);

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) { //funcion para agregar el voto
global $archivo;
$leer_votacion = fopen($archivo, "r");
$tu_voto = fread($leer_votacion, filesize($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) { //funcion para mostrar la votación y sus resultados
global $titulo, $archivo;

echo "<html>";
echo "<head>";
echo "<title>$titulo - Resultados Encuesta Royalty</title>";

global $clscr;
echo "</head>";
echo "<body>";


echo "<font face='Verdana' size='2'>";
$leer_votacion = fopen($archivo, "r");
$tu_voto = fread($leer_votacion, filesize($archivo));
fclose($leer_votacion);
$votos = split('[|:]', $tu_voto);
echo "<u><b>Resultados Encuesta Votación Royalty</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($porcnt, 1);
}

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>Usted Ya a Votado...Gracias por su Interes en el Tema</b>");
exit;
}
agregaVotacion($voto);
mostrar("");

?>

Les digo desde ya.... que este ejemplo lo baje de internet he intentado entenderlo y la verdad es que lo entiendo pero no totalmente necesito hacer una encuesta urgente para una web (www.royalty-sindicatos.cl) en esta pagina aparece lo que estoy intentando hacer compañeros(as) estoy abierto a cualquier critica sugerencia pero necesito solucionar esta encuesta ya que me urge.

De antemano se les agradece por su tiempo y dedicacion a personas como nosotros.

Saludos desde Viña del Mar, CHILE
  #2 (permalink)  
Antiguo 05/08/2004, 20:56
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Tienes que darle permisos de escritura a la carpeta/directorio donde tienes tus .txt ..

Usa CHMOD de tu cliente FTP y ajustalo a 0666 o similar ..

Un saludo,
  #3 (permalink)  
Antiguo 05/08/2004, 21:09
 
Fecha de Ingreso: marzo-2004
Ubicación: Chile
Mensajes: 382
Antigüedad: 20 años, 1 mes
Puntos: 0
Como hago eso....en el servidor?

Es algo asi cuando haces un clic en un archivo cualquiera con el boton derecho del mouse atributos solo lectura o oculto a eso te refieres?
  #4 (permalink)  
Antiguo 06/08/2004, 06:37
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Pero tu "servidor" que S.O. es?
Te conectas a el para manejarte con los archivos por FTP? (que cliente FTP usas en tal caso)

Sea como sea debes buscar las propiedades de ese directorio y dejarlo como "escritura" mínimo .. por qué ese es el aviso que te está dando principalmente.

Un saludo,
  #5 (permalink)  
Antiguo 06/08/2004, 06:59
 
Fecha de Ingreso: marzo-2004
Ubicación: Chile
Mensajes: 382
Antigüedad: 20 años, 1 mes
Puntos: 0
Mi servidor es linux(es de contrato) y me conecto con el TotalCommander que es como un explorador de windows pero mucho mejor (por lo menos para mi) y me conecto via FTP.

Gracias Cluster Por la ayuda.
  #6 (permalink)  
Antiguo 06/08/2004, 07:56
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Pues entonces busca esa opción "CHMOD" en tu cliente FTP que uses.

Un saludos,
  #7 (permalink)  
Antiguo 06/08/2004, 08:53
 
Fecha de Ingreso: marzo-2004
Ubicación: Chile
Mensajes: 382
Antigüedad: 20 años, 1 mes
Puntos: 0
Cluster : Lo solucione tuve que llamar al servicio de hosting y ellos dieron la opcion de poder escribir en mi txt, me hablaron sobre habilitar una carpeta que el usuario pueda modificar archivos como por ejemplo un txt, lo que no me quedo claro sobre esta carpeta es como tengo que darla la ruta a mi archivo txt en el caso de mi encuesta.

$archivo = "votos.txt"; //archivo donde almacena los votos

será algo asi:

$archivo = "carpeta/votos.txt";

espero que sea asi.

Bueno no me queda nada mas que agradecerte nuevamente .... mil gracias.

Saludos
  #8 (permalink)  
Antiguo 06/08/2004, 09:27
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Podría ser así la ruta .. teniendo en cuenta que tengas al script este de la encuesta en una estrutura tipo:

carpeta/ <-- aquí votos.txt
votaciones.php

Pero sería mejor indicar la ruta absoluta completa al archivo tipo:
$archivo=$_SERVER['DOCUMENT_ROOT']."carpeta/votos.txt";

(antes de usarlo .. mira que devuelve $arvhivo .. tendría que ser algo tipo: /var/www/sitio.tal/html_public/carpeta/votos.txt .. o similar .. )

Un saludo,
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 18:34.