SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Das Zend Framework

Das Zend Framework zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen
Hilfe Community Kalender Heutige Beiträge Suchen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 16.02.2009, 15:12:28
digilab digilab ist offline
Anfänger
 
Registriert seit: Feb 2009
Alter: 46
Beiträge: 5
Upload Script CHMOD

Hallo zusammen,

ich hab hier glaube ich ein kleines problem bzw einen denkfehler. Lokal funtioniert das Script einwandfrei. Doch online hatte ich anfangs schwierigkeiten mit dem CHMOD. Nachdem ich das script ein wenig modifiziert hab, hat auch der CHMOD Befehl funktioniert. Doch die upgeloadete Datei wird nicht in den dafür entsprechenden ordner verschoben nach dem zuschneiden. Hab schon entliche Versuche gestartet und komme nicht weiter. Vielleicht hat mir hier jemand nen Tip wie ich diese Problem lösen kann.

Das CHMOD Attribut der geschrieben Datei auf dem Server sieht folgendermasen aus:

-rwxr-xr-x

Das sollte doch passen oder ? CHMOD 755..

Vielen Dank schon mal für eure Tips bzw. Lösungsvorschläge...

Beste Grüße

Digilab

Upload Script:

PHP-Code:
<?PHP

require_once("classes/image/imageprocessing.php"); //loading resizer class


writeLog("test 1");

/*** YOUR PARAMS ****/
$repertoireDestination="upload/";
$extension_permise=array(".jpg",".gif",".png",".pdf",".rtf",".png");
$nomDestination=goodname($_FILES["Filedata"]["name"]);
$namePrefix prefixname($_FILES["Filedata"]["name"]);

/****put your verifiction session here ****/
if ($_POST['projectID']!="e682#fU")
{
    
header("HTTP/1.0 401 Zugriff verweigert! (Authentifizierung fehlgeschlagen!)");
    exit;
}

if (
is_uploaded_file($_FILES["Filedata"]["tmp_name"]))

{

    
chmod ($_FILES["Filedata"]["tmp_name"], 0755);
    
    
//$resizedImage = new imageProcessing($_FILES["Filedata"]["tmp_name"]);
    //$resizedImage = new imageProcessing("C:\Programme\WAMP\www\upload\spider1.jpg", 2880);
    //$resizedImage = new imageProcessing($_FILES["Filedata"]["name"], "/upload/", "/upload/small/", 2880);

    
$detecttype=return_type(Autodetect_file_type());
    if(!
in_array($detecttype,$extension_permise))
    {
        
header("HTTP/1.0 415 Nicht unterstütztes Medienformat!");
        exit;
    }

    if (
rename($_FILES["Filedata"]["tmp_name"],$repertoireDestination.$nomDestination))
    {
        
//resize original file to small
        
$resizedImage = new imageProcessing(goodname($_FILES["Filedata"]["name"]), "/upload/""/upload/2880max/"2880);

        
header("HTTP/1.0 200");
        exit;
    }
    else
    {
        
header("HTTP/1.0 500 Not found");
        exit;
    }

chmod ($_FILES["Filedata"]["name"], 0755);

} else {
    switch(
$_FILES["Filedata"]["error"]){
        case 
0//no error; possible file attack!
          
writeLog("There was a problem with your upload.");
          break;
        case 
1//uploaded file exceeds the upload_max_filesize directive in php.ini
          
writeLog("The file you are trying to upload is too big.");
          break;
        case 
2//uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the html form
          
writeLog("The file you are trying to upload is too big.");
          break;
        case 
3//uploaded file was only partially uploaded
          
writeLog("The file you are trying upload was only partially uploaded.");
          break;
        case 
4//no file was uploaded
          
writeLog("You must select an image for upload.");
          break;
        default: 
//a default error, just in case!  :)
          
writeLog("There was a problem with your upload. Error " $HTTP_POST_FILES['userfile']['error'] . ".");
          break;
    }
    
header("HTTP/1.0 404");
    exit;
}

/**********************************************************/
function return_type($testfiletpe)
{
        
$nom 'votre_image.jpg';
        
$type str_replace('.','',strstr($testfiletpe'.'));
        
$type '.'.$type;
        return 
$type;


}

function 
Autodetect_file_type()
{
    return 
strtolower($_FILES["Filedata"]["name"]);
}

function 
goodname($filename)
{
        return 
strtr($filename,"ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ '\\*?/\"<>|&!","AAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn____________" ) ;

}

function 
prefixname($filename)
{
    
$prefix "test_";
    return (
$prefix $filename);

}

function 
writeLog($text) {
    
$text $text "\n";
    
$dateiname "error_log.txt"// Name der Datei
    
$handler fOpen($dateiname "a+"); // Datei öffnen, wenn nicht vorhanden dann wird die Datei erstellt.
    
fWrite($handler $text); // Dateiinhalt in die Datei schreiben
    
fClose($handler); // Datei schließen

}
?>
Mit Zitat antworten
  #2  
Alt 16.02.2009, 15:13:35
digilab digilab ist offline
Anfänger
 
Registriert seit: Feb 2009
Alter: 46
Beiträge: 5
AW: Upload Script CHMOD

und das Imageprocessing.php... da sollte aber alles passen:

PHP-Code:
<?php
/**
**Image Processing class for resizing the image once the parameters are recorded. The image is resized but not saved yet.
**The image saving is done at the end where the object is created and called from
**Creating true color template for the new image to maintain the quality of the image
**/
    
class imageProcessing {
        var 
$imageSizeX;
        var 
$imageSizeY;
        var 
$resizeX;
        var 
$resizeY;
        var 
$reduction;
        var 
$fileName;
        var 
$sourceDir;
        var 
$targetDir;
        var 
$sourceFilePath;
        var 
$targetFilePath;
        var 
$msg;
        var 
$image;
        var 
$imageType;

    
/**
    * Konstruktor (Objekt der Klasse erzeugen)
    */
    
function __construct($imgName$sourceDir$targetDir$red=300) {
        
writeLog("constructor!");
        
$this->sourceDir $sourceDir;
        
$this->targetDir $targetDir//store target dir
        
$this->sourceFilePath $sourceDir $imgName;
        
$this->targetFilePath $targetDir $imgName;

        
writeLog("realpath " $this->sourceDir ", " .  realpath("." $this->sourceDir));

        
$this->sourceFilePath realpath("." $this->sourceDir) . "\\" $imgName;
        
$this->targetFilePath realpath("." $this->targetDir) . "\\" $imgName;
        
writeLog("image processing with file " $this->sourceFilePath " to " $this->targetFilePath);

        
$this->startProcessing($this->sourceFilePath$red);

    }


/**
** Class constructor to initialize the processing
**/

