#1 6. Oktober 2007 Zuletzt von einem Moderator bearbeitet: 14. April 2017 Xupper! Dein (fast) eigener Filehoster wieder mal was feines aus der rubrik "murdoc hat langeweile" diesmal ein script mit dem man sachen auf xup.raidrush.ws hochladen kann. aber das ganze schaut im endeffekt dann aber so aus als ob man auf die eigene seite geladen hätte. beispiel: http://85.17.162.42/murdoc/xupper/ anwendung: jetzt in der überarbeiteten version ist die handhabung ein wenig anders, aber dennoch einfach geblieben. PHP: <? php require 'class_xupper.php' ; $xupper = new mc_Xupper ; //optional kann man hier auch ein true mitsenden für multiuploads und ein zweiters true für thumbnails //jetzt erscheinen 10 fieluploadfelder $xupper = new mc_Xupper ( true ); //jetzt erscheinen 10 fieluploadfelder + es werden thumbnails gemacht $xupper = new mc_Xupper ( true , true ); //jetzt werden thumbnails gemacht, aber nur ein uploadfeld ausgegeben $xupper = new mc_Xupper ( false , true ); //zeigt das formular oder das ergebnis des uploads an $xupper -> display (); ?> bitte für eine methode der instanz entscheiden! einstellungen v1.1 $xupper->input_size mit der var kann man die breite aller inputfelder ändern. mach ich also $xupper->input_size = 100; werden alle input felder (ausgenommen buttons) mit size="100" dargestellt $xupper->fieldset_width mit dieser variablen kann man die breite der fieldsets ändern. schreibt man $xupper->fieldset_width = 100; werden alle fieldsets mit 100px breite angezeigt (bei multiuploads) die darstellung kann man aber auch via css ändern stabile version 1.1: download einstellungen v1.1.1 $xupper->group_multi damit kann man wählen ob man die files in einem multiupload gruppieren möchte. $xupper->group_multi = true; gruppiert die links, $xupper->group_multi = false; gruppier nicht $xupper->save_results hier kann man angeben ob die links geloggt werden sollen. is die variable auf true gesetzt wird jeden neuen tag ein logfile erstellt für alle fles die an diesem hochgeladen wurden (mit passwort falls angegeben). $xupper->save_dir hier kann man einen ordner angeben wo die logs gespeichert werden sollen, default ist der ordner in dem sich das script befindet. wie mache ich thumbnails? beim instanzieren! siehe (anwendung) oder via $xupper->make_thumbs(); die klasse (php 5) vorsicht beta v1.1.1 Spoiler PHP: <? php class mc_Xupper { private $_multi = false ; private $_thumb = false ; private $_result = '' ; private $_link ; //verbindungskennung private $_maxsize = 5000 ; //kb private $_maxsize_multi = 1000 ; //kb public $save_results = false ; public $save_dir = './' ; public $timeout = 0 ; public $input_size = '50' ; //breite eines text input felder (nicht buttons!) public $fieldset_width = '500' ; //breite von fieldsets public $thumb_size = 130 ; public $group_multi = false ; protected $version = '1.1.1' ; protected $autor = 'Murdoc' ; protected $copyright = 'Copyright 2007 Murdoc (murdocc3@web.de)' ; public function __construct ( $multi = false , $thumb = false ) { if( $multi !== false ) $this -> _multi = true ; if( $thumb !== false ) $this -> _thumb = true ; } public function multi_upload ( $upload = true ) { if( $upload === true ) $this -> _multi = true ; } public function make_thumbs ( $th = true ) { if( $th === true ) $this -> _thumb = true ; } public function display ( $errmsg = '' ) { if(isset( $_FILES [ 'xup' ]) && ( $_FILES [ 'xup' ][ 'error' ] == '0' || $_FILES [ 'xup' ][ 'error' ][ 0 ] == '0' )) { $timeout = (( $this -> timeout === 0 ) ? 30 : intval ( $this -> timeout )); if(!(@ $this -> _link = fsockopen ( 'xup.raidrush.ws' , 80 , $errno , $errstr , $timeout ))) user_error ( 'Kann keine Verbindung zu xup.raidrush.ws herstellen!' , E_USER_ERROR ); if( is_array ( $_FILES [ 'xup' ][ 'name' ])) { //multi if( $this -> _multi === true ) $this -> _multi_upload (); else user_error ( 'Multible Uploads sind nicht erlaubt!' , E_USER_ERROR ); } else $this -> _upload (); } else { $form = ((empty( $errmsg )) ? '' : " { $errmsg } <br />\r\n" ); $form .= '<form action="' . $_SERVER [ 'PHP_SELF' ].((isset( $_GET [ 'multi' ])) ? '?multi' : '' ). '" method="post" enctype="multipart/form-data">' . "\r\n" ; if( $this -> _multi !== true ) $form .= "\t" . '<b>File auswählen:</b> <input type="file" name="xup" size="' .( $this -> input_size - 10 ). '" />' . "\r\n" ; else { for( $i = 1 ; $i <= 10 ; $i ++) { $form .= "\t<b>File $i :</b>" .(( $i < 10 ) ? ' ' : ' ' ). '<input type="file" name="xup[' .( $i - 1 ). ']" size="' . $this -> input_size . '" /><br />' . "\r\n" ; } $form .= "\t" . '<b>Maximum Filesize per Upload:</b> 1 MB<br />' . "\r\n" ; } $form .= "\t<br />\r\n\t" . '<b>Passwort:</b>' . "\r\n" . '<input type="text" name="passw" size="' . $this -> input_size . '" /><br/>' . "\r\n" ; $form .= "\t" . '<input type="submit" value="Upload auf Xup" />' . "\r\n" ; $form .= "</form>\r\n" ; $form .= '<p align="center"><b>Murdocs Xupper ' . $this -> version . '</b><br/>' . $this -> copyright . '</p>' . "\r\n" ; print $form ; } } private function _upload () { if(!isset( $_FILES [ 'xup' ])) $this -> display ( 'Kein File angegeben' ); //sicher ist sicher else { //sollte normalerweiße garnicht hierher kommen, aber sicher is sicher if( is_array ( $_FILES [ 'xup' ][ 'name' ])) $this -> _multi_upload (); else { @ $file = file_get_contents ( $_FILES [ 'xup' ][ 'tmp_name' ]); if(! $file ) user_error ( 'Kann hochgeladenen File nicht auslesen, Uploadvorgang abgebrochen' , E_USER_ERROR ); elseif( $this -> _maxsize < ( round ( $_FILES [ 'xup' ][ 'size' ] / 1024 ))) { print 'Dieser File ist zu groß! (Elaubt: ' . $this -> _maxsize . 'KB)<br />' ; print "\r\n" . '<p align="center"><b>Murdocs Xupper ' . $this -> version . '</b><br />' . $this -> copyright . '</p>' . "\r\n" ; } else { $fileName = $_FILES [ 'xup' ][ 'name' ]; $fileType = $_FILES [ 'xup' ][ 'type' ]; unset( $_FILES ); $data = '-----------------------------123456789' . "\r\n" ; $data .= "Content-Disposition: form-data; name=\"F1\"; filename=\" { $fileName } \"\r\n" ; $data .= "Content-Type: { $fileType } \r\n" ; $data .= "\r\n" ; $data .= $file ; if(!empty( $_POST [ 'passw' ])) { $data .= "\r\n" . '-----------------------------123456789' . "\r\n" ; $data .= "Content-Disposition: form-data; name=\"passwort\";\r\n" ; $data .= "\r\n" ; $data .= $_POST [ 'passw' ]; } //thumbnails if( $this -> _thumb === true ) { if( in_array ( 'image' , explode ( '/' , $fileType ))) { $data .= "\r\n" . '-----------------------------123456789' . "\r\n" ; $data .= "Content-Disposition: form-data; name=\"make_tn\";\r\n" ; $data .= "\r\n" ; $data .= 'on' ; $data .= "\r\n" . '-----------------------------123456789' . "\r\n" ; $data .= "Content-Disposition: form-data; name=\"tn_size\";\r\n" ; $data .= "\r\n" ; $data .= $this -> thumb_size ; } } $header = 'POST /transfer.php HTTP/1.1' . "\r\n" ; $header .= 'Connection: close' . "\r\n" ; $header .= 'Host: xup.raidrush.ws' . "\r\n" ; $header .= 'User-Agent: murdocs php xupper ' . $this -> version . "\r\n" ; $header .= 'Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5' . "\r\n" ; $header .= 'Accept-Language: de,en;q=0.5' . "\r\n" ; $header .= 'Accept-Encoding: gzip,deflate' . "\r\n" ; $header .= 'Accept-Charset: ISO-8859-15,utf-8;q=0.7,*;q=0.7' . "\r\n" ; $header .= 'Keep-Alive: 300' . "\r\n" ; $header .= "Referer: http:// { $_SERVER [ 'HTTP_HOST' ]}{ $_SERVER [ 'PHP_SELF' ]} \r\n" ; $header .= 'Content-Type: multipart/form-data; boundary=---------------------------123456789' . "\r\n" ; $header .= 'Content-Length: ' . strlen ( $data ). "\r\n" ; $header .= "\r\n" ; $header .= $data ; @ fwrite ( $this -> _link , $header ); while(! feof ( $this -> _link )) { $this -> _result .= fgets ( $this -> _link ); } $this -> _parse_result ( $fileName ); } } } } private function _parse_result ( $filename ) { if(empty( $this -> _result )) user_error ( 'Fehler beim Upload, xup.raidrush.ws lieferte kein Ergebnis zurück!' , E_USER_WARNING ); else { preg_match_all ( '!<input type="text" onclick="highlight\(this\);" style="width:400px;" value="(.*)" />!sU' , $this -> _result , $tmp_e ); $link [ 'download' ] = $tmp_e [ 1 ][ 0 ]; $link [ 'delete' ] = $tmp_e [ 1 ][ 1 ]; if( $this -> _thumb === true ) $tn = $tmp_e [ 1 ][ 2 ]; unset( $tmp_e ); $r = '<h4>File "' . $filename . '" erfolgreich auf <a href="https://xup.raidrush.ws/">Xup</a> hochgeladen!</h4>' ; $r .= "<br />\r\n" ; $r .= '<b>Download:</b><br />' . "\r\n" ; $r .= '<input type="text" size="' . $this -> input_size . '" onclick="this.select();" value="' . $link [ 'download' ]. '" /><br />' . "\r\n" ; $r .= "<br />\r\n" ; $r .= '<b>Löschen:</b><br />' . "\r\n" ; $r .= '<input type="text" size="' . $this -> input_size . '" onclick="this.select();" value="' . $link [ 'delete' ]. '" /><br />' . "\r\n" ; if( $this -> _thumb === true && $tn != '' ) { $r .= "<br />\r\n" ; $r .= '<b>Thumbnail</b><br />' . "\r\n" ; $r .= '<input type="text" size="' . $this -> input_size . '" onclick="this.select();" value="' . $tn . '" /><br />' . "\r\n" ; } $r .= '<p align="center"><b>Murdocs Xupper ' . $this -> version . '</b><br/>' . $this -> copyright . '</p>' . "\r\n" ; print $r ; if( $this -> save_results === true ) $this -> _save_result ( $link [ 'download' ], $link [ 'delete' ], $filename , $tn ); } } private function _multi_upload () { if(!isset( $_FILES [ 'xup' ])) $this -> display ( 'Kein(e) File(s) angegeben!' ); //sicher is sicher $file = $_FILES [ 'xup' ]; unset( $_FILES ); //thumbs $o_image = false ; $mk_thumb = false ; if( $this -> _thumb !== true ) $o_image = true ; //damit nicht immer exploded wird /* * komischerweiße klappte es nicht anders * wenn jemand weiss warum bitte sagen! * * der fehler war nicht ersichlich, hatte ich den ersten file mit in die schleife geschrieben * und zu anfangs * $data .= (($i > 1) ? "\r\n" : '').'-----------------------------123456789'."\r\n"; * angegeben, war der header dem anschein nach nicht mehr in ordnung und ich bekam kein ergebnis. */ if( $this -> _maxsize_multi < ( round ( $file [ 'size' ][ 0 ] / 1024 ))) { print 'File: <b>' . $file [ 'name' ][ 0 ]. '</b> ist zu groß! (Elaubt: ' . $this -> _maxsize_multi . 'KB)<br />' . "\r\n" ; $file [ 's_error' ][ 0 ] = 1 ; } else { if( in_array ( 'image' , explode ( '/' , $file [ 'type' ][ 0 ]))) $o_image = true ; $data = '-----------------------------123456789' . "\r\n" ; $data .= "Content-Disposition: form-data; name=\"F1\"; filename=\" { $file [ 'name' ][ 0 ]} \"\r\n" ; $data .= "Content-Type: { $file [ 'type' ][ 0 ]} \r\n" ; $data .= "\r\n" ; $data .= @ file_get_contents ( $file [ 'tmp_name' ][ 0 ]); } for( $i = 1 ; $i < 10 ; $i ++) { if( $this -> _maxsize_multi < ( round ( $file [ 'size' ][ $i ] / 1024 ))) { print 'File: <b>' . $file [ 'name' ][ $i ]. '</b> ist zu groß! (Elaubt: ' . $this -> _maxsize_multi . 'KB) <br />' . "\r\n" ; $file [ 's_error' ][ $i ] = 1 ; } else { if( $o_image !== true ) { if( in_array ( 'image' , explode ( '/' , $file [ 'type' ][ $i ]))) $o_image = true ; } $data .= "\r\n" . '-----------------------------123456789' . "\r\n" ; $data .= "Content-Disposition: form-data; name=\"F" .( $i + 1 ). "\"; filename=\" { $file [ 'name' ][ $i ]} \"\r\n" ; $data .= "Content-Type: { $file [ 'type' ][ $i ]} \r\n" ; $data .= "\r\n" ; $data .= @ file_get_contents ( $file [ 'tmp_name' ][ $i ]); } } //thumbnails if( $this -> _thumb === true && $o_image === true ) { $data .= "\r\n" . '-----------------------------123456789' . "\r\n" ; $data .= "Content-Disposition: form-data; name=\"make_tn\";\r\n" ; $data .= "\r\n" ; $data .= 'on' ; $data .= "\r\n" . '-----------------------------123456789' . "\r\n" ; $data .= "Content-Disposition: form-data; name=\"tn_size\";\r\n" ; $data .= "\r\n" ; $data .= $this -> thumb_size ; $mk_thumb = true ; } if(!empty( $_POST [ 'passw' ])) { $data .= "\r\n" . '-----------------------------123456789' . "\r\n" ; $data .= "Content-Disposition: form-data; name=\"passwort\";\r\n" ; $data .= "\r\n" ; $data .= $_POST [ 'passw' ]; } //gruppen if( $this -> group_multi === true && count ( $file [ 'name' ]) > 1 ) { $data .= "\r\n" . '-----------------------------123456789' . "\r\n" ; $data .= "Content-Disposition: form-data; name=\"make_group\";\r\n" ; $data .= "\r\n" ; $data .= 'on' ; } $header = 'POST /transfer.php HTTP/1.1' . "\r\n" ; $header .= 'Connection: close' . "\r\n" ; $header .= 'Host: xup.raidrush.ws' . "\r\n" ; $header .= 'User-Agent: murdocs php xupper ' . $this -> version . "\r\n" ; $header .= 'Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5' . "\r\n" ; $header .= 'Accept-Language: de,en;q=0.5' . "\r\n" ; $header .= 'Accept-Encoding: gzip,deflate' . "\r\n" ; $header .= 'Accept-Charset: ISO-8859-15,utf-8;q=0.7,*;q=0.7' . "\r\n" ; $header .= 'Keep-Alive: 300' . "\r\n" ; $header .= "Referer: http:// { $_SERVER [ 'HTTP_HOST' ]}{ $_SERVER [ 'PHP_SELF' ]} \r\n" ; $header .= 'Content-Type: multipart/form-data; boundary=---------------------------123456789' . "\r\n" ; $header .= 'Content-Length: ' . strlen ( $data ). "\r\n" ; $header .= "\r\n" ; $header .= $data ; @ fwrite ( $this -> _link , $header ); while(! feof ( $this -> _link )) { $this -> _result .= fgets ( $this -> _link ); } $this -> _parse_multi_result ( $file , $mk_thumb ); } private function _parse_multi_result ( $file , $th ) { if(empty( $this -> _result )) user_error ( 'Fehler beim Multiupload, xup.raidrush.ws lieferte kein Ergebnis zurück!' , E_USER_WARNING ); else { preg_match_all ( '!<input type="text" onclick="highlight\(this\);" style="width:400px;" value="(.*)" />!sU' , $this -> _result , $tmp_e ); $files = 0 ; $o = (( $th === true ) ? 3 : 2 ); for( $i = 0 ; $i >- 1 ; $i += $o ) { if(( $n = current ( $file [ 'name' ])) != '' ) { if(@ current ( $file [ 's_error' ]) == '' ) { $dl = $tmp_e [ 1 ][( $i + 1 )]; $ddl = $tmp_e [ 1 ][ $i ]; if( $th === true ) $thn = $tmp_e [ 1 ][( $i + 2 )]; if( ereg ( "\n" , $dl )) $dl = preg_replace ( '!(.*)http://(.*)/!sU' , 'http://$2/' , $dl ); if( $this -> save_results === true ) { $down [ $n ] = $ddl ; $dele [ $n ] = $dl ; $thum [ $n ] = $thn ; } $r .= '<fieldset style="width: ' . $this -> fieldset_width . 'px;">' . "\r\n" ; $r .= "\t" . '<legend style="font-weight: bold; border: 1px solid #000000; padding: 2px 15px 2px 15px;">' . $n . '</legend>' . "\r\n" ; $r .= "\t<b>Download:</b><br />\r\n" ; $r .= "\t" . '<input type="text" size="' . $this -> input_size . '" onclick="this.select();" value="' . $ddl . '" /><br />' . "\r\n" ; $r .= "\t<br />\r\n" ; $r .= "\t<b>Löschen:</b><br />\r\n" ; $r .= "\t" . '<input type="text" size="' . $this -> input_size . '" onclick="this.select();" value="' . $dl . '" /><br />' . "\r\n" ; if( $th === true ) { $r .= "\t<br />\r\n" ; $r .= "\t<b>Thumbnail:</b><br />\r\n" ; $r .= "\t" . '<input type="text" size="' . $this -> input_size . '" onclick="this.select();" value="' . $thn . '" /><br />' . "\r\n" ; } $r .= "</fieldset>\r\n<br />\r\n" ; $files ++; } } if(!@ next ( $file [ 'name' ])) break; //internen zeiger eines vorrücken, da ich nicht $i als key anwenden kann @ next ( $file [ 's_error' ]); } if( $this -> group_multi === true ) { preg_match_all ( '!<input type="text" style="width:500px;" value="(.*)" />!sU' , $this -> _result , $grp ); $grp_ddl = $grp [ 1 ][ 0 ]; $grp_del = $grp [ 1 ][ 1 ]; //wenn die beiden leer sind, wurde entweder nur ein file angegeben oder fehler? if(!empty( $grp_ddl ) && !empty( $grp_del )) { $r .= '<h4>Gruppendownload</h4>' . "\r\n" ; $r .= '<b>Download:</b><br />' . "\r\n" ; $r .= '<input type="text" size="' . $this -> input_size . '" onclick="this.select();" value="' . $grp_ddl . '" /><br />' . "\r\n" ; $r .= '<b>Löschen:</b><br />' . "\r\n" ; $r .= '<input type="text" size="' . $this -> input_size . '" onclick="this.select();" value="' . $grp_del . '" /><br />' . "\r\n" ; } } $r = '<h4>' . $files . ' Files erfolgreich hochgeladen!</h4>' . "\r\n" . $r ; $r .= "\r\n<p align=\"center\"><b>Murdocs Xupper { $this -> version } </b><br/> { $this -> copyright } </p>\r\n" ; print $r ; if( $this -> save_results === true ) $this -> _save_result ( $down , $dele , '' , $thum , array( $grp_ddl , $grp_del )); } } private function _save_result ( $downloads , $delete , $filename = '' , $thumbs = '' , $grp = false , $try = 0 ) { $log = true ; if(! is_dir ( $this -> save_dir )) $log = false ; else { if( $this -> group_multi !== true ) @ $fp = fopen ( $this -> save_dir . 'uploads_' . date ( 'd.m.Y' ). '.log' , 'a+' ); else @ $fp = fopen ( $this -> save_dir . 'group_' . date ( 'd.m.Y' ). '_' . md5 ( microtime ( true )). '.log' , 'a+' ); } if(! $fp ) { if(!@ chmod ( $this -> save_dir , 0777 )) { print 'Bitte überprüfe ob der Ordner ' . $this -> save_dir . ' die nötigen rechte hat um Files zu öffen, erstellen und zu schreiben!<br />' ; $log = false ; } else { if( $try > 0 ) exit( 'Schwerer Fehler, bitte überprüfe deine Einstellungen bezüglich loggen der Ergebnisse' ); else return $this -> _save_result ( $downloads , $delete , $filename , $thumbs , $grp , 1 ); } } if( $log === true ) { if( is_array ( $downloads )) { $ddl_links = '' ; if( is_array ( $grp ) && $grp [ 0 ] != '' && $grp [ 1 ] != '' ) { $ddl_links .= "Gruppenlinks" ; $ddl_links .= "\r\n------------\r\n" ; $ddl_links .= "Gruppe runterladen: { $grp [ 0 ]} \r\n" ; $ddl_links .= "Gruppe löschen: { $grp [ 1 ]} \r\n" ; $ddl_links .= "Passwort: { $_POST [ 'passw' ]} \r\n\r\n" ; $ddl_links .= "Files dieser Gruppe:" ; $ddl_links .= "\r\n------------\r\n\r\n" ; } foreach( $downloads AS $name => $link ) { $ddl_links .= " $name " ; $ddl_links .= "\r\n------------\r\n" ; $ddl_links .= "Download: $link \r\n" ; if( $thumbs [ $name ] != '' ) { $th = preg_replace ( '!\[URL=http://.+/]\[IMG\](.*)\[/IMG\]\[/URL\]!isU' , '$1' , $thumbs [ $name ]); $ddl_links .= "Thumbnail: $th \r\n" ; } $ddl_links .= "Passwort: { $_POST [ 'passw' ]} \r\n" ; $ddl_links .= "Löschen: { $delete [ $name ]} \r\n\r\n" ; } } else { $ddl_links = $filename ; $ddl_links .= "\r\n------------\r\n" ; $ddl_links .= "Download: $downloads \r\n" ; if( $thumbs != '' ) { $thumb = preg_replace ( '!\[URL=http://.+/]\[IMG\](.*)\[/IMG\]\[/URL\]!isU' , '$1' , $thumbs ); $ddl_links .= "Thumbnail: $thumb \r\n" ; } $ddl_links .= "Passwort: { $_POST [ 'passw' ]} \r\n" ; $ddl_links .= "Löschen: $delete \r\n\r\n" ; } @ fwrite ( $fp , $ddl_links ); @ fclose ( $fp ); } else print 'Speichern der Links fehlgeschlagen!' ; } } ?> viel spaß! log Code: v1.0.0: release v1.0.1: multiupload v1.0.2: multiupload verbessert passwort angabe löschlinkbug behoben v1.1 stabile version ohne thumbnails und abfrage der filesize v1.1.1 thumbnails gruppen abfrage der filegröße und fehlerausgabe loggt die links gruppiert nach datum + macht eigene logfiles für gruppen todo speichern der links thumbnails filesize abfragen und ggf fehler ausgeben gruppen bilden bugs log: bei gruppen wird nicht alles gespeichert log: wenn gruppen gemacht werden sollen, speichert es auch normale uploads als gruppe ab + Multi-Zitat Zitieren
#2 6. Oktober 2007 AW: Xupper! Dein (fast) eigender Filehoster fehlt nur noch was, womit man auch runterladen kann. + Multi-Zitat Zitieren
#3 6. Oktober 2007 AW: Xupper! Dein (fast) eigender Filehoster Murdoc, du hast es einfach drauf Sehr schön.. Brauche das Script zwar nicht wirklich, aber sieht sche aus Vll könnt' ein GFXler noch 'n schönen Background & Header erstellen, und dann sieht es noch etwas mehr nach "Deinem (fast) eigenden Filehoster" aus *gg MfG + Multi-Zitat Zitieren
#4 6. Oktober 2007 AW: Xupper! Dein (fast) eigender Filehoster ohh je jetzt haste raid ausgetrickst weil keine werbung mehr druff is, der wird sich freuen xD aber is nice + Multi-Zitat Zitieren
#5 6. Oktober 2007 AW: Xupper! Dein (fast) eigender Filehoster Hehe Murdoc, da kann ich mich noch gewisse Fragen hier im Board erinnern, wie der Header gestaltet werden muss, damit sowas funktioniert .... Ich hoffe ich darf kritisch meine Meinung ausdrücken!? Also ich persönlich vermeide bei Strings die nichts interpretierbares enthalten die doppelten Anführungszeichen, damit würde man sich auch das escapen sparen ... naja es fällt einfach ein bißchen auf, dass du dir noch nicht einig bist, wann und wo du welche "Stringzeichen" machst ... und eine Redundanz ist mir noch aufgefallen und zwar in der upload methode, das manuelle löschen von temporären dateien ist nicht nötig. Den aufruf könntest du dir also sparen, aber ansonsten schöne Form. Keine doppelten Anführungszeichen bei arrays, einrückungen gut, header mit der "punktnotation" gut aufgeschrieben, unterstriche bei private methoden ... wobei ich bei manchen sachen noch drastischer wäre ( == "" wäre ich mit empty überprüfen, startwert fürs string '' statt null, beginnende unterstriche bei private variablen, java/php doc kommentare, keine deprecated tags, display block statt br, label tags).....so genug gemeckert + Multi-Zitat Zitieren
#6 6. Oktober 2007 AW: Xupper! Dein (fast) eigender Filehoster MakenX hat schon fast alles gesagt, bis auf ein paar Sachen, die mir noch aufgefallen sind. 1. Unnoetig viele HTTP-Header (braucht in diesem Falle kein Mensch) Accept-Charset, Accept-Language, Accept-Encoding, User-Agent und Referer 2. Keep-Alive Request. Sinnvoller waere ein Connection: close, da damit das Socket direkt nach der Antwort vom Server geschlossen wird und nicht noch auf bleibt 3. Wieso setzt du $header zuerst auf null und nicht direkt auf 'POST ...'? + Multi-Zitat Zitieren
#7 6. Oktober 2007 AW: Xupper! Dein (fast) eigender Filehoster dude zeig mal wie du header angabe ändern würdest, das interessiert mich jetzt auch mal ... + Multi-Zitat Zitieren
#8 6. Oktober 2007 AW: Xupper! Dein (fast) eigender Filehoster das feld fürs pw fehlt auch noch ansonste nschönes ding..und du hast was gegen deine langeweile getan + Multi-Zitat Zitieren
#9 6. Oktober 2007 AW: Xupper! Dein (fast) eigender Filehoster PHP: $header = "POST /transfer.php HTTP/1.1\r\n" ; $header .= "Host: xup.raidrush.ws\r\n" ; $header .= "Keep-Alive: 300\r\n" ; $header .= "Connection: close\r\n" ; $header .= "Content-Type: multipart/form-data; boundary=---------------------------123456789\r\n" ; $header .= "Content-Length: " . strlen ( $content ). "\r\n" ; $header .= "\r\n" ; $header .= "-----------------------------123456789\r\n" ; $header .= "Content-Disposition: form-data; name=\"F1\"; filename=\" { $_FILES [ 'xup' ][ 'name' ]} \"\r\n" ; $header .= "Content-Type: { $_FILES [ 'xup' ][ 'type' ]} \r\n" ; $header .= "\r\n" ; $header .= " $content " ; Ungetestet, sollte trotzdem funktionieren. + Multi-Zitat Zitieren
#10 8. Oktober 2007 AW: Xupper! Dein (fast) eigender Filehoster @maken: ich hatte in den strings ein oder mehrere \r\n was doppelte anführungszeichen benötigt. jetzt aber gemischt, und ja ich hab ne kommentierte version, aber die is zulang für den thread^^ @dude: ich hab ein wenig rumprobiert und irgendiwe wollte das nicht klappen. connection: close hab ich jetz mit drinnen aber ohne keep-alive klappts irgendwie nicht... komische sache update: passwort, gruppen, thumbnails, loggen von links und gruppen - alles in der v1.1.1 + Multi-Zitat Zitieren
#11 8. Oktober 2007 AW: Xupper! Dein (fast) eigender Filehoster Jo das weiß ich, aber zwischendurch hatte ich auch noch irgendwas gesehen, aber jetzt haste es ja jetzt bis ins kleinste geändert + Multi-Zitat Zitieren