Antworten auf deine Fragen:
Neues Thema erstellen

Script funktioniert local aber online nicht

Fugel

rebmeM

PSD Beta Team
Hallo Leute,

ich habe mir folgendes Script gebaut:

PHP:
function thumbnailCreator($ordner){
    if(is_dir('bilder/gallerien/thumb/'.$ordner.'/') == FALSE){
        mkdir('bilder/gallerien/thumb/'.$ordner.'/');
    }
    $images = glob('bilder/gallerien/original/'.$ordner.'/*.jpg');
    $thumbs = glob('bilder/gallerien/thumb/'.$ordner.'/*.jpg');

    $images = array_map('basename', $images);
    $thumbs = array_map('basename', $thumbs);

    $ohne_image = array_diff($thumbs, $images);
    $ohne_thumb = array_diff($images, $thumbs);

    //Erstellt ein neues thumbnail wenn zum Original kein bereits vorhandenes gefunden wurde
    foreach ($ohne_thumb as $value){
        $w = 220;
        $h = 68;
        $image = "bilder/gallerien/original/".$ordner."/".$value;
        $sizes = getimagesize($image);
        $img = imagecreatefromjpeg($image);
        $original_w = $sizes[0];
        $original_h = $sizes[1];
        $left = $original_w-$w;
        $top = $original_h-$h;
        $left = ceil($left/2);
        $top = ceil($top/2);
        $old_img = $img;
        $img = imagecreatetruecolor($w,$h);
        imagecopy($img,$old_img,0,0,$left,$top,$w,$h);
        imagejpeg($img,"bilder/gallerien/thumb/".$ordner."/".$value,100);
    }
    //Löscht das Thumbnail wenn kein passendes Original gefunden wurde
    foreach ($ohne_image as $value2){
        unlink("bilder/gallerien/thumb/".$ordner."/".$value2);
    }
}

Das Script soll mir alle Bilder aus einem Ordner in einen neuen Ordner verkleinert ablegen...

Local funktioniert alles, nur online kopiert er mir die Bilder nur dann in das neue Verzeichniss wenn bereits irgendein Bild vorhanden ist.

Jemand ne Idee woran es liegt?
 

Duddle

Posting-Frequenz: 14µHz

AW: Script funktioniert local aber online nicht

Entweder findet er das notwendige Verzeichnis nicht oder er darf die notwendige Operation nicht ausführen.

Achte darauf, dass Groß- und Kleinschreibung bei unixoiden Betriebssystemen unterschieden werden, d.h. "bilder/gallerien" ist nicht gleich "bilder/Gallerien". Schau dir ausserdem die Ordnerberechtigungen an: wenn dein Nutzer (wahrscheinlich der Webserver selbst) dort nicht schreiben darf, kommt es zum Fehler.

Falls das nicht hilft, bau dir Debug-Meldungen ein, damit du siehst was das Script wann machen will. So kannst du dem Problem auf die Spur kommen.


Duddle
 

Fugel

rebmeM

PSD Beta Team
AW: Script funktioniert local aber online nicht

groß und kleinschreibung kann ich ausschließen, den betreffenden ordnern habe ich zum test bereits die rechte 777 gegeben. das komische is ja das sobald ein bild im ordner thumb/ordner ist er dieses löscht und alle richtigen bilder rein schreibt.
 

Duddle

Posting-Frequenz: 14µHz

AW: Script funktioniert local aber online nicht

Dann aktiviere die Fehlerausgaben mit error_reporting(E_ALL); und bau dir zwischendurch ein paar Ausgaben ein. Offenbar liegt das Problem am Server / Umfeld, daher musst du manuell nachvollziehen wann er genau vom erwarteten Weg abweicht.


Duddle
 

tr4ze

Mod | Forum

Teammitglied
PSD Beta Team
AW: Script funktioniert local aber online nicht

Das liegt daran das du zwischen "dir" als Benutzer und dem Server als Benutzer unterscheiden musst.
Legst du einen Ordner an, gehört er dir. Legt der Server einen Ordner an gehört er dem Benutzer Server (z.B. apache).
Darf der Benutzer Server keinen Ordner anlegen funktioniert dein Skript nicht.

Es gibt Möglichkeiten z.B. die Rechte von Server Ordnern die in einem normalen Benutzer Ordner erstellt wurden automatisch zu übertragen, ob das bei dir möglich ist sollte dir dein Hoster beantworten können.
 

Duddle

Posting-Frequenz: 14µHz

AW: Script funktioniert local aber online nicht

Aber er sagt doch, dass die Rechte für den Testordner auf 777 sind, also darf jeder alles machen. Der Besitzer ist in diesem Fall egal.


Duddle
 

tr4ze

Mod | Forum

Teammitglied
PSD Beta Team
AW: Script funktioniert local aber online nicht

Aber er sagt doch, dass die Rechte für den Testordner auf 777 sind, also darf jeder alles machen. Der Besitzer ist in diesem Fall egal.


Duddle
Richtig und es funktioniert, aber das ist ja sowieso sein Ordner. Er hat ihn erstellt, er ist der Besitzer.
Ein PHP-Script wird aber nicht unter seinen Rechten ausgeführt sondern z.B. unter www-data (das ist der apache höchst selbst).
Hat nun der admin dem user www-data(apache) auf user-root Verzeichnissen keine Schreibrechte gegeben (was häufig vorkommt) wird das Script schon dort abgebrochen.
Das es in einem Unterordner von User-Root funktioniert ist übrigens ein weitere beliebte Einstellung bei Hostern.

Einstellen lässt sich das in der Server config.
Weiterhelfen kann ihm da nur sein Hoster(Ich hoffe er hat einen).
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.635
Beiträge
1.538.453
Mitglieder
67.557
Neuestes Mitglied
Charal
Oben