ilch Forum » Allgemein » HTML, PHP, SQL,... » Header "uploader" abhängig von Subdomain

Geschlossen
  1. #1
    User Pic
    Anarchy 90210 Mitglied
    Registriert seit
    15.05.2007
    Beiträge
    578
    Beitragswertungen
    1 Beitragspunkte
    Hallo, ich habe ein Problem mit folgendem Script:
    Es soll in Abhängigkeit der Subdomain den Header eines Designs hochladen, jedoch mit minimalen Problemen: es führt trotz aller korrekten Gegebenheiten das else aus. Könnt ihr bitte mal drüberschaun?

    <?php
    include('include/includes/func/gallery.php');
    	
    	$img = $_FILES['header'];
    	if(!empty($img['tmp_name']) AND isset($_POST['sub'])){
    		$type = getimagesize($img['tmp_name']);
    		
    		// Prüfen ob die Datei ein Bild (jpg,gif,png)  ist, sowie Festlegung des Uploadordners in Abhängigkeit der Subdomain
    $domain = "xxx.xx";
    $subdomain = $_SERVER['HTTP_HOST'];
    $subdomain = eregi_replace("\.".$domain, "", $subdomain);
    $subdomain = eregi_replace("www\.", "", $subdomain);
    $userdomain = strtolower($subdomain);
    		if($type == "image/gif" && $type == "image/jpg" && $type == "image/gif" && $type == "image/png"){
    		//if($type[2] == "1" OR $type == "2" OR $type == "3"){  <-- Variante B, geht auch nicht!
    			if(!is_dir("include/designs/".$id."/header/".$userdomain)|| !is_dir($userdomain)){
    			
    			
    				mkdir("include/designs/".$id."/header/$userdomain",0777);
    				
    			}
    			$explode 	= explode(".",$img['name']);
    			$count 		= count($explode)-1;
    			$endung 	= $explode[$count];
    			create_thumb ($img['tmp_name'], "include/designs/".$id."/header/".$userdomain."/header.".$endung);
    			wd("?designs-upload-".$id,"Bild wurde erfolgreich Hochgeladen");
    		}
    		// wenn Datei keine Bild ist dann leite weiter und gib eine Fehlermeldung aus
    		else{
    			wd("?designs-upload-".$id,"Es dürfen nur Bilder hochgeladen werden!");
    			$design->footer(1);
    		}
    	}
    ?>


    Bitte denkt euch die Backslashs vor den Anführungszeichen weg zwinker
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    dastiii Mitglied
    Registriert seit
    27.12.2005
    Beiträge
    2.354
    Beitragswertungen
    84 Beitragspunkte
    if($type[2] == "1" OR $type == "2" OR $type == "3"){


    ...

    if($type[2] == "1" OR $type[2] == "2" OR $type[2] == "3"){


    Und bei deiner ersten Variante:

    - Wie soll ein Bild gleichzeitig gif, jpg und png sein?
    - $type ist ein Array und wird dementsprechend niemals "image/gif", etc. sein
    -> $type['mime'] würde bei einer gif-Datei z.B. image/gif beinhalten.

    php.net/manual/de/function.getimagesize.php
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    Anarchy 90210 Mitglied
    Registriert seit
    15.05.2007
    Beiträge
    578
    Beitragswertungen
    1 Beitragspunkte
    Vielen Dank Dastiac, du hast mir soeben der Fehler gelöst.

    Okay, dann war noch ein kleiner Fehler bei create_thumb und mkdir, ich habe es gelöst. Nächstes Problem steht schon an:

    Der Upload erfolgt nun lediglich in den zuletzt geladenen Ordner, (des Designs, welches in der Designliste ganz unten steht)

    Da ich die Designs eh noch sortieren lassen wollte, möchte ich dennoch zunächst die eindeutige Zuordnung klären.

    <?php
    
    defined ('main') or die ( 'no direct access' );
    defined ('admin') or die ( 'only admin access' );
    	
    
    
    
    $aktion = $menu->get(1);
    $id		= $menu->get(2);
    
    $tpl = new tpl ('designs', 1);
    if($aktion == "select"){
    	$design = new design ( 'Admins Area', 'Admins Area', 2 );
    	$design->header();
    	// Design in der Datenbank ändern
    	$query = "UPDATE `xic_config` SET `wert` = '".$id."' WHERE `schl` = 'gfx'";
    	db_query($query);
    	// Design in der Session ändern
    	$_SESSION['authgfx'] = $id;
    	// Weiterleiten
    	wd("?designs","Design auswahl wurde geändert",4);
    	$design->footer(1);	
    }elseif($aktion == "upload"){
    	$design = new design ( 'Admins Area', 'Admins Area', 0 );
    	$design->header();
    	
    	include('include/includes/func/gallery.php');
    	
    	$img = $_FILES['header'];
    	if(!empty($img['tmp_name']) AND isset($_POST['sub'])){
    		$type = getimagesize($img['tmp_name']);
    		
    		// Prüfen ob die Datei ein Bild (jpg,gif,png)  ist, sowie Festlegung des Uploadordners
    $domain = "clanfree.de";
    $subdomain = $_SERVER['HTTP_HOST'];
    $subdomain = eregi_replace("\.".$domain, "", $subdomain);
    $subdomain = eregi_replace("www\.", "", $subdomain);
    $userdomain = strtolower($subdomain);
    		//if($type == "image/gif" || $type == "image/jpg" || $type == "image/png"){
    		if($type[2] == "1" OR $type[2] == "2" OR $type[2] == "3"){
    			if(!is_dir("include/designs/".$id."/header/".$userdomain)){
    			
    			
    				mkdir("include/designs/".$id."/header/$userdomain", 0777);
    				
    			}
    			$explode 	= explode(".",$img['name']);
    			$count 		= count($explode)-1;
    			$endung 	= $explode[$count];
    			create_thumb ($img['tmp_name'], "include/designs/".$id."/header/".$userdomain."/header.".$endung , $type[0]);
    			wd("?designs-upload-".$id,"Bild wurde erfolgreich Hochgeladen");
    		}
    		// wenn Datei keine Bild ist dann leite weiter und gib eine Fehlermeldung aus
    		else{
    			wd("?designs-upload-".$id,"Es dürfen nur Bilder hochgeladen werden!");
    			$design->footer(1);
    		}
    	}
    	
    	
    	
    	
    	$tpl->set("design",$id);
    	$tpl->out(3);
    	$design->footer();	
    }else{
    	$design = new design ( 'Admins Area', 'Admins Area', 2 );
    	$design->header();
    	
    	
    
    	// Ordner öffnen
    	$odir = opendir ('include/designs');
    	$tpl->out(0);
    	// Ordner auslesen
    	while($designs = readdir($odir)){
    			if ( $designs != '.' AND $designs != '..' AND is_dir('include/designs/'.$designs) ) {
    			
    
    
    
    			
    			$path = "include/designs/".$designs."/";
    			// Prüfen was für img typen existieren und ausgeben
    			if(file_exists($path."screen.jpg")){
    				$p = $path."screen.jpg";
    				
    				$size = getimagesize($p);	
    				$width = $size[0];
    				$height = $size[1];
    				$newHeight=intval($height*"100"/$width);					
    				
    				$img = "<a href=\"".$p."\" rel=\"lightbox[roadtrips]\"><img  src=\"".$p."\"  border =\"0\" width=\"100\" height=\"".$newHeight."\" /></a>";
    			}elseif(file_exists($path."screen.gif")){					
    				$p = $path."screen.gif";
    				$size = getimagesize($p);	
    				$width = $size[0];
    				$height = $size[1];
    				$newHeight=intval($height*"100"/$width);
    				$img = "<a href=\"".$p."\" rel=\"lightbox[roadtrips]\"><img  src=\"".$p."\"  border =\"0\" width=\"100\" height=\"".$newHeight."\" /></a>";
    			}elseif(file_exists($path."screen.png")){
    				$p = $path."screen.png";
    				$size = getimagesize($p);	
    				$width = $size[0];
    				$height = $size[1];
    				$newHeight=intval($height*"100"/$width);
    				$img = "<a href=\"".$p."\" rel=\"lightbox[roadtrips]\"><img  src=\"".$p."\"  border =\"0\" width=\"100\" height=\"".$newHeight."\" /></a>";
    			}
    			else{
    				// Standart Bild falls kein Bild existiert z.B include/designs/image/noimg.gif
    				$img = "";
    			}
    		
    							
    		 	$title = $designs;
    		 	$text = "";
    		 	// Prüfen ob Info.txt Datei existiert
    		 	if(file_exists($path."info.txt")){
    		 		// info.txt öffnen
    				$top = fopen($path."info.txt","r");
    				// Wen geöffnet dann auslesen
    				if($top){
    					// auslesen
    					while(!feof($top)){
    						// ausgeben
    						$txt = fgets($top);
    						$text .= $txt;
    					}
    					//schließen
    					fclose($top);
    				}			
    			}else{
    				// Meldung falls keine Text Datei existiert
    				$text = "Keine Informationen"; 
    			}
    		 	// Wenn aktuelles Design gleich ausgelesenem Design entspricht dan führe aus....
    		 	if($_SESSION['authgfx'] == $designs){ 
    			  	$select = "Ausgewählt";
    			  	$class = "Chead"; 		
    			}
    			// Wenn nicht führe aus....
    			else{
    				$class = "Cnorm";
    				$select = "<a href=\"?designs-select-".$designs."\" ><input type=\"button\" value=\"Auswählen\" /></a>";
    			}
    			
    			if(file_exists($path."download.zip")){
    				$dl = "<a href=\"include/designs/".$designs."/download.zip\"><input type=\"button\" value=\"Download Header\" /></a>";
    			}
    			else{
    				$dl = "<a href=\"#\" onclick=\"alert('Keine Datei verfügbar')\"><input type=\"button\" value=\"Download Header\" /></a>";
    			}
    			
    			// TPL ausgabe
    			$ar = array(
    				"width" 	=> "100",
    				"height"	=> $newHeight,
    				"download" => $dl,
    				"design" => $designs,
    				"img"	=> $img,
    				"title" => $title,
    				"text" => $text,
    				"select" => $select,
    				"class"	=> $class
    			);
    			$tpl->set_ar_out($ar,1);
    			
    		}
    		
    	}
    	$tpl->out(2);
    	$design->footer();
    }
    
    
    ?>


    Könnt ihr mir sagen, wie ich hier die ausgelesenen Designs eindeutig zuordnen kann, sodass der Upload auch in den richtigen (Design-ID) Ordner klappt?

    MfG
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    Tr3icio gelöschter User
    Tipp: eregi_ Funktionen sind laut PHP DEPRECATED (veraltet) und werden in kommenden Versionen entfernt!
    Das heißt es besteht eine hohe Chance das nach einem Update von PHP die Funktionen ein schönes

    Fatal error: Call to undefined function: ergi_*() in PATH on line LINE

    wirft ;-)
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu HTML, PHP, SQL,...

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten