php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 09-05-2008, 15:12
Belenor
 Newbie
Links : Onlinestatus : Belenor ist offline
Registriert seit: May 2008
Beiträge: 15
Belenor ist zur Zeit noch ein unbeschriebenes Blatt
Question Funktion wird nicht aufgerufen

Hallo zusammen,

ich versuche gerade eine Bilduploadfunktion zu reparieren. Derzeit komme ich aber nicht mehr weiter.

IST-Situation:
Bild wird hochgeladen und in den Ordner kopiert. Die Funktion, welche prüfen soll, ob das Bild zu groß ist und es ggf. anpassen soll wird nicht aufgerufen und das Script beendet sich ohne eine Fehlermeldung

SOLL-Situation:
Das Bild wird hochgeladen und in einem Rutsch kopiert, ggf. verkleinert und ein Thumbnail wird erstellt und die korrekten dateinamen in eine DB eingetragen.

Folgender Code soll das realisieren:

1. Objekt erzeugung:
PHP-Code:
$bv =  new BildVerarbeitung($_FILES['datei']['tmp_name'], $_FILES['datei']['name'], 
$filebase_guildpics$filebase_guildpics_thumbs'800'); 
2. Die Funktion BildVerarbeitung:
PHP-Code:
    function BildVerarbeitung($tmpName$name$gal$thumbs,$maxSize)
    {
            
$this->pfad $gal.$name;
            
$this->pfadthumb $thumbs.$name;
            
move_uploaded_file($tmpName,$this->pfad);
            
# hier bleibt das script wohl stehen, da ich keine Debug infos aus resize(...) bekomme
            
$this->resize($this->pfad,$this->pfad$maxSize);
            
$this->resize($this->pfad,$this->pfadthumb,150);     
    } 
3. Kopf von resize:

