Tengo un mini sistema de calificacion de articulos, almacenando en una variable de sesion el id del articulo para que no pueda ser calificado de nuevo al menos con la misma sesion.
$id = $_GET['id'];
$_SESSION['articulo'.$id];
o sea que el nombre de la sesion es variable..
Mi codigo viene:
Código PHP:
<?php
session_cache_limiter('public');
session_save_path("../Scripts/temp/");
session_start();
print_r($_SESSION); //Para ir viendo la evolucion de los datos
if($_POST['submit'] = 'calificar'){
$_SESSION['articulo'.$id] = true;
// Aca iria la conexion a mysql, que realiza la calificacion... todo de 20pts
}
?>
<!-- Cuerpo de mi web -->
<?php
if(!$_SESSION['articulo'.$id]){
?>
<form name="calificar" method="post" action="">
.......
<input type="submit" value="calificar" />
</form>
<?php
}else{
echo('<p>Este articulo ya fue votado</p>');
}
print_r($_SESSION); //Para ir viendo la evolucion de los datos
?>
Ahora donde reside mi problema, no siempre que posteo datos se genera la variable de sesion, por consiguiente cuando refresco la pagina (apretando enter en donde esta la url) se sigue mostrando el formulario para calificar, y sino hasta una 2da vez, se produce ese comportamiento.
Analizandolo, llego a la conclusion que no siempre genera la variable de sesion, porque en algunos articulos funciona y en otros no... problemas de nombre no es, ya que es 'articulo1' por ej.
Alguna idea o sugerencia??