Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/01/2012, 11:09
Alex265
 
Fecha de Ingreso: mayo-2011
Mensajes: 65
Antigüedad: 12 años, 11 meses
Puntos: 3
Mostrando datos de un fichero

Buenas. Veréis, tengo el siguiente script en PHP que lo que hace es coger una URL de una imagen tipeada en el cuadro, coger el nombre y guardarlo en un archivo de texto con extensión .pk y además te muestra la imagen en la web a todo detalle.

Todo el código va genial hasta que quiero mostrar de una determinada forma las lineas abajo. Sé que podría mostrarlas de una forma más fácil si lo guardase el texto en el archivo .pk con el código ya hecho, porque sería simplemente imprimir el contenido del archivo, pero como esto no es un caso demasiado práctico y lo estoy haciendo para aprender a manejar a mi antojo la información de un fichero a base de explodes, lists, arrays y demás, quiero hacerlo de esa forma.

Me muestra el contenido, con las lineas que hay en el archivo exactas, el problema es que solamente me repite la primera linea! Primero veamos el código:

Código PHP:
Ver original
  1. <?php
  2.  
  3.  
  4. echo '<form action="" method="POST">'.'Introduce tu nombre: <input type="text" name="name">'.'<br>'.'Introduce url imagen: <input type="text" name="imageurl">'.'<br>'.'<input type="submit" value="Subir imagen">'.'</form>';
  5.  
  6. class AJAXChatImages {
  7.  
  8.             var $_imageURL;
  9.             var $_imageUser;
  10.             var $_user;
  11.             var $_imagename;
  12.             var $_lineas;
  13.            
  14.             function getURL() {
  15.                 $this->_imageURL = $_POST['imageurl'];
  16.             }
  17.            
  18.             function saveURL() {
  19.            
  20.               if($_POST['name'] != "" && $_POST['imageurl'] != "") {
  21.            
  22.                 $this->_imageUser = $_POST['name'];
  23.                 $saveimg = fopen("imgsave.pk", 'r+');
  24.                 $url = $this->_imageURL;
  25.                 $varim = basename($url).'-'.$this->_imageUser.'-';
  26.                 $salto = chr(13).chr(10);
  27.                 fseek($saveimg,0,SEEK_END);
  28.                 fwrite($saveimg,$salto);
  29.                 fwrite($saveimg,$varim);
  30.                 fclose($saveimg);
  31.                
  32.               }
  33.            
  34.             }
  35.            
  36.             function getUSERS() {
  37.               $saveimg = fopen("imgsave.pk", 'r');
  38.               $content = file_get_contents("imgsave.pk");                  
  39.                 $lineas = explode('\n', $content);
  40.                      
  41.                   foreach($lineas as $linea) {
  42.                     list($imgname, $username) = explode('-', $content);
  43.                       $archivo = "imgsave.pk";
  44.                       $lineas = count(file($archivo));
  45.                         $this->_user = $username;
  46.                         $this->_imagename = $imgname;
  47.                         $this->_lineas = $lineas;
  48.                   }
  49.             }
  50.  
  51. }
  52.  
  53. $imagen = new AJAXChatImages();
  54. $imagen->getURL();
  55. $imagen->saveURL();
  56. echo '<img src="'.$imagen->_imageURL.'">';
  57. $imagen->getUSERS();
  58. echo '<br><br>'.'Usuarios que han guardado sus avatars:';
  59.         for($i = 0; $i <= $imagen->_lineas; $i++) {
  60.        
  61.               echo '<br>'.'Nombre del usuario: <b>'.$imagen->_user.'</b> - Imagen: <i>'.$imagen->_imagename.'</i>';    
  62.              
  63.               }
  64.  
  65. ?>



Ok, el problema viene aquí. Pongo como nombre: USUARIO y como archivo de imagen pongo por ejemplo www.miservidor.com/imagen.jpg
Me la guarda correctamente. Luego vuelvo a subir otra imagen, con nombre PERSONA y url de la imagen www.mipagina.com/otraimagen.jpg

Y aquí viene el problema! En el fichero .pk me guarda todos los datos correctamente pero cuando tira a visualizarlos me muestra:

Nombre del usuario: USUARIO - Imagen: imagen.jpg
Nombre del usuario: USUARIO - Imagen: imagen.jpg


Exacto, me muestra dos veces la primera linea, en lugar de la primera y la segunda como yo querría.
Gracias por adelantado y saludos!