I have a PHP-based application for classroom instructors. The system uses a flat-file system and is not in a database. Instructors can login to edit their site, which usually involves copying and pasting text into an open-source WYSIWYG text editor. When instructors "create" a new class by entering a class name into a text field, the system creates a copy of a template directory and renames it as a new directory. Therefore, the system both creates directories and writes to files. I believe that the system uses PHP sessions, but that may be where my problem lies.
When only a few instructors had accounts, there were not reported problems. Now, many instructors have accounts, and we are experiencing problems. Unfortunately, the problems cannot be replicated consistently.
The instructor login information resides in a text data file with name, department, password, and email address, each on its own line. The PHP scripts read and use this data to grant access to the editing features and to display the instructor name and department in the web page header. RANDOMLY, the system will overwrite this file, blanking out all of the data. The web page header becomes empty and the instructor cannot login with their password.
The good news is that when this happens, the instructor CAN login by leaving the password field empty, then they are given the chance to re-enter that information (name, department, password, and email address). The website operates as normal until the file is mysteriously overwritten (and emptied of data) again.
I believe that the problem may be caused if:
*the instructor does not logout correctly when finished,
*the instructor uses two web browsers and logs in on each to access the same site
*PHP sessions are not working correctly.
It is quite probable that two or more instructors are working on their individual sites at the same time and one PHP script overwrites the data file of another.
I am willing to pay a PHP programmer with experience in reading/writing flat files and PHP sessions to help me solve my problem.