Upload direkt per Apache via php

Alles, was PHP betrifft, kann hier besprochen werden.

Upload direkt per Apache via php

Postby m4st0r » 21. September 2006 10:46

Ich habe ein Script, aber habe das Problem das es nicht richtig funktioniert...aber liegt meiner Meinung nach am Apache irgendwie , weil auf nem andern Webserver funktioniert es....

Der code sieht folgendermassen aus

Code: Select all
<?
                                                                                         
                                                                     
                                                                                       
                                   
 $picdir = "pics";             // Originalgrafiken                                         
 $thumbdir = "thumbs";         // Vorschaugrafiken                                         
                                                                                           
                                                       
 $height = "100";                                                                           
                                                                                           
                                               
                                                                                           
 $zusatz = "_klein";                                                                       
                                                                                         
                                                     
 $newext = "jpg";                                                                           
                                                                                   

         if(!isset($DEFAULTS))
                echo "<html><head><title>Upload that shit!</title></head><body link='#006600' alink='#006600' vlink='#FF0000' scroll='auto'>";

        $array = explode (".",$file_name);
        $filename = $array[0];
        $extension = strtolower($array[1]);

        if($file_name == "")
         {
                echo "<b>Bitte eine Datei auswählen</b>";
         }
        else
         {
                if(!(($extension == jpe) or ($extension == jpg) or ($extension == jpeg)))
                 {
                        echo"<font color=#FF0000><b>Die ausgewählte Datei ist keine gültige JPEG-Datei</b></font>";
                 }
                else
                 {
                        if($newname == "")
                         {
                                $smallimage = "$thumbdir"."/"."$filename"."$zusatz"."."."$newext";
                                $original = "$picdir"."/"."$filename"."."."$newext";
                         }
                        else
                         {
                                $filename = $newname;
                                $smallimage = "$thumbdir"."/"."$newname"."$zusatz"."."."$newext";
                                $original = "$picdir"."/"."$newname"."."."$newext";
                         }
                       
                        if(file_exists($original))
                         {
                                echo"<font color=#FF0000><b>Eine Datei mit diesem Namen existiert bereits auf dem Server !</b></font>";
                         }
                        else
                         {
                                @copy($file, "$picdir/$filename"."."."$newext");
                                echo "<font color=#006600><b>Die Datei wurde auf den Server übertragen !</b></font>";
                                if(@copy($file,"$thumbdir/$filename$zusatz"."."."$newext"));
                                       
                                if(file_exists($smallimage))
                                 {
                                        $image = imagecreatefromjpeg("$smallimage");
                                        $ywert=imagesy($image);
                                        $xwert=imagesx($image);

                                        if($xwert > $ywert)
                                         {
                                                $verh = $xwert / $ywert;
                                                $newheight = $height;
                                                $newwidth = $newheight * $verh;
                                         }
                                        else
                                         {
                                                $verh = $ywert / $xwert;
                                                $newheight = $height;
                                                $newwidth = $newheight / $verh;
                                         }

                                        $destimage = imagecreate($newwidth,$newheight);
                                        imagecopyresized($destimage, $image, 0,   0,   0,   0, $newwidth, $newheight,$xwert,$ywert);
                                        imagejpeg($destimage,$smallimage);
                                 }
                         }
                 }
         }
             
?>

<table bgcolor="#FFFFFF" width="100%">
 <tr>
  <td>
   <form method="POST" action="<?php echo $PHP_SELF ?>" enctype="multipart/form-data">
    <input type=file name=file size=25><br>
    <input type=text name=newname size=20> <b>Neuer Dateiname</b> (OHNE Endung !!!)
    <br>       
    <button name="upload" type="submit">Upload</button>
   </form><div align="center"><font face="verdana, arial, helvetica, sans-serif" size="1" color="#666666">
   <b>UpLoaD that sh1t !!</b><br>
   </font>
   </div>
  </td>
 <tr>
</table>
<hr color="#006600">
<br>

<?

        if(isset($original))
         {
                echo "<font color='#006600' face='verdana, arial' size='2'><b>Vorschau</b></font><br><br>
                <b>Thumbnail &raquo; <i>".$smallimage."</i></b><br><img src=".$smallimage."><br><br>
                <b>Original &raquo; <i>".$original."</i></b><br><img src=".$original.">";
         }
        if(!isset($DEFAULTS))
                echo "</body></html>";
?>


Die Berechtigung der Ordner liegen beide auf 777

könnte es an der httpd.conf liegen?

thx

m4st0r
m4st0r
 
Posts: 4
Joined: 21. September 2006 10:33

Postby Wiedmann » 21. September 2006 12:13

aber habe das Problem das es nicht richtig funktioniert...

Wieso funktinoiert es nicht richtig? Bzw. was passiert (nicht). Na die üblichen Infos halt...

aber liegt meiner Meinung nach am Apache irgendwie

Irgendwie hab ich eher die Vermutung das es am Script liegt (auch wenn es auf manchen Servern "irgendwie" tun mag).

Ohne das Script näher anzuschauen, zeigt schon ein erster Blick, dass in Zeile 20 schonmal der Wurm drin ist (ausser die leeren Zeilen hier enthalten im Orginal noch irgendwelchen Code).
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby m4st0r » 22. September 2006 18:15

hmmm....also das Script funktioniert auf dem einen Webserver bei dem ich Webspace habe....
Nur bei mir zuhause hab ich ja das selbe Script am laufen und es geht einfach nicht...am Code liegt es definitiv nicht...daher hab ich gefragt ob es vielleicht in der httpd.conf irgendwelche einstellung gibt die das erlaubt??
und warum es auf dem einen Webserver nicht geht...es zeigt mir einfach nix an bzw wenn ich nen Bild hochlade bleibt er auf der Seite und führt es nicht aus, jedoch auf dem anderen Webserver schon.....
thx
m4st0r
 
Posts: 4
Joined: 21. September 2006 10:33

Postby Wiedmann » 22. September 2006 19:25

also das Script funktioniert auf dem einen Webserver bei dem ich Webspace habe....

Das ist Zufall das es dort tut.

am Code liegt es definitiv nicht...

Du hast aber schon meine Antwort gelesen, dass es mindestens in Zeile 20 ein Problem gibt? (weiter hab ich mir dann das Script nicht mehr angeschaut.)

Mach einfach am Anfang deiner Scripte ein:
Code: Select all
error_reporting(E_ALL);

rein und korrigieren die Fehler welche dir angezeigt werden.

BTW:
Hast du dir auch schonmal im PHP-Manual das Kapitel über Dateiuploads angeschaut?
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby m4st0r » 23. September 2006 17:02

hmm zufall?

also folgende Meldung krieg ich jetzt wenn ich die index.php aufrufe...
Code: Select all
Notice: Undefined variable: file_name in /var/www/cokenase/bilda/index.php on line 23

Notice: Undefined offset: 1 in /var/www/cokenase/bilda/index.php on line 25

Notice: Undefined variable: file_name in /var/www/cokenase/bilda/index.php on line 27


hmm also meinst du es liegt am code? aber wieso gehts auf dem anderen webserver? gibt es solche zufälle? ;) ich mein der code is ja 1:1

thx
m4st0r
 
Posts: 4
Joined: 21. September 2006 10:33

Postby Wiedmann » 23. September 2006 18:26

hmm also meinst du es liegt am code?

Ja, siehst du ja selbst. Oder woher meinst du kommen diese Meldungen?

aber wieso gehts auf dem anderen webserver? gibt es solche zufälle?

Eben weil dein Onlinewebserver zufällig eine Option aktiviert hat, und dein Code damit läuft. Normal ist diese Option halt nicht aktiviert (auf einem korrekt eingerichtetetn Server).
--> wie schon gesagt: Schaú im Manual nach wie Uploads funktionieren, dann tut es auf jeden Fall und immer.

ich mein der code is ja 1:1

Und im Prinzip "falsch" (demnächst geht das gar nicht mehr so)
--> korrigiere deinen Code.
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby m4st0r » 30. September 2006 09:30

mhh ich hab auch paar andere scripts benutzt die ja funktionieren sollten....
aber keines von denen geht...irgendwie will der die dateien nicht hochladen, kann es sein das es gewisse einstellungen gibt in der httpd.conf und/oder php.ini?
file_upload ist an....

thx
m4st0r
 
Posts: 4
Joined: 21. September 2006 10:33

Postby nullplan » 30. September 2006 17:10

Hi all,
ich habe den Fehler gefunden: Normalerweise ist in der php.ini die Option register_globals ja auf off gestellt. (Mach die jetzt bloß nicht an. Von ihr Gebrauch zu machen ist abgrundtief schlechtester Programmierstil, da sie zuletzt in PHP3 gebraucht wurde) Auf deinem Web-Space-Server ist die eben aus Kompatibilitätsgründen noch an (wer verwendet heutzutage noch PHP3-Scripts???). Deine Notice wegen file_name kommt dadurch, dass du diese Variable nicht definiert hast und PHP das auch nicht für dich getan hat. Guck mal unter http://www.php.net/manual/en/language.v ... efined.php , welche der dort aufgeführten Variablen wohl die gewünschte Info enthalten könnte. (Nein, ich löse das nicht auf, weil du auch irgend so eine graue Masse zwischen deinen Ohren schwimmen hast, und du lernen sollst, von ihr Gebrauch zu machen. Diese Aktivität ist nicht staatlich sanktioniert und führt nach Aussagen führender Mediziner nicht zu körperlichen Schmerzen (im Gegensatz zur Nicht-Benutzung eben jener Masse, weil irgendwann eine genervte Meute Forenbenutzer an deiner Tür klopfen könnte... ;-) ))
Tschö,
nullplan
Lernen ohne zu denken ist sinnlos, aber denken ohne zu lernen ist gefährlich. - Konfuzius
nullplan
 
Posts: 22
Joined: 14. May 2006 10:19


Return to PHP

Who is online

Users browsing this forum: No registered users and 2 guests