Foros del Web » Programando para Internet » PHP »

Orden de comentarios sin base de datos

Estas en el tema de Orden de comentarios sin base de datos en el foro de PHP en Foros del Web. Tengo el siguiente codigo para un simple libro de visitas con el cual envio texto (comentarios) a un archivo html, el cual es leido como ...
  #1 (permalink)  
Antiguo 25/04/2011, 23:25
Avatar de AlejandroMtzRmz  
Fecha de Ingreso: febrero-2011
Mensajes: 81
Antigüedad: 13 años, 2 meses
Puntos: 4
Pregunta Orden de comentarios sin base de datos

Tengo el siguiente codigo para un simple libro de visitas con el cual envio texto (comentarios) a un archivo html, el cual es leido como si fuera una base de datos (por ahora no quiero usar bases de datos):

Código PHP:
$file_name "messages.html";
$post_sep "<hr/>";
$info_sep "<br/>";

class 
writePosts {
function 
inputPost($author$message) {
global 
$file_name$post_sep$info_sep;
$date time();
$self $_SERVER['PHP_SELF'];
$author urlencode($author);
$message urlencode($message);
$fh fopen($file_name"r+");

fread($fhfilesize($file_name));
fwrite($fh$author.$info_sep.$date.$info_sep.$message.$post_sep);
fclose($fh);

echo 
"<script>window.location = '$self'; </script>";
}
function 
getPost(){
if (isset (
$_POST['author']) && isset ($_POST['message'])) {
$this->inputPost($_POST[author], $_POST[message]);
}
}
}

class 
readPosts{
function 
readAll(){
global 
$file_name$post_sep$info_sep;
$fh fopen($file_name"r");
$all fread($fhfilesize($file_name));
fclose($fh);
$each explode($post_sep$all);

$i 0;
$counteach count($each);

while(
$i $counteach 1){
$post_info explode($info_sep$each[$i]);
$this->outPost($post_info[0], $post_info[1], $post_info[2]);
$i++;
}
}
function 
outPost($author$date$message){
$date date("m/d/y"$date);
$author urlencode($author);
$message urlencode($message);
echo 
"<div>";
echo 
"( $date ) &nbsp; <srtong>$author says:</srtong><br>";
echo 
"$message </div>";
}
}

$write = new writePosts;
$read = new readPosts;
$write->getPost(); 
Y en html:

Código HTML:
<html>
<head>

<!-- el codigo php !-->

</head>
<body>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<input name="author"><br>
<textarea name="message"></textarea><br>
<input type="submit" value="Submit">
</form>
<?php $read->readAll(); ?>
</body>
</html> 
El problema que tengo es que a la hora de comentar, los comentarios nuevos aparecen hasta abajo, y los viejos arriba; como hago para que ocurra lo contrario? por mas que le busco no encuentro la solucion, apenas estoy aprendiendo php, espero que puedan ayudarme, gracias
  #2 (permalink)  
Antiguo 25/04/2011, 23:41
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 15 años, 9 meses
Puntos: 105
Respuesta: Orden de comentarios sin base de datos

Claro que puedes...

solo debes al momento de recorrer, en vez de recorrer el arreglo en forma ascendente (de cero a la cantidad), lo haces de forma descendente (de la cantidad hasta cero).

es decir, deberias cambiar este codigo:
Código PHP:
$i 0;
$counteach count($each);
while(
$i $counteach 1){ 
por este:
Código PHP:
$i count($each);
while(
$i >= 0){ 
Suerte
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #3 (permalink)  
Antiguo 26/04/2011, 00:21
Avatar de AlejandroMtzRmz  
Fecha de Ingreso: febrero-2011
Mensajes: 81
Antigüedad: 13 años, 2 meses
Puntos: 4
Respuesta: Orden de comentarios sin base de datos

Eso me creo un bucle infinito con lo que se trabo el navegador =S que andara mal?
  #4 (permalink)  
Antiguo 26/04/2011, 00:30
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 15 años, 9 meses
Puntos: 105
Respuesta: Orden de comentarios sin base de datos

jajaa... mi hermano es que me olvide decirte que le quites el $i++;
sino claro, en el while estas quitando y dentro estas aumentando y seria infinito xD
Suerte
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #5 (permalink)  
Antiguo 26/04/2011, 00:50
Avatar de AlejandroMtzRmz  
Fecha de Ingreso: febrero-2011
Mensajes: 81
Antigüedad: 13 años, 2 meses
Puntos: 4
Respuesta: Orden de comentarios sin base de datos

Sigue el mismo problema, me crea el bucle infinito. Tambien sustitui $i++; por $i--; para restar de uno en uno pero igual me da error
  #6 (permalink)  
Antiguo 26/04/2011, 01:03
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 15 años, 9 meses
Puntos: 105
Respuesta: Orden de comentarios sin base de datos

aver mi estimado, el codigo para tu funcion while deberia de haber quedado asi....
Código PHP:
$i count($each);
while(
$i 0){
$post_info explode($info_sep$each[--$i]);
$this->outPost($post_info[0], $post_info[1], $post_info[2]);

Gracias por el karma ^^
Espero te sirva, hasta la proxima
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #7 (permalink)  
Antiguo 26/04/2011, 11:00
Avatar de AlejandroMtzRmz  
Fecha de Ingreso: febrero-2011
Mensajes: 81
Antigüedad: 13 años, 2 meses
Puntos: 4
Respuesta: Orden de comentarios sin base de datos

Cambie el codigo y ya aparesen en el orden que queria, pero ahora me aparecen otros errores, hice una captura de pantalla:


Etiquetas: comentarios, orden
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 01:44.