Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] ¿ Archivo en php legible y escribible por varios usuarios a la vez ?

Estas en el tema de ¿ Archivo en php legible y escribible por varios usuarios a la vez ? en el foro de PHP en Foros del Web. Necesito crear un archivo en php que será leído y escrito por varios usuarios en diferentes sesiones a la vez. Por lo que el fichero ...
  #1 (permalink)  
Antiguo 02/06/2013, 08:06
Avatar de loganbdn  
Fecha de Ingreso: enero-2009
Ubicación: Badalona
Mensajes: 114
Antigüedad: 15 años, 3 meses
Puntos: 1
¿ Archivo en php legible y escribible por varios usuarios a la vez ?

Necesito crear un archivo en php que será leído y escrito por varios usuarios en diferentes sesiones a la vez. Por lo que el fichero pudiera estas abierto en modo lectura y otro usuario en otra sesión abrirlo en ese momento en modo escritura y escribir en el.

¿ Hay algún problema al hacer esto ? Usaria los comandos típicos fopen, fclose, fputs, fgets.
  #2 (permalink)  
Antiguo 02/06/2013, 09:23
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: ¿ Archivo en php legible y escribible por varios usuarios a la vez ?

Los archivos PHP son los scripts que se ejecutan en servidor, y que tiene impacto directo en el sistema de que forman parte, por lo que su acceso no solo debe ser restringido, sino que su modificación es extremadamente peligrosa.
¿Puedes explicar exactamente qué es lo que pretendes hacer?
Si te refieres a scripts que están siendo desarrollados por múltiples programadores, para eso existen herramientas específicas de gestión (la empresa para la que trabajo, por ejemplo, usa el Serena Dimension), con las cuales puedes controlar el acceso y modo de gestion de los proyectos.
Tal vez sea eso lo que necesitas...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 02/06/2013, 09:46
 
Fecha de Ingreso: diciembre-2012
Mensajes: 21
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: ¿ Archivo en php legible y escribible por varios usuarios a la vez ?

usando fopen fputs etcetc no conseguirias un "chat" o cambiar valores en tiempo real pero con eso se puede si .
  #4 (permalink)  
Antiguo 04/06/2013, 19:03
Avatar de loganbdn  
Fecha de Ingreso: enero-2009
Ubicación: Badalona
Mensajes: 114
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: ¿ Archivo en php legible y escribible por varios usuarios a la vez ?

Lo que pretendo hacer es un fichero donde los usuarios guarden mensajes a modo de chat. un usuario accede al fichero en modo lectura, otro puede estar grabando un mensaje y otro puede salir de su sesion con lo que cerraria el fichero mientras los otros lo utilizan en sus sesiones.
No quiero utilizar ningun servidor de bases de datos como MySql.
  #5 (permalink)  
Antiguo 04/06/2013, 19:09
Avatar de loganbdn  
Fecha de Ingreso: enero-2009
Ubicación: Badalona
Mensajes: 114
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: ¿ Archivo en php legible y escribible por varios usuarios a la vez ?

Quieres decir que con fopen, fputs,etc... Tengo que hacerlo de alguna manera que con un comando sepa si el fichero lo esta utilizando otro usuario y esperar a que termine para usarlo otro
  #6 (permalink)  
Antiguo 04/06/2013, 19:32
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: ¿ Archivo en php legible y escribible por varios usuarios a la vez ?

Lo peor es hacerlo con acceso directo a archivos I/O esto es porque al estar escribiendo se bloquea el archivo por el OS y el otro usuario no podría verlo.

También una base de datos no es lo mejor para ello, este tipo de sistemas siempre se usan en memoria usando sockets ya que es lo que da mejor rendimiento y escalabilidad, sobre todo cuando la carga de usuarios empieza a aumentar.
  #7 (permalink)  
Antiguo 04/06/2013, 20:09
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: ¿ Archivo en php legible y escribible por varios usuarios a la vez ?

Cita:
Iniciado por loganbdn Ver Mensaje
Lo que pretendo hacer es un fichero donde los usuarios guarden mensajes a modo de chat. un usuario accede al fichero en modo lectura, otro puede estar grabando un mensaje y otro puede salir de su sesion con lo que cerraria el fichero mientras los otros lo utilizan en sus sesiones.
No quiero utilizar ningun servidor de bases de datos como MySql.
Buena suerte con la idea, aunque francamente...

¿No has pensado que si todos los sitios trabajan con bases de datos, es posible que sea porque representa enormes ventajas respecto a cualquier otra forma, tanto por persistencia, accesibilidad, control, como por seguridad?

Me da la impresión de que te propones hacer algo en base a un modelo conceptualmente ya descartado.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #8 (permalink)  
Antiguo 05/06/2013, 04:51
Avatar de loganbdn  
Fecha de Ingreso: enero-2009
Ubicación: Badalona
Mensajes: 114
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: ¿ Archivo en php legible y escribible por varios usuarios a la vez ?

Para gestionar muchos usuarios, con filtros de multiples consultas seguro que MySql es muy bueno.
Para pocos usuarios con pocas consultas y búsqueda siempre de la misma condición un fichero es lo ideal.
  #9 (permalink)  
Antiguo 05/06/2013, 04:59
Avatar de loganbdn  
Fecha de Ingreso: enero-2009
Ubicación: Badalona
Mensajes: 114
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: ¿ Archivo en php legible y escribible por varios usuarios a la vez ?

Ya lo he probado en memoria con apc de php. El problema es que necesita instalar la extensión antes pues no vendra de serie hasta php 6.
Otro problema es al iniciar la variable en sesiones ya que al estar esta compartida por todos si entra un usuario nuevo inicia un valor borrando lo escrito anteriormente por todos los usuarios. El otro problema es que esta en memoria pero bueno se podría grabar datos en un fichero antes de cerrar.
  #10 (permalink)  
Antiguo 05/06/2013, 09:31
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: ¿ Archivo en php legible y escribible por varios usuarios a la vez ?

No, un fichero nunca va a ser ideal por lo que te digo el bloqueo de I/O es el que te va a matar pero bueno, si es lo que quieres adelante...
  #11 (permalink)  
Antiguo 05/06/2013, 15:45
Avatar de loganbdn  
Fecha de Ingreso: enero-2009
Ubicación: Badalona
Mensajes: 114
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: ¿ Archivo en php legible y escribible por varios usuarios a la vez ?

Pero pensándolo bien el bloqueo de I/O creo que solo se produce cuando se escribe. Entonces bastaría con no acceder a escritura mientras ese fichero se esta usando y luego grabar el mensaje de texto o durante un tiempo en mili segundos permitir que solo un usuario escriba.

¿ Que me aconsejas ? ¿ Alguna rutina en PHP que te diga cuando un fichero se esta usando ?
  #12 (permalink)  
Antiguo 05/06/2013, 19:18
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: ¿ Archivo en php legible y escribible por varios usuarios a la vez ?

Cita:
Pero pensándolo bien el bloqueo de I/O creo que solo se produce cuando se escribe.
¿Estás seguro de que conoces el funcionamiento del sistema de permisos de los servidores?
No es simplemente la concurrencia el problema. Si el usuario no posee permisos de escritura, el sistema no le permitirá hacerlo.
Y si los tiene... Bueno, el riesgo de seguridad es muy alto.

Si estás planteando poner un sitio en web con esas capacidades, primero averigua si tu hosting te va a dar tantos privilegios como para hacer semejantes cosas... Ten en cuenta que poder leer y escribir archivos no es algo tan inocente. Así como leerías un archivo de texto, bien podrían modificar un PHP y destruirte el sistema entero.

¿Lo has meditado?



La regla es simple: Ningún usuario, ni siquiera el dueño de la web, debe tener privilegios tales que pueda hacer peligrar el sistema. Nadie.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 06/06/2013 a las 05:48
  #13 (permalink)  
Antiguo 06/06/2013, 16:37
Avatar de loganbdn  
Fecha de Ingreso: enero-2009
Ubicación: Badalona
Mensajes: 114
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: ¿ Archivo en php legible y escribible por varios usuarios a la vez ?

