Avatar billede ujo33 Nybegynder
08. august 2003 - 18:26 Der er 20 kommentarer og
1 løsning

Permission denied in smtp.php

Hvordan kan jeg løse dette problem? hvad er det jeg mangler?

Warning: fopen("./smtp_client.log", "a") - Permission denied in D:\xxx\xxx\xxx\xxx\shop\smtp.php on line 85

smtp.php indeholder:

<?php

// smtp_client class -------------------------------------------------------
// use:
//        $smtp=smtp_client();
//        $smtp->email($from, $to[0], $to_name[0], $header[0], $subject[0], $body[0]);
//        $smtp->email($from, $to[1], $to_name[1], $header[1], $subject[1], $body[1]);
//        $smtp->send();

class smtp_client {
    var $connection;
    var $server;
    var $elog_fp;
    var $log_file='./smtp_client.log';
    var $do_log=true;
   

    // default constructor
    function smtp_client($server='') {
        if (!$server) $this->server="localhost";
        else $this->server=$server;
       
        $this->connection = fsockopen($this->server, 25);
        if ($this->connection <= 0) return 0;

        $this->elog(fgets($this->connection, 1024));
        $this->elog("HELO xyz\r\n", 1);
        fputs($this->connection,"HELO xyz\r\n");
        $this->elog(fgets($this->connection, 1024));
        }

    function email($from_mail, $to_mail, $to_name, $header, $subject, $body) {
        if ($this->connection <= 0) return 0;
   
        $this->elog("MAIL FROM:$from_mail", 1);
        fputs($this->connection,"MAIL FROM:$from_mail\r\n");
        $this->elog(fgets($this->connection, 1024));

        $this->elog("RCPT TO:$to_mail", 1);
        fputs($this->connection, "RCPT TO:$to_mail\r\n");
        $this->elog(fgets($this->connection, 1024));

        $this->elog("DATA", 1);
        fputs($this->connection, "DATA\r\n");
        $this->elog(fgets($this->connection, 1024));
   
        $this->elog("Subject: $subject", 1);
        $this->elog("To: $to_name", 1);
        fputs($this->connection,"Subject: $subject\r\n");
        fputs($this->connection,"To: $to_name\r\n");

        if ($header) {
            $this->elog($header, 1);
            fputs($this->connection, "$header\r\n");
            }

        $this->elog("", 1);
        $this->elog($body, 1);
        $this->elog(".", 1);
        fputs($this->connection,"\r\n");
        fputs($this->connection,"$body \r\n");
        fputs($this->connection,".\r\n");
        $this->elog(fgets($this->connection, 1024));

        return 1;
        }


    function send() {
        if ($this->connection) {
            fputs($this->connection, "QUIT\r\n");
            fclose($this->connection);
            $this->connection=0;
            }
        }

    function close() { $this->send(); }


    function elog($text, $mode=0) {
        if (!$this->do_log) return;

        // open file
        if (!$this->elog_fp) {
            if (!($this->elog_fp=fopen($this->log_file, 'a'))) return;
            fwrite($this->elog_fp, "\n-------------------------------------------\n");
            fwrite($this->elog_fp, " Sent " . date("Y-m-d H:i:s") . "\n");
            fwrite($this->elog_fp, "-------------------------------------------\n");
            }

        // write to log
        if (!$mode) fwrite($this->elog_fp, "    $text\n");
        else fwrite($this->elog_fp, "$text\n");
        }
    }


?>

Help...
Avatar billede marduk666 Nybegynder
08. august 2003 - 18:30 #1
Filen er læsebeskyttet, smid denne linje ind inden du prøver at læse noget fra filen.

chmod ("fil", 0755);
Avatar billede ujo33 Nybegynder
08. august 2003 - 18:42 #2
hvor skal den så placeres?
Avatar billede marduk666 Nybegynder
08. august 2003 - 19:41 #3
<?php

