Nuevamente queremos compartir un peque帽o sistema en esta ocasi贸n de valoraci贸n con PHP sin utilizar Base de Datos. En el mismo se pueden asignar diferentes tipos de objetos, im谩genes videos, notas u otra opci贸n a valorar, solo es necesario incluir en el archivo que cumplir谩 el rol de DB, un registro.

Para lograr esto solo necesitamos abrir el archivo y agregar la siguiente l铆nea:
-
// Ejemplo:
-
3 (Valor de ID) & 0 (Cantidad de Votos) & 0 (Suma de Valores)
-
-
// El siguiente caso quedar铆a de la siguiente manera
-
'3&0&0'
Luego para realizar las valoraciones o bien para cargarlas llamamos a la funci贸n de la siguiente forma:
-
<?php
-
/* Para realizar la valoraci贸n */
-
echo Valorar('Valorar', /* ID que queremos valorar */, /* Valor Asignado */);
-
-
/* 脷nicamente para mostrar los valores */
-
echo Valorar('Cargar', /* ID que queremos cargar */, NULL);
-
?>
Dicha funci贸n la pueden observar a continuaci贸n, la misma esta explicada paso a paso en sus l铆neas de comentarios.
-
<?php
-
-
function Valorar($Accion, $ID, $Valor){
-
-
/* Corroboramos que los valores de ACCION y ID est茅n definidos */
-
if($Accion != NULL or $Accion != '' and $ID != NULL or $ID != ''){
-
-
/* Nombre del Archivo que contiene los valores */
-
$Archivo = "db.txt";
-
-
/* Cargamos el Archivo */
-
$Apertura = fopen($Archivo, "r");
-
-
/* Exploramos el contenido del Archivo */
-
$Lectura = fread($Apertura, filesize ($Archivo));
-
-
/* Cerramos la lectura del Archivo */
-
fclose($Apertura);
-
-
/* Separamos el contenido por el s铆mbolo "|" */
-
$Registros = explode("|", $Lectura);
-
-
/* Exploramos cada uno de los registro en busca del que necesitamos */
-
foreach($Registros as $Registro){
-
-
/* Separamos cada uno de los registros s铆mbolo "&" */
-
$Busqueda = explode("&", $Registro);
-
-
/* Si algunos de los ID del registro es igual que el ID especificado detenemos la b煤squeda */
-
if($Busqueda[0] == $ID){
-
$Resultado = true;
-
break;
-
}
-
}
-
-
/* Si el ID especificado no existe detiene el Proceso */
-
if(!$Resultado){
-
return;
-
}
-
-
/* Si se especifico como acci贸n CARGAR solamente mostramos el porcentaje */
-
if($Accion == 'Cargar'){
-
-
/* Devolvemos el porcentaje redondeado */
-
return @round($Busqueda[2] / $Busqueda[1]);
-
}
-
-
/* Si se especifico como acci贸n VALORAR realizamos el proceso de valoraci贸n */
-
if($Accion == 'Valorar'){
-
-
/* Si VALOR no esta definido cuando se especifica la acci贸n VALORAR se detiene el Proceso */
-
if($Valor == NULL or $Valor == ''){
-
return;
-
}
-
-
/* Si el Entero de VALOR es mayor a 10 o menos que 0 los definimos autom谩ticamente */
-
if($Valor > 10){
-
$Valor = 10;
-
}
-
else if($Valor < 1){
-
$Valor = 1;
-
}
-
-
/* Comprobamos si ya se realizo una votaci贸n en un periodo de 7 d铆as */
-
if ($_COOKIE['Voto_'.$ID] != $ID){
-
-
/* Ceramos una Cookie con el valor del ID que se valoro */
-
setcookie('Voto_'.$ID, $ID, time() + 25200);
-
-
/* Definimos los valores que se almacenaran en el archivo */
-
$Registro_Modificado = $ID.'&'.($Busqueda[1] + 1).'&'.($Busqueda[2] + $Valor);
-
-
/* Nuevamente exploramos los registros */
-
foreach($Registros as $Registro){
-
-
/* Si alguno de los registros es igual al que deseamos modificar lo remplazamos por los nuevos valores caso contrario lo dejamos como se encontraba */
-
if(trim($Registro) == $ID.'&'.$Busqueda[1].'&'.$Busqueda[2]){
-
$File .= $Registro_Modificado.'|';
-
}
-
else{
-
$File .= $Registro.'|';
-
}
-
}
-
-
/* Si al finalizar la exploraci贸n el contenido del archivo tiene al fina el car谩cter "|" lo eliminamos */
-
if(substr($File, -1, 1) == '|'){
-
$File = substr($File, 0, -1);
-
}
-
-
/* Nuevamente abrimos el archivo en modo Escritura */
-
$Apertura = fopen($Archivo, 'w');
-
-
/* Guardamos las modificaciones de los Valores */
-
$Gurdado = fputs($Apertura, $File);
-
-
/* Cerramos la lectura del Archivo */
-
fclose($Apertura);
-
-
/* Devolvemos el nuevo porcentaje redondeado */
-
return @round(($Busqueda[2] + $Valor) / ($Busqueda[1] + 1));
-
}
-
}
-
}
-
}
-
-
?>
NOTA: Si deseas probar este tutorial te recomendamos sustituir la siguiente l铆nea hasta que hayas realizado todas las pruebas, Lugo vu茅lvela a modificar como se encontraba:
-
/* Sustituir esta l铆nea */
-
if ($_COOKIE['Voto_'.$ID] != $ID){
-
-
/* Por esta otra */
-
if (true){
Como vemos es un ejemplo sencillo, aunque su extensas l铆neas de programaci贸n parece no decir lo mismo pero luego de analizarlo se puede comprender.
Se pueden descargar los archivos de este tutorial desde aqu铆.
Los archivos del tutorial incluyen un ejemplo practico, cualquier duda o comentario pueden hacerlo en esta publicaci贸n.