hombre, si tengo permisos para escribir lo que quiera dentro de la carpeta donde esta el index.html supongo que un usuario de una Sesión en PHP podrá también leer o escribir un fichero con las funciones pertinentes.
Lo probare...
  #14 (permalink)  
Antiguo 06/06/2013, 18:26
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: ¿ Archivo en php legible y escribible por varios usuarios a la vez ?

Cita:
si tengo permisos para escribir lo que quiera dentro de la carpeta donde esta el index.html supongo que un usuario de una Sesión en PHP podrá también leer o escribir un fichero con las funciones pertinentes.
Creo que no.
¿Has estudiado realmente lo que son los permisos de usuario en sistemas operativos? ¿Los permisos de usuario de servidores web?

Suponiendo que el servidor sea apache, la cosa puede andar por acá: http://www.socinfo.com/ubuntu/apache/permisos
Si el servidor es IIS, tal vez convenga dar una leída a:: http://support.microsoft.com/kb/812614/es
Si tenemos que mirarlos para Linux podríamos leer: http://albertux75.wordpress.com/2008...upos-en-linux/

Lo más notable es que puedes olvidarte de todo eso, simplemente usando un DBMS como Oracle, MySQL, SQL Server, Postgre...

O sea,
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #15 (permalink)  
Antiguo 07/06/2013, 18:35
Avatar de loganbdn  
Fecha de Ingreso: enero-2009
Ubicación: Badalona
Mensajes: 114
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: ¿ Archivo en php legible y escribible por varios usuarios a la vez ?

Acabo de hacer la prueba de escribir fichero en PHP y me funciona perfectamente.
Luego he hecho la prueba en 2 usuarios distintos que accedan al mismo fichero y va perfectamente.

De momento no hay ningún problema por lo que puedo continuar mi idea de trabajar con ficheros sin utilizar ningún servidor de bases de datos.
  #16 (permalink)  
Antiguo 21/06/2013, 19:14
Avatar de loganbdn  
Fecha de Ingreso: enero-2009
Ubicación: Badalona
Mensajes: 114
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: ¿ Archivo en php legible y escribible por varios usuarios a la vez ?

Lo consegui con simple ficheros en php logre haer un chat sin usar Servidor de Base de Datos tipo MySQL
  #17 (permalink)  
Antiguo 22/06/2013, 09:59
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Respuesta: ¿ Archivo en php legible y escribible por varios usuarios a la vez ?

Cita:
Iniciado por loganbdn Ver Mensaje
Lo consegui con simple ficheros en php logre haer un chat sin usar Servidor de Base de Datos tipo MySQL
parece que lo leí tarde, aún así me gustaría aportar que prácticamente lo que quieres hacer está inventado hace ya años.

¿conoces piratepad, sync, etc.? creo que te puede servir para tu propósito sin tener todos esos riesgos de seguridad y manejo de la aplicación.

http://piratepad.net/front-page/

http://sync.in/

básicamente son documentos editables por varios usuarios en tiempo real para crear todo tipo de documento, desde código (tiene el uso de la tabulación) hasta documentos de oficina (los puedes exportar en pdf), además cuenta con timelines y copias de seguridad para regresión de cambios.

hay alguno de ellos que es opensource, por lo que podrías instalar una copia en tu servidor para personalizarla y tener tu propio editor grupal.

saludos :)
  #18 (permalink)  
Antiguo 22/06/2013, 18:37
Avatar de loganbdn  
Fecha de Ingreso: enero-2009
Ubicación: Badalona
Mensajes: 114
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: ¿ Archivo en php legible y escribible por varios usuarios a la vez ?

Gracias por la informacion la veo de mucha utilidad
  #19 (permalink)  
Antiguo 23/06/2013, 04:51
 
Fecha de Ingreso: septiembre-2006
Mensajes: 139
Antigüedad: 17 años, 7 meses
Puntos: 14
Respuesta: ¿ Archivo en php legible y escribible por varios usuarios a la vez ?

¿No sería mejor para ello acudir a NoSQL?

Además supongo que lo que intenta es mantener el versionado como lo hacen svn, git, ...

Saludos cordiales.
Francisco ?.

Etiquetas: usuarios, vez
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 14:04.