        //function imageProcessing($imgName,$red=300) {
        
function startProcessing($imgName,$red=300) {
            
$this->reduction=$red;
            if(
is_file($imgName)){
                if(
file_exists($imgName)){
                    
$this->fileName=$imgName;
                    
$this->getSize();
                    
$this->setSize();
                    
/*print $this->imageSizeX."==>".$this->resizeX."<br>";
                    print $this->imageSizeY."==>".$this->resizeY."<br>";
                    */
                    
writeLog($this->imageSizeX."==>".$this->resizeX );
                    
writeLog($this->imageSizeY."==>".$this->resizeY );
                    
$this->resizeIt();
                    
//$this->saveImage($imgName);
                    
$this->saveImage($this->targetFilePath);

                }else{
                    
$this->errorState(0);
                }
            }else{
                
$this->errorState(2);
            }
        }

/**
** Function to set target size for the final image
** This size is based on the aspect ratio of the actual image to maintain the image clarity
**/
        
function setSize(){
            if(
$this->imageSizeY<=$this->imageSizeX){
                
$ratio=$this->imageSizeY/$this->imageSizeX;
                
$this->resizeX=$this->reduction;
                
$this->resizeY=round($ratio*$this->reduction);
            }else{
                
$ratio=$this->imageSizeX/$this->imageSizeY;
                
$this->resizeY=$this->reduction;
                
$this->resizeX=round($ratio*$this->reduction);
            }
        }

/**
** Function to identify the image and set the image quality for JPEG images
**
**/
        
function saveImage($imgName){
            switch (
$this->imageType){
                case 
"gif":
                    
imagegif($this->image,$imgName);
                    break;
                case 
"jpg":
                    
imagejpeg($this->image,$imgName,100);
                    break;
                case 
"png":
                    
imagepng($this->image,$imgName);
                    break;
            }
        }


/**
**Function for fetching the parameters of the image. Identifying image type.
**/
        
function getSize(){
            
$imgParams=getimagesize($this->fileName);
            
$this->imageSizeX=$imgParams[0];
            
$this->imageSizeY=$imgParams[1];

            try {

                switch(
$imgParams[2]){
                    case 
1:
                        
$this->imageType="gif";
                        
$this->image imagecreatefromgif($this->fileName);
                        break;

                    case 
2:
                        
$this->imageType="jpg";
                        
$this->image imagecreatefromjpeg($this->fileName);
                        break;

                    case 
3:
                        
$this->imageType="png";
                        
$this->image imagecreatefrompng($this->fileName);
                        break;

                    default:
                        
writeLog("error getSize!");
                        
$this->errorState(1);
                }

            } catch (
exception $e) {
                
writeLog("exception: " $e);
            }


        }

/**
**Function for resizing the image once the parameters are recorded. The image is resized but not saved yet.
**Creating true color template for the new image to maintain the quality of the image
**/
        
function resizeIt(){

            if(
$this->imageSizeX<=$this->resizeX){
                
$this->resizeX=$this->imageSizeX;
            }

            if(
$this->imageSizeY<=$this->resizeY){
                
$this->resizeY=$this->imageSizeY;
            }
            
$copy=imagecreatetruecolor($this->resizeX,$this->resizeY);
            if(
$copy){
                if(
imagecopyresampled($copy,$this->image,0,0,0,0,$this->resizeX,$this->resizeY,$this->imageSizeX,$this->imageSizeY)){
                    if(
imagedestroy($this->image)){
                        
$this->image=$copy;
                    }else{
                        
$this->errorState(6);
                    }
                }else{
                    
$this->errorState(4);
                }
            }else{
                
$this->errorState(5);
            }
        }

/**
**Function for error and displaying error messages.
**/
        
function errorState($err){
            
writeLog("error state reached!");
            switch (
$err){
                case 
0:
                    
$this->msg="File Not Found.";
                    break;
                case 
1:
                    
$this->msg="Invalid File Type.";
                    break;
                case 
2:
                    
$this->msg="Invalid Input.";
                    break;
                case 
3:
                    
$this->msg="Could Not Save.";
                    break;
                case 
4:
                    
$this->msg="Could not Create Image.";
                    break;
                case 
5:
                    
$this->msg="Could not Create Blank File.";
                    break;
                case 
6:
                    
$this->msg="Unable to Destroy Old File.";
                    break;
            }

            
//print $this->msg;
            
writeLog($this->msg);
            exit();
        }

        
//tom
        
function writeLog($text) {
            
$text $text "\n";
            
$dateiname "error_log2.txt"// Name der Datei
            
$handler fOpen($dateiname "a+"); // Datei öffnen, wenn nicht vorhanden dann wird die Datei erstellt.
            
fWrite($handler $text); // Dateiinhalt in die Datei schreiben
            
fClose($handler); // Datei schließen

        
}



    }



/***
** Object creation and processing the image
***/
    //$img=new imageProcessing("Copy of DSC00083.jpg"); // replace with the image name or the variable containing the file name
?>
Mit Zitat antworten
  #3  
Alt 17.02.2009, 22:49:02
digilab digilab ist offline
Anfänger
 
Registriert seit: Feb 2009
Alter: 46
Beiträge: 5
AW: Upload Script CHMOD

Keiner ne Idee ??? Ich verzweifel fast... hab heute wieder 4 stunden rumprobiert... :-(
Mit Zitat antworten
  #4  
Alt 17.02.2009, 23:05:17
DokuLeseHemmung DokuLeseHemmung ist offline
SELFPHP Experte
 
Registriert seit: Jun 2008
Alter: 15
Beiträge: 2.269
AW: Upload Script CHMOD

Also, mir ist das viel zu viel!
Und warum eine Datei im Tempordner unbedingt Ausführen Rechte braucht ist mir auch völlig schleierhaft. Es sei denn du willst da irgendwelche Trojaner oder Rootkits instalieren.

Ausserdem sehe ich da kein error_reporting().
Warum nicht?
Mit Zitat antworten
  #5  
Alt 18.02.2009, 13:55:35
digilab digilab ist offline
Anfänger
 
Registriert seit: Feb 2009
Alter: 46
Beiträge: 5
AW: Upload Script CHMOD

Hallo,

wieso schleierhaft... Die Bilddatei wird per uploadscript in den ordner upload gespeichert. Da mein Serveranbieter die rechte automatisch auf 600 und nochwas setzt muss ich die datei mit einem neuen CHMOD versehen. Wie gesagt das funktioniert ja... Nur sollte die Temp Datei nach dem zuschneiden in den ordner 2880max verschoben werden, wo sie dann von einem flash bildbearbeitungsprogramm gelesen wird... Und das wird eben nicht gemacht... Hat jetzt aber nichts mit dem CHMOD zu tun ist mir gerade aufgefallen, sondern an den Pfadangaben im imageprocessing.php. Statt "//" stand "\\". Das wars ... so ein Mist...

Hab das Prob nun selber gelöst.. Trotzdem danke...

Mit Trojanern oder Viren hat die ganze Geschichte nix zu tun...

Beste Grüße

Digilab
Mit Zitat antworten
  #6  
Alt 18.02.2009, 13:59:32
digilab digilab ist offline
Anfänger
 
Registriert seit: Feb 2009
Alter: 46
Beiträge: 5
AW: Upload Script CHMOD

Manchmal sieht man vor lauter Wald die Bäume kaum... ;-)



SOLVED
Mit Zitat antworten
  #7  
Alt 18.02.2009, 16:23:35
DokuLeseHemmung DokuLeseHemmung ist offline
SELFPHP Experte
 
Registriert seit: Jun 2008
Alter: 15
Beiträge: 2.269
AW: Upload Script CHMOD

Zitat:
wieso schleierhaft...
Du gibst den Dateien unnötigerweise Execute(ausführen) Rechte! Und das im tmp Ordner, wo jeder User des Systems einfach so dran kommt. Niemand, aber auch wirklich niemand darf hochgeladenen Dateien ausführen können. Du reißt damit eine riesen Sicherheitslücke auf. Auch wenn sie bei dir nicht unmittelbar zum tragen kommt, kann sie sich doch irgendwann zu einer tötlichen Falle entwickeln.

Du betreibst sehenden Auges, und trotz Warnung, softwartechnischen Selbstmord.
Das kann ich nicht unwiedersprochen stehen lassen. Vor allen Dingen nicht, weil u.U. tausende von unbedarften Usern evtl. diesen Thread lesen und dann in die selbe Falle tapsen.

0600 Heißt: Der Eigentümer darf lesen und schreiben
Wenn 0640 nicht reicht, dann ist der Provider in der Pflicht das System auf Vordermann zu bringen.


Siehe dazu auch:
http://de.linwiki.org/wiki/Linuxfibe...Zugriffsrechte
http://de.linwiki.org/wiki/Linuxfibe...tte_-_Eigentum

Geändert von DokuLeseHemmung (18.02.2009 um 16:31:01 Uhr)
Mit Zitat antworten
Antwort


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

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 aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
upload script driver PHP Grundlagen 6 21.06.2007 14:26:10
Ein Upload script basteln rsciw PHP Grundlagen 4 29.08.2006 14:49:13
Upload Script Frage! ZeroxXx PHP Grundlagen 35 13.07.2006 23:13:18
upload script will net wirklich uploaden Stifler PHP Grundlagen 25 10.05.2006 14:15:12
Wichtig: Upload Script auf FTP-Server und dessen Sicherheit? Supernova PHP für Fortgeschrittene und Experten 5 21.07.2004 11:41:52


Alle Zeitangaben in WEZ +2. Es ist jetzt 00:08:14 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt