Safe Mode-problem

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Safe Mode-problem

    Hallo, Leute.

    Ich habe mich hier registriert, weil ich Hilfe und Unterstützung suche.

    Ich hab ein kleines Booking und eLabel für Rockmusik im Netz, welches unter dem Namen www.church-of-noise.com läuft.

    Da ich selbst mir in anderthalb Jahren lediglich CSS und HTML in groben Basics raufgedrückt hatte, ich aber wollte, daß die Bands und die Mitarbeiter einzelne Bereiche der Seite von zu Hause aus administrieren konnten, musste natürlich ein Contentmanagement her. Ein Bekannter hat mir dieses dann gebaut, aber ich scheitere an dessen Implementierung auf dem Server.

    Ein Fehler tut sich nicht etwas auf, wenn Textinhalt wie zum Beispiel Newspunkt oder Live-Shows eingetragen werden, aber beim Bilderupload.
    Folgender Errorcode kommt an:

    Warning: mkdir(): SAFE MODE Restriction in effect. The script whose uid is 10034 is not allowed to access /var/kunden/webs/church-of/beta1/churchofnoise/bands/x owned by uid 33 in /var/kunden/webs/church-of/beta1/admin.php on line 162

    Ein Anruf bei meinem Provider ergab die nutzbringende Info, daß der SafeMode on ist und nicht ausgeschaltet werden wird (aufgrund von Sicherheitsrisiken)...wobei ich mittlerweile gelesen habe, daß dies eigentlich Quatsch ist, inweiweit dies stimmt, kann ich leider nicht beurteilen.

    Mein Problem ist, daß ich unheimlich gern die Funktionalität zum Laufen bringen will, die eigentlich nicht mal so umfangreich ist. Sechs Bands sollen 6 Seiten administrieren können. Jeweils mit Text und Bilduploads. EIne weitere wichtige Ungereimtheit für mich ist, warum der Textupload kein Problem darstellt, der Bildupload schon. Unterscheidet der Safemode hier strikt die Formate (wahrscheinlich eine totblöde Frage).

    Im Internet fand ich die These, man könnte die Bilder erst in einen sogenannten phptemp-Ordner laden lassen, von dem aus man die Datei in die Struktur hineinbewegen könnte. Für mich allessamt böhmische Dörfer.

    Momentan bin ich ganz schön verzweifelt, aber vielleicht habe ich ja bei Euch Glück. Ich stelle gern auch die Servereinsicht her und die Dateien zur Verfügung, falls es jemanden ein wenig interessieren sollte.

    Ein Betaprojekt dieser Geschichte ist auch schon on, man könnte also das Problem auch "live" erleben, um mal in meiner Fachsprache zu reden :-).

    Falls einer antworten sollte, dann wäre eine Mischung aus Fachsprache und 7-Klassen-Informatik-Unterrichtsdidaktik die ideale Mixture :-)!

    Ich danke Euch auf jeden Fall fürs Lesen. Ich hoffe auch, ich habe intuitiv das richtige Forumthema ausgewählt. einiges über den Safemode habe ich hier auch gefunden, aber leider war das schon zu tief drinnen in der Materie.

    Liebe Grüße, Micha aus Potsdam.

  • #2
    Welcome Micha!

    Erstmal zur Fehlermeldung: Für das hochgeladene Bild soll ein Ordner angelegt werden (PHP-Funktion mkdir()). Das scheitert wegen Safe Mode bzw. wegen fehlender Schreibrechte.

    Frag mal deinen Provider, wo dein Script Ordner erstellen oder wenigstens hochgeladene Dateien speichern kann. Irgendwo sollte das schon gehen, im Zweifelsfall nur im Homeverzeichnis ...

    Und ja, ein Dateiupload ist was ganz anderes als Text.

    Kommentar


    • #3
      Hi, einen herzlichen Dank für die Rückmeldung :-)!

      Ich verstehe schon ein bißchen besser, worum es geht! Habe heir einmal einen Teil des recht umfangreichen Scripts gepostet, die letzte Zeile ist die, die der Errorcode direkt anspricht. Leider finde ich hier gar keinen MakeDir Befehl, wahrscheinlicher ist es, ich habe gar keinen Plan.

      Ist es denn wahrscheinlich, daß man die Dateien dann wenigstens im Rootverzeichnis ablegen kann? Und kann man diese auch über Befehle dann wieder löschen lassen?

      Dank Dir!


      if($_GET['sublink'] == "about"){
      if($_POST['speichern']){
      $max_byte_size = 1048576;
      $allowed_types = "(jpg|jpeg|gif|bmp|png)";
      $upload_dir = "churchofnoise/bands/".$_SESSION['angemeldet']."/pictures/about/";
      if(is_uploaded_file($_FILES["data_selected"]["tmp_name"])) { // Wurde wirklich eine Datei hochgeladen?
      if(preg_match("/\." . $allowed_types . "$/i", $_FILES["data_selected"]["name"])) { // Gültige Endung? ($ = Am Ende des Dateinamens) (/i = Groß- Kleinschreibung nicht berücksichtigen)
      if($_FILES["data_selected"]["size"] < $max_byte_size) { // Datei auch nicht zu groß
      if(move_uploaded_file($_FILES["data_selected"]["tmp_name"], $upload_dir.$_FILES["data_selected"]["name"])) { // Alles OK -> Datei kopieren

      Kommentar


      • #4
        Die Fehlermeldung spricht von mkdir(), also wird der Fehler auch von dieser Funktion verursacht.
        Wenn er tatsächlich in der Zeile mit move_uploaded_file(9 getriggert wird, dann benutzt PHP im Safe Mode offenbar hintenrum noch mkdir(). Aber schon ohne Safe Mode bekommt man
        Warning: move_uploaded_file(...): failed to open stream: No such file or directory ...
        um die Ohren gehauen, wenn das Verzeichnis nicht existiert. Es wird also nicht versucht, das Verzeichnis automatisch anzulegen und ich glaube kaum, dass das gerade im Safe Mode dann doch geschieht.

        Such mal nach mkdir(), vielleicht hast du dich in der Zeile vertan.

        Btw: Entdecke die PHP-Tags dieses Forums und die Welt wird bunt.

        Kommentar


        • #5
          Das Script hat 681 Zeilen, weil mehrer Dmins mit unterschiedluchen Bereichen und Rechten definiert sind, aber scheinbar arbeitet es ohne ein einziges mkdir(). Ich fürchte, das PHP interpretiert scheinbar das move_file...ich habe mal aus Spaß an der Freude die Ordnerstruktur manuell angelegt für einen Benutzer und dann versucht, das Bild hochzuladen, leider mit der selben steten Fehlermeldung. Der nette Mensch bei toptip.net hat gemeint, man müsste das Script umschreiben, damit es im SafeMode läuft...aber jetzt mal ganz ehrlich: Geht das überhaupt, nach Allem, was man so liest,...sieht da sja ganz schön trübe aus. :-)...Lieben Gruß, Micha.

          Kommentar

          Lädt...
          X