// smtp_client class -------------------------------------------------------
// use:
//        $smtp=smtp_client();
//        $smtp->email($from, $to[0], $to_name[0], $header[0], $subject[0], $body[0]);
//        $smtp->email($from, $to[1], $to_name[1], $header[1], $subject[1], $body[1]);
//        $smtp->send();

class smtp_client {
    var $connection;
    var $server;
    var $elog_fp;
    var $log_file='./smtp_client.log';
    var $do_log=true;
   

    // default constructor
    function smtp_client($server='') {
        if (!$server) $this->server="localhost";
        else $this->server=$server;
       
        $this->connection = fsockopen($this->server, 25);
        if ($this->connection <= 0) return 0;

        $this->elog(fgets($this->connection, 1024));
        $this->elog("HELO xyz\r\n", 1);
        fputs($this->connection,"HELO xyz\r\n");
        $this->elog(fgets($this->connection, 1024));
        }

    function email($from_mail, $to_mail, $to_name, $header, $subject, $body) {
        if ($this->connection <= 0) return 0;
   
        $this->elog("MAIL FROM:$from_mail", 1);
        fputs($this->connection,"MAIL FROM:$from_mail\r\n");
        $this->elog(fgets($this->connection, 1024));

        $this->elog("RCPT TO:$to_mail", 1);
        fputs($this->connection, "RCPT TO:$to_mail\r\n");
        $this->elog(fgets($this->connection, 1024));

        $this->elog("DATA", 1);
        fputs($this->connection, "DATA\r\n");
        $this->elog(fgets($this->connection, 1024));
   
        $this->elog("Subject: $subject", 1);
        $this->elog("To: $to_name", 1);
        fputs($this->connection,"Subject: $subject\r\n");
        fputs($this->connection,"To: $to_name\r\n");

        if ($header) {
            $this->elog($header, 1);
            fputs($this->connection, "$header\r\n");
            }

        $this->elog("", 1);
        $this->elog($body, 1);
        $this->elog(".", 1);
        fputs($this->connection,"\r\n");
        fputs($this->connection,"$body \r\n");
        fputs($this->connection,".\r\n");
        $this->elog(fgets($this->connection, 1024));

        return 1;
        }


    function send() {
        if ($this->connection) {
            fputs($this->connection, "QUIT\r\n");
            fclose($this->connection);
            $this->connection=0;
            }
        }

    function close() { $this->send(); }


    function elog($text, $mode=0) {
        if (!$this->do_log) return;

        // open file
        if (!$this->elog_fp) {
            chmod ($this->log_file, 0755);
            if (!($this->elog_fp=fopen($this->log_file, 'a'))) return;
            fwrite($this->elog_fp, "\n-------------------------------------------\n");
            fwrite($this->elog_fp, " Sent " . date("Y-m-d H:i:s") . "\n");
            fwrite($this->elog_fp, "-------------------------------------------\n");
            }

        // write to log
        if (!$mode) fwrite($this->elog_fp, "    $text\n");
        else fwrite($this->elog_fp, "$text\n");
        }
    }


?>
Avatar billede ujo33 Nybegynder
08. august 2003 - 19:54 #4
Så får jeg denne her:

Warning: chmod failed: Permission denied in x\xxx\shop\smtp.php on line 85

Warning: fopen("smtp_client.log", "a") - Permission denied in x\xxx\shop\smtp.php on line 86

jeg har ellers lavet smtp_client.log selv manuelt og vha. ftp programmet har jeg også givet rettighed til 755.

Hvad er der galt ?
Avatar billede erikjacobsen Ekspert
08. august 2003 - 20:53 #5
766 er nok bedre. Det er Read+Write.

Problemet er sikkert at du ejer filen, men webserveren kører som en anden bruger.
Avatar billede marduk666 Nybegynder
08. august 2003 - 21:04 #6
Prøv at lave filen via PHP istedet for via FTP'en.
Avatar billede ujo33 Nybegynder
08. august 2003 - 21:32 #7
=> marduk666
Så får jeg denne her...