PHP-Code:
 function resize($datei,$pfad$maxGroesse
Kann mir jemand sagen was ich falsch gemacht habe?

Grüße
Belenor
Mit Zitat antworten
  #2 (permalink)  
Alt 09-05-2008, 16:14
Belenor
 Newbie
Links : Onlinestatus : Belenor ist offline
Registriert seit: May 2008
Beiträge: 15
Belenor ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Kleines Update:

Mittlerweile habe ich die Funktion BildVerarbeitung(...) in __construct(...) umbenannt und mit Zugriffsmodifikatoren ausgestattet.
Desweiteren habe ich dann vom Objekt aus versucht die resize-Funktion aufzurufen, was auch ohne Fehlermeldung nicht zu funktionieren scheint.

PHP-Code:
    public function __construct($tmpName$name$gal$thumbs,$maxSize)
    {
            
$this->pfad $gal.$name;
            
$this->pfadthumb $thumbs.$name;
            
move_uploaded_file($tmpName,$this->pfad);

Der neue Kopf von resize sieht so aus.
PHP-Code:
    public function resize($datei,$pfad$maxGroesse
An erster Stelle steht zu Debugging zwecken eine Echo anweisung, welche shcon nicht mehr ausgegeben wird.

die Aufrufe sehen wie folgt aus:
PHP-Code:
$bv =  new BildVerarbeitung($_FILES['datei']['tmp_name'], $_FILES['datei']['name'],
 
$filebase_guildpics$filebase_guildpics_thumbs800);
$bv->resize($dateiname,$filebase_guildpics,800);
$bv->resize($dateiname$filebase_guildpics_thumbs150); 
Habe irgendwie grad nen ganzen Bretter-Wald vor dem Kopf glaube ich.

EDIT: Was mir gerade auffällt, ist, dass ich nach dem ich die Datei kopiert habe in __construct wohl nicht in das aufrufende script zurück springe. Denn nach der Objekterstellung sollte nochmals eine Debugausgabe kommen, die nicht erscheint.

Geändert von Belenor (09-05-2008 um 16:25 Uhr)
Mit Zitat antworten
  #3 (permalink)  
Alt 09-05-2008, 16:39
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Error Reporting VOLL aufgedreht? Und keine Meldungen von PHP? Und die resize-Methode aus dem Konstruktor aufzurufen geht ned?
PHP-Code:
ini_set('display_errors','1');
error_reporting(E_ALL)
public function 
__construct($tmpName$name$gal$thumbs,$maxSize)
{
   
$this->pfad $gal.$name;
   
$this->pfadthumb $thumbs.$name;
   
move_uploaded_file($tmpName,$this->pfad);
   
$this->resize(und deine Argumente);

__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #4 (permalink)  
Alt 09-05-2008, 17:07
case
 Registrierter Benutzer
Links : Onlinestatus : case ist offline
Registriert seit: Mar 2007
Beiträge: 265
case ist zur Zeit noch ein unbeschriebenes Blatt
case eine Nachricht über ICQ schicken
Standard

Hmm also ich würde ja mal darauf tippen, dass move_uploaded_file einen Fehler wirft, weil der Pfad nicht korrekt angegeben ist. Aber das ist nur eine Vermutung, da kann man natürlich noch nichts sagen, schalte dreh mal das error_reporting auf, wie jahlives es ja schon gesagt hat....
__________________
signed oder unsigned... das ist hier die Frage
Mit Zitat antworten
  #5 (permalink)  
Alt 09-05-2008, 17:41
Belenor
 Newbie
Links : Onlinestatus : Belenor ist offline
Registriert seit: May 2008
Beiträge: 15
Belenor ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Wie in dem Thread beschrieben den man zuerst lesen soll vor dem Posten hab ich folgendes am Anfang eingefügt:
PHP-Code:
error_reporting(E_ALL);
    
ini_set("display_errors"'ON'); 
Die Funktion wollte ich ja zuerst aus dem Konstruktor raus aufrufen, was aber zum gleichen verhalten führte.
Die Debugausgabe nach dem move_uploaded_file(...) wird noch ausgegeben.

EDIT:
Okay, jetzt ist die Verwirrung vollständig *grins*
Die Fehlermeldungen nochmal aufgedreht wie hier jetzt beschrieben und in der aufrufenden Datei. Jetzt sagt er mir, dass die Funktion resize() nicht definiert wäre. (???) Aber die steht doch da direkt unter __construct() mit gleichvielen Parametern...

Geändert von Belenor (09-05-2008 um 17:58 Uhr)
Mit Zitat antworten
  #6 (permalink)  
Alt 09-05-2008, 20:28
Belenor
 Newbie
Links : Onlinestatus : Belenor ist offline
Registriert seit: May 2008
Beiträge: 15
Belenor ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Erstmal Danke für die Hilfestellungen.

Hab jetzt, da mir jeglicher andere Ansatzpunkt fehlt, mal nach der Fehlermeldung gegoogled. Allerdings fand ich da hauptsächlich Standardphp-Funktionen mit dem Hinweis, dass einige Module geladen werden müßten.
Kann das in meinem Fall auch sein?
Denke mal eher nicht, weil dann ja innerhalb der Funktion ein Fehler auftreten würde. Kann mich eigentlich auch nicht vertippt haben, denn die Funktion hab ich mittels Codevervollständigung (verwende Eclipse mit dem PHP-Plugin) übernommen und dann die benötigten Parameter eingetragen.

Muß ich die Funktionen in einer bestimmten Reihenfolge in der Datei angeben?
Derzeit kommt der Konstruktor, danach die Funktion resize(), die angeblich nicht da ist, und danach noch ein paar andere...
Mit Zitat antworten
  #7 (permalink)  
Alt 09-05-2008, 20:38
combie
 PHP Expert
Links : Onlinestatus : combie ist offline
Registriert seit: May 2006
Beiträge: 3.296
combie wird schon bald berühmt werden
Standard

Nun zeige doch mal einen zusammenhängenden Ausschnitt.....
Damit man mal sieht, welchen Bock du da schießt.
__________________
Wir werden alle sterben
Mit Zitat antworten
  #8 (permalink)  
Alt 09-05-2008, 22:36
Belenor
 Newbie
Links : Onlinestatus : Belenor ist offline
Registriert seit: May 2008
Beiträge: 15
Belenor ist zur Zeit noch ein unbeschriebenes Blatt
Standard

So hier einmal der derzeit relevante Teil der Klassendefinition:
PHP-Code:
class BildVerarbeitung
{
    private 
$pfad "";
    private 
$pfadthumb "";
    
    
    public function 
__construct($tmpName$name$gal$thumbs,$maxSize)
    {
            echo 
"Bildverarbeitung läuft\n";
            
$this->pfad $gal.$name;
            
$this->pfadthumb $thumbs.$name;
            echo 
"Pfade erzeugt\n";
            echo 
$this->pfad."\n";
            echo 
$this->pfadthumb;
            echo 
"\n";
            
move_uploaded_file($tmpName,$this->pfad);
//            echo "Datei kopiert \n";
            //$this->resize($this->pfad,$this->pfad, $maxSize);
            
$this->resize($this->pfad$this->pfad,$maxSize);
//            echo "Orignalgröße angepasst";
            
$this->resize($this->pfad,$this->pfadthumb,150); 
//            echo("bilder erzeugt");
//        
    
}
    
    public function 
resize($datei,$pfad$maxGroesse)
    {
        echo
"\n Am vergrößern\n";
        
$abmessungen =getimagesize($datei);
        
$breite $abmessungen[0];
        
$hoehe $abmessungen[1]; 
        echo 
$breite." ".$hoehe;
        if(
$breite $maxGroesse OR $hoehe $maxGroesse)
        {
            if(
$breite >= $hoehe)
            {
                
$ratio $maxGroesse $breite;
            }
            else
            {
                
$ratio $maxGroesse $hoehe;
            }
            
$breite $breite $ratio;
            
$hoehe $hoehe $ratio;
            
$bild imagecreatetruecolor($breite,$hoehe);
            
imageCopyResampled($bild,$datei,0,0,0,0,$breite,$hoehe$abmessungen[0], $abmessungen[1]);
            
imageJpeg($bild$pfad);
        }
        echo (
"Bildgroesse angepasst");
    }
// hier kommen noch 2 methoden

Instanziert wird das ganze über folgende Zeile, nach dem die Datei mit der Klasse mittels require in einem try-catch-block eingebunden wird.
Der Fehler taucht wie schon gesagt, auf, sobald ich die Funktion resize in irgendeiner Form aufrufe. (sprich egal ob aus dem "Hauptscript" oder im Konstruktor)
PHP-Code:
$bv =  new BildVerarbeitung($_FILES['datei']['tmp_name'], $_FILES['datei']['name'], 
$filebase_guildpics$filebase_guildpics_thumbs800); 
Mittlerweile vermute ich aber sehr stark, dass der, für den ich das mache, irgendwas komisch installiert hat auf seinem Webserver...
Könnte das sein?
Wenn ja, wie kann ich rausfinden was das ist?
Mit Zitat antworten
  #9 (permalink)  
Alt 09-05-2008, 22:41
3DMax
 PHP Senior
Links : Onlinestatus : 3DMax ist offline
Registriert seit: Jan 2004
Beiträge: 1.916
3DMax ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von Belenor
So hier einmal der derzeit relevante Teil der Klassendefinition:
...
Instanziert wird das ganze über folgende Zeile, ...
schön und gut - vielleicht solltest du jetzt nochmal erwähnen, welchen fehler du damit erhälst.
Mit Zitat antworten
  #10 (permalink)  
Alt 09-05-2008, 22:50
PHP-Desaster
 PHP Expert
Links : Onlinestatus : PHP-Desaster ist offline
Registriert seit: Mar 2006
Beiträge: 3.105
PHP-Desaster befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Mittlerweile vermute ich aber sehr stark, dass der, für den ich das mache, irgendwas komisch installiert hat auf seinem Webserver...
Könnte das sein?
Wenn ja, wie kann ich rausfinden was das ist?
phpinfo hilft gern
Mit Zitat antworten
  #11 (permalink)  
Alt 09-05-2008, 23:07
Belenor
 Newbie
Links : Onlinestatus : Belenor ist offline
Registriert seit: May 2008
Beiträge: 15
Belenor ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Also die Fehlermeldung (wie ich es schon weiter oben erwähnt habe ) ist FATAL ERROR: Call to undefined function resize() at ...

Die Frage ist, auf was muß ich bei phpinfo() achten?
Hab kein Plan, was man da tun muß um sowas kaputt zu machen .
Mit Zitat antworten
  #12 (permalink)  
Alt 09-05-2008, 23:44
3DMax
 PHP Senior
Links : Onlinestatus : 3DMax ist offline
Registriert seit: Jan 2004
Beiträge: 1.916
3DMax ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von Belenor
Also die Fehlermeldung (wie ich es schon weiter oben erwähnt habe ) ist FATAL ERROR: Call to undefined function resize() at ...
aber nicht bei deinem letzten code, hab's gerade ausprobiert.

vielleicht gibt das "at ... " mehr aufschluss?
Mit Zitat antworten
  #13 (permalink)  
Alt 09-05-2008, 23:53
Belenor
 Newbie
Links : Onlinestatus : Belenor ist offline
Registriert seit: May 2008
Beiträge: 15
Belenor ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Doch genau mit diesem Code.
nach dem at kommt der Pfad zum Speicherort folgender Datei:
"BildVerarbeitung.php on line 27"
Line 27 ist bei mir, inkl. dem include einer config.php zu beginn genau die Zeile in der die Funktion resize aufgerufen wird.

Auf was für einem System hast du denn getestet, wenn ich fragen darf?
Auf dem Server, an den ich gebunden bin, läuft irgend ein Suse mit PHP 5.1.2.

Find's schön, wenn ich Fehler finde, die nur bei mir auftreten *Grins* Macht mich zu was besonderem *lach*

Geändert von Belenor (10-05-2008 um 00:00 Uhr)
Mit Zitat antworten
  #14 (permalink)  
Alt 10-05-2008, 01:17
3DMax
 PHP Senior
Links : Onlinestatus : 3DMax ist offline
Registriert seit: Jan 2004
Beiträge: 1.916
3DMax ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von Belenor
nach dem at kommt der Pfad zum Speicherort folgender Datei:
"BildVerarbeitung.php on line 27"
Line 27 ist bei mir, inkl. dem include einer config.php zu beginn genau die Zeile in der die Funktion resize aufgerufen wird.
also "BildVerarbeitung.php on line 27" entspricht der zeile im konstruktor der klasse BildVerarbeitung
, wo die methode resize() aufgerufen wird?

Zitat:
Original geschrieben von Belenor
Auf was für einem System hast du denn getestet, wenn ich fragen darf?
Auf dem Server, an den ich gebunden bin, läuft irgend ein Suse mit PHP 5.1.2.
windows xp, apache 2, php 5.2.5 läuft als cgi.

linux ist case sensitive, wobei das bei funktionen/methoden egal sein sollte - aber vielleicht liegt da doch der fehler!?
Mit Zitat antworten
  #15 (permalink)  
Alt 10-05-2008, 01:18
combie
 PHP Expert
Links : Onlinestatus : combie ist offline
Registriert seit: May 2006
Beiträge: 3.296
combie wird schon bald berühmt werden
Standard

Resize ist eine Methode und keine Funktion!
Von daher postest du die falsche Meldung.
Oder du schießt weiterhin einen Bock den du uns verheimlichst.



Zitat:
*Grins* Macht mich zu was besonderem *lach*
Auch wenn du es lustig findest. Es hat nichts mit der PHP Version oder dem Server zu tun..
Du baust einfach nur Mist
__________________
Wir werden alle sterben
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 15:34 Uhr.