Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/07/2005, 15:33
Saldu
Invitado
 
Mensajes: n/a
Puntos:
Pregunta,encuesta

Hola,tengo una encuesta, todo funciona 100% pero tengo un problema,me gustaria que los usuarios solo puedan firmar 1 vez... Obvio que para ver el contenido de la encuesta tienen que hacer login...


Este es el index.php :
Código:
<?
	$servidor="localhost";
	$usuario="root";
	$password="";
	$base="Tryman";
	$SQLid = mysql_connect($servidor,$usuario,$password);
	mysql_select_db($base,$SQLid);
	$SQLquery = "SELECT * FROM tblenc order by encid desc";
	$SQLresult = mysql_query($SQLquery,$SQLid);
	$SQLrow = mysql_fetch_array($SQLresult);
print("<body bgcolor=#009900 text=#009900 link=#FFFFFF>");
?>
<form name="form1" method="post" action="encuesta.php">
<input type=hidden name="encid" value="<?echo $SQLrow[0]?>">              
  <table width="270" border="0" align="center" cellpadding="0" cellspacing="0">
    <tr> 
                  <td align=center bgcolor="#006600"><font color="#FFFFFF" size="1" face="Verdana, Arial, Helvetica, sans-serif">:::::::::::::::::::::::::::::::::::::::::::::::::::::</font></td>
                </tr>
                <tr> 
                  <td bgcolor="#FFFFFF"> <div align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>
				  <? echo $SQLrow[1]?>
				  </strong></font></div></td>
                </tr>
                <tr> 
                  <td bgcolor="#FFFFCC"> <p> <font size="2"> 
                      <label> 
                      <input type="radio" name="voto" value="1">
                      <? echo $SQLrow[2]?></label>
                      <br>
                      <label> 
                      <input type="radio" name="voto" value="2">
                      <? echo $SQLrow[3]?></label>
                      <br>
                      <label> 
                      <input type="radio" name="voto" value="3">
                      <? echo $SQLrow[4]?></label>
                      <br>
                      <label> 
                      <input type="radio" name="voto" value="4">
                      <? echo $SQLrow[5]?></label>
                      <br>
                      </font></p></td>
                </tr>
                <tr> 
                  <td bgcolor="#FFFFCC"> <BR>
						<div align="center"> 
                      <input type="submit" name="Submit" value="Aceptar">
                    </div><BR>
				</td>
                </tr>
              </table>
            </form>


y este es el encuesta.php

Código:
<?
print("<body bgcolor=#009900 text=#FFFFFF link=#FFFFFF>");
//recibo el voto
$voto = $_POST["voto"];
//recibo el id de la encuesta
$encid = $_POST["encid"];

$servidor="localhost";
$usuario="root";
$password="";
$base="Tryman";
$SQLid = mysql_connect($servidor,$usuario,$password);
mysql_select_db($base,$SQLid);
$SQLquery = "UPDATE tblenc".
			" SET encval$voto = encval$voto+1, enctot = enctot+1 where encid=$encid";
$SQLresult = mysql_query($SQLquery,$SQLid);
$SQLquery = "SELECT * FROM tblenc where encid=$encid";
$SQLresult = mysql_query($SQLquery,$SQLid);
$SQLrow = mysql_fetch_array($SQLresult);
?>
  <P ALIGN="center"><font size="4"><strong><em>RESULTADOS PARCIALES DE LA 
    ENCUESTA</em></strong></font></P>
  <P ALIGN="center"><strong><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> 
    <?
  	echo $SQLrow["encprg"]
  ?>
  </font></strong></P>
  <TABLE ALIGN="center" WIDTH="75%" BORDER="0" CELLSPACING="1" CELLPADDING="1">
    <!--DWLayoutTable-->
    <TR> 
      <TD ALIGN="left" WIDTH="23%"><? echo $SQLrow["encrpt1"]?> 
        <div align="left"></div></TD>
      <TD><IMG HEIGHT="5" WIDTH="<? echo $SQLrow["encval1"]*100/$SQLrow["enctot"]?>%" SRC="imagenes/barra1.gif"></TD>
      <TD ALIGN="center" WIDTH="14%"><? echo $SQLrow["encval1"]?> votos</TD>
    </TR>
    <TR> 
      <TD ALIGN="left"><? echo $SQLrow["encrpt2"]?> 
        <div align="left"></div></TD>
      <TD><IMG HEIGHT="5" WIDTH="<? echo $SQLrow["encval2"]*100/$SQLrow["enctot"]?>%" SRC="imagenes/barra2.gif"></TD>
      <TD ALIGN="center"><? echo $SQLrow["encval2"]?> votos</TD>
    </TR>
    <TR> 
      <TD ALIGN="left"><? echo $SQLrow["encrpt3"]?> 
        <div align="left"></div></TD>
      <TD><IMG HEIGHT="5" WIDTH="<? echo $SQLrow["encval3"]*100/$SQLrow["enctot"]?>%" SRC="imagenes/barra3.gif"></TD>
      <TD ALIGN="center"><? echo $SQLrow["encval3"]?> votos</TD>
    </TR>
    <TR> 
      <TD ALIGN="left"><? echo $SQLrow["encrpt4"]?> 
        <div align="left"></div></TD>
      <TD><IMG HEIGHT="5" WIDTH="<? echo $SQLrow["encval4"]*100/$SQLrow["enctot"]?>%" SRC="imagenes/barra4.gif"></TD>
      <TD ALIGN="center"><? echo $SQLrow["encval4"]?> votos</TD>
    </TR>
  </TABLE>
  <P ALIGN="center">Total de votos emitidos: <? echo $SQLrow["enctot"]?></P>


Bueno... expliquenme cómo puedo hacer eso.. que solo puedan firmar 1 vez...

La tabla es así

DROP TABLE IF EXISTS tblenc;
CREATE TABLE tblenc (
encid int(11) NOT NULL auto_increment,
encprg varchar(50) default NULL,
encrpt1 varchar(50) default NULL,
encrpt2 varchar(50) default NULL,
encrpt3 varchar(50) default NULL,
encrpt4 varchar(50) default NULL,
encval1 int(11) NOT NULL default '0',
encval2 int(11) NOT NULL default '0',
encval3 int(11) NOT NULL default '0',
encval4 int(11) NOT NULL default '0',
enctot int(11) NOT NULL default '0',
PRIMARY KEY (encid)
) TYPE=MyISAM;


y el archivo de login asi... quizás les sirva,para ver las variables de session que abro


<?php
session_start();
print("<body bgcolor=#009900 text=#FFFFFF link=#FFFFFF>");
require_once("conexion.php");
$Query = mysql_query("SELECT * FROM usuarios WHERE username='".addslashes(strip_tags($_POST['User']))."' && user_password ='".addslashes(md5($_POST['Password']))."'");
$Q_num = mysql_num_rows($Query);
if($Q_num == 1){
$data = mysql_fetch_array($Query);
$_SESSION['username'] = strip_tags($_POST['User']);
$_SESSION['Auth'] = "YES" ;
$_SESSION["codigoUsuario"] = $data["codigo"];
echo "<script>window.location='default.php';</script>";
exit;
} else {
$_SESSION['Auth'] = "NO" ;
echo("Usuario / Clave no son válidos, intente de nuevo...");
}
?>