Warning: chmod failed: Permission denied in D:\ateamweb\k_site\kalaaleq.gl\www.kalaaleq.gl\shop\smtp.php on line 85

Warning: fopen("./smtp_client.log", "a") - Permission denied in D:\ateamweb\k_site\kalaaleq.gl\www.kalaaleq.gl\shop\smtp.php on line 86
Avatar billede ujo33 Nybegynder
08. august 2003 - 21:34 #8
Men når jeg bruger FTP'en får jeg denne meddelelse

500 'SITE chmod 755 /xxx/shop/smtp_client.log': command not understood

er det selve serveren der er dum ?
Avatar billede erikjacobsen Ekspert
08. august 2003 - 21:41 #9
Næh - du kører jo på en windowsserver. Så er der ting der ikke virker som de skal. Beklager.
Avatar billede erikjacobsen Ekspert
08. august 2003 - 21:42 #10
Fortsat svar: marduk666 08/08-2003 21:04:39 kan dog sikkert bruges.
Avatar billede marduk666 Nybegynder
08. august 2003 - 23:00 #11
Prøv at lave filen på denne måde:

fopen("smtp_client.log", "w+");
Avatar billede ujo33 Nybegynder
10. august 2003 - 13:19 #12
Så får jeg denne her :

Warning: fopen("smtp_client.log", "w+") - Permission denied in D:\ateamweb\k_site\kalaaleq.gl\www.kalaaleq.gl\shop\smtp.php on line 85

Warning: fwrite(): supplied argument is not a valid File-Handle resource in D:\ateamweb\k_site\kalaaleq.gl\www.kalaaleq.gl\shop\smtp.php on line 86

Jeg har indsat script'et på forskellige måder, men får altid fejl meddelelser.
F.eks. nu ser min kode således ud:

<?php

// smtp_client class -------------------------------------------------------
// use:
//        $smtp=smtp_client();
//        $smtp->email($from, $to[0], $to_name[0], $header[0], $subject[0], $body[0]);
//        $smtp->email($from, $to[1], $to_name[1], $header[1], $subject[1], $body[1]);
//        $smtp->send();

class smtp_client {
    var $connection;
    var $server;
    var $elog_fp;
    var $log_file='./smtp_client.log';
    var $do_log=true;
   

    // default constructor
    function smtp_client($server='') {
        if (!$server) $this->server="localhost";
        else $this->server=$server;
       
        $this->connection = fsockopen($this->server, 25);
        if ($this->connection <= 0) return 0;

        $this->elog(fgets($this->connection, 1024));
        $this->elog("HELO xyz\r\n", 1);
        fputs($this->connection,"HELO xyz\r\n");
        $this->elog(fgets($this->connection, 1024));
        }

    function email($from_mail, $to_mail, $to_name, $header, $subject, $body) {
        if ($this->connection <= 0) return 0;
   
        $this->elog("MAIL FROM:$from_mail", 1);
        fputs($this->connection,"MAIL FROM:$from_mail\r\n");
        $this->elog(fgets($this->connection, 1024));

        $this->elog("RCPT TO:$to_mail", 1);
        fputs($this->connection, "RCPT TO:$to_mail\r\n");
        $this->elog(fgets($this->connection, 1024));

        $this->elog("DATA", 1);
        fputs($this->connection, "DATA\r\n");
        $this->elog(fgets($this->connection, 1024));
   
        $this->elog("Subject: $subject", 1);
        $this->elog("To: $to_name", 1);
        fputs($this->connection,"Subject: $subject\r\n");
        fputs($this->connection,"To: $to_name\r\n");

        if ($header) {
            $this->elog($header, 1);
            fputs($this->connection, "$header\r\n");
            }

        $this->elog("", 1);
        $this->elog($body, 1);
        $this->elog(".", 1);
        fputs($this->connection,"\r\n");
        fputs($this->connection,"$body \r\n");
        fputs($this->connection,".\r\n");
        $this->elog(fgets($this->connection, 1024));

        return 1;
        }


