Vuelvo a sacar el tema, ya que creo que la cosa se termino liando al plantear dos cuestiones diferentes.
La siguiente encuesta.php lee votaciones del archivo "votos.txt" y da formato a los mismos desde encuesta.php aplicando a todos los resultados, en este caso (si, no) el mismo color (verde) en barra.jpg que indica el numero de votos de manera grafica.
Necesitaría asignar un color diferente a cada resultado de la encuesta, es decir, verde para el "si" y rojo para el "no".
Teniendo en cuenta que las opciones o respuestas de la encuesta se definen en el txt necesitaria saber como puedo tratar su formato de manera idependiente. Si podeis ser especificos lo agradeceré, ya que estoy empezando con esto y estoy muy verde, pero me urge resolver esto.
Os dejo el codigo:
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($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) {
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) {
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_votacion, filesize($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($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>No puede votar dos veces.<br> Gracias por su participación</b>");
exit;
}
agregaVotacion($voto);
mostrar("");