Autor Tema: actualizar un archivo.xml desde un formulario.php  (Leído 4077 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado usuario_13

  • Novato
  • *
  • Mensajes: 23
  • Puntuación: 0
    • Ver Perfil
actualizar un archivo.xml desde un formulario.php
« : 16 de marzo de 2009, 01:18:08 pm »
hola a todos, soy nuevo en esto del xml y se me presento el siguiente problema:

tengo una galeria de imagenes muy buena que consegui gratis en internet (simpleviewer).

la cuestion es que las imagenes son cargadas a traves de un gallery.xml.

en dicho gallery.xml es donde uno agrega el nombre de las imagenes que por supuesto deben estar guardadas en una carpeta images.

mi problema es que esas fotos que estan guardadas en la carpeta images yo las almaceno con un formulario.php con la instruccion move_uploaded_file y ademas guardo la ruta en una BD (mysql).

lo que quiero hacer es que cada vez que guardo una foto en la carpeta images con el formulario.php se me agregue esa foto en el gallery.xml para mostralo en la galeria.

no se si fui claro con mi problema pero por favor agradeceria cualquier ayuda de su parte.
muchas gracias de antemano

Desconectado ashrey

  • Moderador Global
  • Fanático
  • *****
  • Mensajes: 471
  • Puntuación: 7
  • Sexo: Masculino
  • Wombat Team
    • Ver Perfil
    • Blog de ABerroteran
Re: actualizar un archivo.xml desde un formulario.php
« Respuesta #1 : 16 de marzo de 2009, 01:51:06 pm »
Pues escribe un script que modifique el contenido gallery.xml, cada vez que subas una imagen. Y como es XML puedes usar la extension SimpleXML que viene por defecto en PHP 5

Desconectado usuario_13

  • Novato
  • *
  • Mensajes: 23
  • Puntuación: 0
    • Ver Perfil
Re: actualizar un archivo.xml desde un formulario.php
« Respuesta #2 : 16 de marzo de 2009, 03:24:57 pm »
muchas gracias ashrey por tu pronta respuesta, te agradeceria enormemente que me ilustraras tu opinion con algo de codigo o algun tutorial que me sirva porq no soy un experto en xml ni javascript.

gracias nuevamente por tu respuesta y gracias de antemano por la ayuda

Desconectado aasanchez

  • Moderador Global
  • Fanático
  • *****
  • Mensajes: 362
  • Puntuación: 7
  • Sexo: Masculino
    • Ver Perfil
    • Asi lo pienso, asi lo veo, asi lo escribo
Re: actualizar un archivo.xml desde un formulario.php
« Respuesta #3 : 16 de marzo de 2009, 03:53:42 pm »
Pues el mejor manual y codigos y documentacion siempre en: http://ve2.php.net/simplexml
Un usuario mas...
Todas tus preguntas, consigues respuesta en google
Googlear no cuesta nada...

http://php.org.ve/index.php/topic,104.0.html <-- Normas criollas del foro

Desconectado usuario_13

  • Novato
  • *
  • Mensajes: 23
  • Puntuación: 0
    • Ver Perfil
Re: actualizar un archivo.xml desde un formulario.php
« Respuesta #4 : 16 de marzo de 2009, 07:21:42 pm »
de verdad muchas gracias por las  prontas respuestas, revise la documentacion del link que me recomendaron y utilice el siguiente atributo: addChild. pero no me funciona, voy a publicar el codigo de .xml y del .php exactamente en donde hago el insertar nodo dentro del .xml (esta es la parte que no me funciona)

gallery.xml:

<?xml version="1.0" encoding="UTF-8"?>
<simpleviewergallery>
<image>
   <filename>1.jpg</filename>
   <caption></caption>   
</image>
<image>
   <filename>2.jpg</filename>
   <caption></caption>   
</image>
<image>
   <filename>3.jpg</filename>
   <caption></caption>   
</image>
<image>
   <filename>4.jpg</filename>
   <caption></caption>   
</image>
<image>
   <filename>5.jpg</filename>
   <caption></caption>   
</image>
</simpleviewergallery>

guardar.php:

<?php
include 'conexion.php';

if ($operacion == "agregar"){

                 $codigo_producto = $_POST["codigo_producto"];  // todos estos atributos los obtengo del formulario index.php que se
       $nombre = $_POST["nombre"];                           // encarga entre otras cosas de obtener la ruta de la foto para insertarla
       $descripcion = $_POST["descripcion"];                 // en la BD
       $id_tipo_producto = $_POST["id_tipo_producto"];
      
       $archivo = $_FILES['foto']['name'];
       $nuevo_nombre = ( string ) $_FILES['foto']['name'];
       $ruta = "images/$nuevo_nombre";
       move_uploaded_file($_FILES['foto']['tmp_name'], "$ruta");  // aqui almaceno la foto en la carpeta images (esto funciona)
      
       $simpleviewergallery = new SimpleXMLElement('gallery.xml', null, true);
       $image = $simpleviewergallery->addChild('image');
       $image->addChild('filename', $nuevo_nombre);
       $image->addChild('caption', 'hola');
       $simpleviewergallery->asXML();

                 // aqui va el INSERT INTO en la BD

}
?>

la cuestion es que todo me funciona menos insertar el nodo nuevo en el gallery.xml que es lo que necesito.

agradeceria cualquier ayuda por favor y de antemano muchas gracias

Desconectado ashrey

  • Moderador Global
  • Fanático
  • *****
  • Mensajes: 471
  • Puntuación: 7
  • Sexo: Masculino
  • Wombat Team
    • Ver Perfil
    • Blog de ABerroteran
Re: actualizar un archivo.xml desde un formulario.php
« Respuesta #5 : 16 de marzo de 2009, 09:14:24 pm »
Código: [Seleccionar]
$simpleviewergallery->asXML('gallery.xml');Te falta el nombre del archivo, para que pueda ser guardado.
« Última Modificación: 17 de marzo de 2009, 12:10:10 am por ashrey »

Desconectado usuario_13

  • Novato
  • *
  • Mensajes: 23
  • Puntuación: 0
    • Ver Perfil
Re: actualizar un archivo.xml desde un formulario.php
« Respuesta #6 : 17 de marzo de 2009, 09:40:53 am »
hola a todos y buenos dias, de verdad muchas gracias ashrey y pax por su ayuda, ahora si funciona y todo gracias a su aporte. solo faltaba poner el nombre del archivo como lo comento ashrey para que funcionara.

muchas gracias de nuevo y saludos

Desconectado juliocsg54

  • Novato
  • *
  • Mensajes: 3
  • Puntuación: 0
    • Ver Perfil
Re: actualizar un archivo.xml desde un formulario.php
« Respuesta #7 : 20 de marzo de 2009, 11:58:07 am »
 ???
estoy tratando de hacer con hacer un codigo en php q genere un xml que cada vez q se genere el nombre de la imagen cambien :S

<?php
$imglist='';
//$img_folder is the variable that holds the path to the banner images. Mine is images/tutorials/
// see that you don't forget about the "/" at the end
$img_folder = "custom_files/";

mt_srand((double)microtime()*1000);

//use the directory class
$imgs = dir($img_folder);

//read all files from the directory, checks if are images and ads them to a list (see below how to display flash banners)
while ($file = $imgs->read()) {
if (eregi("gif", $file) || eregi("jpg", $file) || eregi("png", $file))
$imglist .= "$file ";

} closedir($imgs->handle);

//put all images into an array
$imglist = explode(" ", $imglist);
$no = sizeof($imglist)-2;

//generate a random number between 0 and the number of images
$random = mt_rand(0, $no);
$image = $imglist[$random];


       $header_vars = new SimpleXMLElement('http://www.pintoracarigua.com/acarigua-araure/custom.xml', NULL, TRUE);
      $text_header_1 = $header_vars->addChild('text_header_1 x_pos="110" y_pos="88.5" size="29" letter_spacing="0"','MY COMPANY NAME');
       $text_header_2 = $header_vars->addChild('text_header_2 x_pos="110" y_pos="145" size="12" letter_spacing="5.5"','MY WEBSITE SLOGAN');
       $music_file = $header_vars->addChild('music_file play_music="yes"','custom_files/mymusic.mp3');
       $image_header_1 = $header_vars->addChild('image_header_1','"'.$img_folder.$image.'"');
       $header_vars ->asXML(custom.xml);
?>    

pero me da un error :

Fatal error: Cannot instantiate non-existent class: simplexmlelement in /home/ha000276/public_html/acarigua-araure/index.php on line 70  :'(
linea 70:> $header_vars = new SimpleXMLElement('http://www.pintoracarigua.com/acarigua-araure/custom.xml', NULL, TRUE);

me pueden ayudar? :D

Desconectado ashrey

  • Moderador Global
  • Fanático
  • *****
  • Mensajes: 471
  • Puntuación: 7
  • Sexo: Masculino
  • Wombat Team
    • Ver Perfil
    • Blog de ABerroteran
Re: actualizar un archivo.xml desde un formulario.php
« Respuesta #8 : 20 de marzo de 2009, 01:49:09 pm »
Parece que no está instalada la libreria SimpleXML, que versión PHP usas?

Desconectado juliocsg54

  • Novato
  • *
  • Mensajes: 3
  • Puntuación: 0
    • Ver Perfil
Re: actualizar un archivo.xml desde un formulario.php
« Respuesta #9 : 20 de marzo de 2009, 03:29:37 pm »
estaba usando la version 4 pero ya cambie el servidor a la version 5
no da error pero no muestra nada :S

los valores del xml son utilizados seguidamente por un archivo flash ..

<?php
$imglist='';
//$img_folder is the variable that holds the path to the banner images. Mine is images/tutorials/
// see that you don't forget about the "/" at the end
$img_folder = "custom_files/";

mt_srand((double)microtime()*1000);

//use the directory class
$imgs = dir($img_folder);

//read all files from the directory, checks if are images and ads them to a list (see below how to display flash banners)
while ($file = $imgs->read()) {
if (eregi("gif", $file) || eregi("jpg", $file) || eregi("png", $file))
$imglist .= "$file ";

} closedir($imgs->handle);

//put all images into an array
$imglist = explode(" ", $imglist);
$no = sizeof($imglist)-2;

//generate a random number between 0 and the number of images
$random = mt_rand(0, $no);
$image = $imglist[$random];


       $header_vars = new SimpleXMLElement('http://www.pintoracarigua.com/acarigua-araure/custom.xml', NULL, TRUE);
      $text_header_1 = $header_vars->addChild('text_header_1 x_pos="110" y_pos="88.5" size="29" letter_spacing="0"','MY COMPANY NAME');
       $text_header_2 = $header_vars->addChild('text_header_2 x_pos="110" y_pos="145" size="12" letter_spacing="5.5"','MY WEBSITE SLOGAN');
       $music_file = $header_vars->addChild('music_file play_music="yes"','custom_files/mymusic.mp3');
       $image_header_1 = $header_vars->addChild('image_header_1','"'.$img_folder.$image.'"');
       $header_vars ->asXML(custom.xml);
?>       
<script type="text/javascript">AC_FL_RunContent( 'codebase','http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0','width','850','height','200','src','flash/effet','quality','high','pluginspage','http://www.macromedia.com/go/getflashplayer','movie','flash/effet','flashvars','','bgcolor','#ffffff'); //end AC code</script><noscript>free flash templates</noscript>

...

lo q quiero hacer es q aparesca la animacion y q cada vez q carge la imagen sea distinta :S pero no se el flash ahora actualizando el xml no muestra nada :S


el archivo resultante es
<?xml version="1.0" encoding="utf-8"?>
        <header_vars>
      <text_header_1 x_pos="110" y_pos="88.5" size="29" letter_spacing="0">MY COMPANY NAME</text_header_1>   
      <text_header_2 x_pos="110" y_pos="145" size="12" letter_spacing="5.5">MY WEBSITE SLOGAN</text_header_2>   
      <music_file play_music="yes">custom_files/mymusic.mp3</music_file>
      <image_header_1>="custom_files/your_image2.png"</image_header_1>
           </header_vars>


no se porq pone ese = :S
« Última Modificación: 20 de marzo de 2009, 03:42:28 pm por juliocsg54 »

Desconectado juliocsg54

  • Novato
  • *
  • Mensajes: 3
  • Puntuación: 0
    • Ver Perfil
Re: actualizar un archivo.xml desde un formulario.php
« Respuesta #10 : 20 de marzo de 2009, 03:42:36 pm »
estaba usando la version 4 pero ya cambie el servidor a la version 5
no da error pero no muestra nada :S

los valores del xml son utilizados seguidamente por un archivo flash ..

<?php
$imglist='';
//$img_folder is the variable that holds the path to the banner images. Mine is images/tutorials/
// see that you don't forget about the "/" at the end
$img_folder = "custom_files/";

mt_srand((double)microtime()*1000);

//use the directory class
$imgs = dir($img_folder);

//read all files from the directory, checks if are images and ads them to a list (see below how to display flash banners)
while ($file = $imgs->read()) {
if (eregi("gif", $file) || eregi("jpg", $file) || eregi("png", $file))
$imglist .= "$file ";

} closedir($imgs->handle);

//put all images into an array
$imglist = explode(" ", $imglist);
$no = sizeof($imglist)-2;

//generate a random number between 0 and the number of images
$random = mt_rand(0, $no);
$image = $imglist[$random];


       $header_vars = new SimpleXMLElement('http://www.pintoracarigua.com/acarigua-araure/custom.xml', NULL, TRUE);
      $text_header_1 = $header_vars->addChild('text_header_1 x_pos="110" y_pos="88.5" size="29" letter_spacing="0"','MY COMPANY NAME');
       $text_header_2 = $header_vars->addChild('text_header_2 x_pos="110" y_pos="145" size="12" letter_spacing="5.5"','MY WEBSITE SLOGAN');
       $music_file = $header_vars->addChild('music_file play_music="yes"','custom_files/mymusic.mp3');
       $image_header_1 = $header_vars->addChild('image_header_1','"'.$img_folder.$image.'"');
       $header_vars ->asXML(custom.xml);
?>       
<script type="text/javascript">AC_FL_RunContent( 'codebase','http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0','width','850','height','200','src','flash/effet','quality','high','pluginspage','http://www.macromedia.com/go/getflashplayer','movie','flash/effet','flashvars','','bgcolor','#ffffff'); //end AC code</script><noscript>free flash templates</noscript>

...

lo q quiero hacer es q aparesca la animacion y q cada vez q carge la imagen sea distinta :S pero no se el flash ahora actualizando el xml no muestra nada :S


el archivo resultante es
<?xml version="1.0" encoding="utf-8"?>
        <header_vars>
      <text_header_1 x_pos="110" y_pos="88.5" size="29" letter_spacing="0">MY COMPANY NAME</text_header_1>   
      <text_header_2 x_pos="110" y_pos="145" size="12" letter_spacing="5.5">MY WEBSITE SLOGAN</text_header_2>   
      <music_file play_music="yes">custom_files/mymusic.mp3</music_file>
      <image_header_1>="custom_files/your_image2.png"</image_header_1>
           </header_vars>


no se porq pone ese = :S