    function send() {
        if ($this->connection) {
            fputs($this->connection, "QUIT\r\n");
            fclose($this->connection);
            $this->connection=0;
            }
        }

    function close() { $this->send(); }


    function elog($text, $mode=0) {
        if (!$this->do_log) return;

        // open file
        if (!$this->elog_fp) {
            chmod ($this->log_file, 0755);
            if (!($this->elog_fp=fopen($this->log_file, 'w+'))) return;
            fwrite($this->elog_fp, "\n-------------------------------------------\n");
            fwrite($this->elog_fp, " Sent " . date("Y-m-d H:i:s") . "\n");
            fwrite($this->elog_fp, "-------------------------------------------\n");
            }

        // write to log
        if (!$mode) fwrite($this->elog_fp, "    $text\n");
        else fwrite($this->elog_fp, "$text\n");
        }
    }


?>

Ser den ellers fornuftig ud?
Avatar billede erikjacobsen Ekspert
10. august 2003 - 13:43 #13
Filen er der ikke når du prøver at oprette med "w+" - vel?
Avatar billede marduk666 Nybegynder
10. august 2003 - 13:44 #14
Når du bruger denne linje:
fopen("smtp_client.log", "w+");

Så vær sikker på den ikke eksisterer i forvejen. Hvis den stadig siger permission denied så er det nok ikke andet at gøre end at kontakte ejeren af webserveren.
Avatar billede erikjacobsen Ekspert
10. august 2003 - 15:43 #15
Du kunne måske i stedet for bruge: http://dk.php.net/manual/en/function.error-log.php
men med de samme overvejelser i forbindelse med tilladelser.
Avatar billede tipsen Nybegynder
11. august 2003 - 22:34 #16
Du kan jo overveje at slå logning fra ved at ændre $do_log fra true til false:

class smtp_client {
    var $connection;
    var $server;
    var $elog_fp;
    var $log_file = './smtp_client.log';
    var $do_log = false;
Avatar billede ujo33 Nybegynder
10. september 2003 - 12:52 #17
Jeg undskylder at jeg har ikke fortsætte med denne problemstilling i så lang tid pga. ferie osv. Nå, men da jeg har snakket med min internetudbyder har de selv lavet denne "pernmission"-halløjsa iorden selv, og nu kommer den videre "næsten" uden problem. Men da jeg kiggede på min log-fil stod der følgende:

-------------------------------------------
Sent 2003-09-10 08:47:32
-------------------------------------------
    220 MERCUR SMTP-Server (v4.01.08 MTE4My0xMDI0MS0xNzQyMA==) for Windows NT ready at Wed, 10 Sep 2003 08:47:32 -0200

HELO xyz 250 acwebs.ateam.gl Hello 127.0.0.1
MAIL FROM:kalaaleq@kalaaleq.com  250 <kalaaleq@kalaaleq.com>, sender ok
RCPT TO:jom@ral.gl 550 This address is not allowed
DATA 501 invalid Command in this state
Subject: Johannes Müller recommends this site
To:
MIME-Version: 1.0
Content-type: text/plain; charset=iso-8859-1
From: kalaaleq@kalaaleq.com <kalaaleq@kalaaleq.com>
To: jom@ral.gl <jom@ral.gl>
.

Det ser ud som om at der er problemer med script inde i "smtp" eller "emailfriend" filerne.
Hvad kan det være?
Avatar billede zeled Nybegynder
11. september 2003 - 16:24 #18
Løst i en anden tråd. :D
Avatar billede zeled Nybegynder
11. september 2003 - 20:47 #19
Hmmm... ville jo ligefremt mene at denne tråd er løst i
http://www.eksperten.dk/spm/399362
Avatar billede ujo33 Nybegynder
12. september 2003 - 12:21 #20
Undskyld !
Her for du din belønnning ;-)
Avatar billede ujo33 Nybegynder
12. september 2003 - 12:22 #21
Det er tredje gang jeg har ellers prøvet at afsluttet denne sag. Nu lykkedes den endelig !
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester