Felix Tilch: Problem bei setzen Rechten via PHP script !

Hi,
leider bin ich nicht so erfahren in Php, habe mir jedoch eine gallreyscript herruntergeladen.
Dieses Script will nun beim Onlineupload, in meinem Webverzeichniss, Order anlegen mit den Rechten 777. Leider gelingt dieses nicht, obwohl die Rechte des Überordners auf 777 stehen und im Phpscript angeben ist, dass die neuen Ordner auch die Rechte 777 bekommen.
Die Ornder werden zwar angelgt, aber nur OHNE Schreibrechte.

if (isset($write_desc)) {

if (@mkdir("$img_folder/$gal_nr", 0777)) {

// Datum
 $year = date( "Y");
 $n = date( "d");
 $month = date( "m");

##########

Naja danke schon mal für eure Mühen,
Gruss Felix

  1. hi,

    Die Ornder werden zwar angelgt, aber nur OHNE Schreibrechte.

    ob es dabei irgendwelche fehlermeldungen gibt, scheint dich aber wenig zu interessieren, denn

    if (@mkdir("$img_folder/$gal_nr", 0777)) {

    durch das @ vor dem funktionsaufruf unterdrückst du diese ja explizit.

    gruss,
    wahsaga

    1. Warning: move_uploaded_file() [function.move-uploaded-file]: SAFE MODE Restriction in effect. The script whose uid is 31925 is not allowed to access /home/www/htdocs/******.de/******/members/bilder/images/4 owned by uid 30 in /****/www/htdocs/********.de/*******/members/bilder/admin/gallery_admin.php on line 342

      Mh, er schreibt halt nur das keine Berechtigung hat, aber das wußte ich ja schon vorher ;) !
      weiß keiner einen rat. Kann es sein das mein Server ( Webspaceanbiert) es nicht erlaubt via Php ornder mit den Rechten 777 anzulegen ???
      gruss,
      felix

      1. hi,

        Mh, er schreibt halt nur das keine Berechtigung hat, aber das wußte ich ja schon vorher ;) !

        die von dir gepostete meldung bezieht sich aber auf den befehl move_uploaded_file(), nicht auf mkdir().

        gruss,
        wahsaga

        1. Ja das stimmt, aber auch ohne das @ kommte keine brauchbare Fehlermeldung :( .

      2. Hello,

        Mh, er schreibt halt nur das keine Berechtigung hat, aber das wußte ich ja schon vorher ;)

        Du  meinstest das zu wissen. Es handelt sich um zwei verschiedene Rechtesysteme. Das lässt sich auch nicht in einem Satz erklären.

        weiß keiner einen rat. Kann es sein das mein Server ( Webspaceanbiert) es nicht erlaubt via Php ornder mit den Rechten 777 anzulegen ???

        Hat der Proviferserver Dir denn überhaupt erlaubt, ein Directory anzulegen?

        Du brauchst:

        http://de.php.net/manual/de/function.mkdir.php
        http://de.php.net/manual/de/function.umask.php
        http://de.php.net/manual/de/function.chmod.php
        http://de.php.net/operators.errorcontrol
          davon $php_errormsg und track_errors
        [http://de.php.net/manual/de/ref.errorfunc.php#ini.track-errors]
        http://de3.php.net/error_reporting
        http://de3.php.net/ini_get
        http://de2.php.net/ini_set

        Und die Information, dass mkdir() wahrscheinlich die eingestellte umask() achtet.

        Und hier der Fahrplan, wie Du vorgehst:

        1. Alle von mir referenzierten Seiten runterladen bzw. mit User
           Contributed Notes ausdrucken, heften, ...
        2. Ein Testscript schreiben, dass dir Auskunft über die ini-Einstellung
           - track_erros
           - Errorlevel mit error_reporting()
           - umask      mit umask()
           gibt und den Inhalt von $php_errormsg ausgibt.
        3. Das gleiche nochmal, machdem
           <?php
             ini_set("track_errors",1);
             error_reporting(E_ALL);
             $umask = umask(0000);   # Umask arbeitet genau komplementär zu
                                     # chmod(), beide Funktioonen/Werte
                                     # ergeben zusmamen die verfügbaren Rechte
             # ...
             # ...     hier Deine Verzeichnisoperationen

        echo $php_errormsg;

        ?>

        Und dann kannst Du nach dem mkdir() immer noch chmod() und chgrp()
        verwenden. Schau Dir an, wer der Eigentümer des Files geworden ist und
        welche Gruppen darauf zugreifen dürfen.

        Anschließend kannst Du dich in den safe_mode von PHP reinlesen. Dazu googlest Du einfach mal und liest Dir
        [http://de.php.net/features.safe-mode] durch.

        300 Euro bitte *gg*

        Liebe Grüße aus http://www.braunschweig.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        1. Hello,

          Hello,

          Mh, er schreibt halt nur das keine Berechtigung hat, aber das wußte ich ja schon vorher ;)

          Du  meinstest das zu wissen. Es handelt sich um zwei verschiedene Rechtesysteme. Das lässt sich auch nicht in einem Satz erklären.

          weiß keiner einen rat. Kann es sein das mein Server ( Webspaceanbiert) es nicht erlaubt via Php ornder mit den Rechten 777 anzulegen ???

          Hat der Providerserver Dir denn überhaupt erlaubt, ein Directory anzulegen?

          Du brauchst:

          http://de.php.net/manual/de/function.mkdir.php
          http://de.php.net/manual/de/function.umask.php
          http://de.php.net/manual/de/function.chmod.php
          http://de.php.net/operators.errorcontrol
            davon $php_errormsg und track_errors
          http://de.php.net/manual/de/ref.errorfunc.php#ini.track-errors
          http://de3.php.net/error_reporting
          http://de3.php.net/ini_get
          http://de2.php.net/ini_set

          Und die Information, dass mkdir() wahrscheinlich die eingestellte umask() achtet.

          Und hier der Fahrplan, wie Du vorgehst:

          1. Alle von mir referenzierten Seiten runterladen bzw. mit User
               Contributed Notes ausdrucken, heften, ...
          2. Ein Testscript schreiben, dass dir Auskunft über die ini-Einstellung
               - track_erros
               - Errorlevel mit error_reporting()
               - umask      mit umask()
               gibt und den Inhalt von $php_errormsg ausgibt.
          3. Das gleiche nochmal, machdem
               <?php
                 ini_set("track_errors",1);
                 error_reporting(E_ALL);
                 $umask = umask(0000);   # Umask arbeitet genau komplementär zu
                                         # chmod(), beide Funktioonen/Werte
                                         # ergeben zusmamen die verfügbaren Rechte
                 # ...
                 # ...     hier Deine Verzeichnisoperationen

          echo $php_errormsg;

          ?>

          Und dann kannst Du nach dem mkdir() immer noch chmod() und chgrp()
          verwenden. Schau Dir an, wer der Eigentümer des Files geworden ist und
          welche Gruppen darauf zugreifen dürfen.

          Anschließend kannst Du dich in den safe_mode von PHP reinlesen. Dazu googlest Du einfach mal und liest Dir
          http://de.php.net/features.safe-mode durch.

          300 Euro bitte *gg*

          Liebe Grüße aus http://www.braunschweig.de

          Tom

          Liebe Grüße aus http://www.braunschweig.de

          Tom

          --
          Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen