[PHP] script maakt ongewild nieuw bestand aan

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hallo allemaal, mijn eerste post dus hak me niet meteen de grond in als ik iets fout doe ajb.

Ik heb een gastenboek in php en dat schrijft de entries naar content-data.php. Als dat bestand niet oproepbaar is (door wat voor reden dan ook), maakt het gb een nieuw content-data.php aan, met als gevolg dat alle berichten kwijt zijn.
Als ik het goed zie, is het onderstaande stuk hiervoor verantwoordelijk.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
    function reWriteDataInFile($fileData,$fileName = "content-data.php")
    {
        if(!file_exists($fileName))
        {
            @$createFile = fopen($fileName, "w") or die ("Can't create file ".$fileName."");
            fwrite ($createFile,"",0);
            @chmod($fileName, 0666);
            fclose($createFile);
        }
        @$openFile = fopen($fileName,"w+") or die ("Access is denied. Set permission to ".$fileName." by command in console \"chmod 666 ".$fileName."\"");
        if ($openFile && flock($openFile,LOCK_EX)) {
            @fwrite($openFile,$fileData);
        }
        fclose($openFile);
    }

    function createFile($fileName)
    {
        if(!file_exists($fileName))
        {
            @$createFile = fopen($fileName, "w") or die ("Can't create file ".$fileName."");
            fwrite ($createFile,"",0);
            @chmod($fileName, 0666);
            fclose($createFile);
        }
    }


Nu heb ik liever dat er een foutmelding verschijnt als content-data.php niet kan worden aangeroepen, dan dat het bestand opnieuw wordt aangemaakt.
Vraag 1: Welk deel van de code moet ik hiervoor verwijderen/wijzigen?
Vraag 2: Weet er iemand een mogelijkheid om dagelijks automatisch een backup van content-data.php te maken en de datum aan de bestandsnaam toe te voegen (content-data20031021.php)?

Bij voorbaat dank voor de hulp.

Acties:
  • 0 Henk 'm!

  • PrisonerOfPain
  • Registratie: Januari 2003
  • Laatst online: 26-05 17:08
PHP:
1
2
3
4
5
6
7
8
9
<?php
if(!file_exists($fileName))
        {
            @$createFile = fopen($fileName, "w") or die ("Can't create file ".$fileName."");
            fwrite ($createFile,"",0);
            @chmod($fileName, 0666);
            fclose($createFile);
        }
?> 


Veranderen in
PHP:
1
2
3
4
5
6
<?php
if(!is_writable($fileName))
        {
                die ("Cannot read file");
        } 
?>


Edit:

Het is leuk dat je het bestand wil locken maar unlocken lijkt me ook geen gek idee ;)

PHP:
1
2
3
4
5
<?php
if ($openFile && flock($openFile,LOCK_EX)) {
            @fwrite($openFile,$fileData);
        } 
?>


zoiets van maken

PHP:
1
2
3
4
5
6
<?php
if ($openFile && flock($openFile,LOCK_EX)) {
            @fwrite($openFile,$fileData);
            flock ($openFile, LOCK_UN);
        } 
?>

[ Voor 62% gewijzigd door PrisonerOfPain op 21-10-2003 22:50 ]


Acties:
  • 0 Henk 'm!

  • El_kingo
  • Registratie: Mei 2002
  • Laatst online: 17-03 11:17
voor een antwoord op vraag 2:
Ik leid uit je script af dat het op een linux systeem draait, als dat zo is dan is Cron je grote vriend.
Zie 'man cron' voor meer info of even op google zoeken naar linux + cron ;)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Bedankt allebei!