Jump to content

Safe Mode umgehen ...?


Recommended Posts

Hallo!

Ich hoffe ihr könnt mir helfen:

Ich bin gerade dabei eine kleine Biderdatenbank zu schreiben.

Dabei sollen sich auch neue Kategorien erstellen lassen, wobei per neu hinzugefügter Kategorie auch der jeweilige Ordner erstellt werden soll.

Allerdings funktioniert die mkdir() Funktion nicht :(.


Folgende Fehlermeldung taucht auf:

Warning: mkdir(): SAFE MODE Restriction in effect. The script whose uid is 1447 is not allowed to access / owned by uid 0 in /var/www/web59/html/bilderdatenbank/intern.php on line 91


Ist es möglich diese Restriktion zu umgehen oder werde ich mit diesen Sicherheitseinstellungen schlicht nicht die Möglichkeit haben neue Ordner per php zu erstellen? :(


MfG,

Jörg

Link to post
Share on other sites

sorry powie, aber es hat was damit zu tun... dieses problem haben so manche skripte, z.b. auch der filebrowser vom fckeditor.


umgehen kannst du das nur, indem du die verzeichnisse per FTP erstellen lässt. den safe_mode wirst du wohl nicht abschalten können, da das gemäss meinung vieler webhoster eine zentrale sicherheitseinstellung ist.


daher bleibt dir nur übrig, mittels php via ftp auf den server zuzugreifen und die ordner zu erstellen. schau dir dazu mal diese seiten an:

http://ch2.php.net/ftp



[edit]da war ich wohl zu langsam mit schreiben :-)[/edit]

Link to post
Share on other sites

codeschnippel, den ich mal gebraucht hab für sowas. hab ihn noch um meinen individuellen codemüll bereinigt. evtl habe ich dabei einige wichtige funktionalitäten beschnitten. einfach ausprobieren ist wohl das einfachste :-)

 Gewechselt in Verzeichnis:".
		@ftp_pwd($conn_ftp);
		#.""; 


		// Erstellung eines neuen Verzeichnisses
		#if(
		@ftp_mkdir($conn_ftp,$folder);
		#) #echo "Neues Verzeichnis $folder erstellt"; 
		#else #echo "Fehler beim Erstellen des Verzeichnisses $folder"; 
		#echo ""; 

		// Chmod 777 auf neues Verzeichnis
		#if (
		@ftp_site($conn_ftp, "CHMOD 0777 $folder");
		#) echo "chmod erfolgreich";
		#else echo "chmod nicht erfolgreich";

		// FTP-Verbindung schliessen
		ftp_quit($conn_ftp); 
		$erfolg = 1;

	}
	else {
		$old_umask = umask(0);
		$erfolg = @mkdir($folder,0777); 		
	}

	return $erfolg;
}
?>

Link to post
Share on other sites

So, mittlerweile bin ich immerhin schon bei den Rechten angekommen ;)


Allerdings was ist denn hier falsch definiert:

$rechte=ftp_chmod($connect, 7777, $path);

...?


Bekomme ein

"Call to undefined function: ftp_chmod()"


Muss ich um die Rechte von Ordnern zu ändern eine andere Funktion benutzen?

Link to post
Share on other sites

Klasse; Danke! :)

Hier wird einem echt weitergeholfen :-)



Nun hab ich nur noch ein letztes Problem (danach wäre das script fertig):

Es soll von dem jeweils hochgeladenem Bild auch ein Thumbnail erstellt und abgespeichert werden.


Diesen Codeschnipsel hab ich dabei im Internet gefunden:

 

 

 

Allerdings werden hier die Thumbnails nur generiert und nicht weiter abgespeichert.

Wie schaffe ich es, dass die erstellten Thumbnails auch in dem entsprechenden Ordner abgespeichert werden?


Ich hab, wie ihr bestimmt schon gemerkt habt, nicht allzu viel Ahnung davon -

die Funktion move_uploaded_file() hilft mir da ja nicht weiter ...?


MfG,

Jörg



- Editiert von puchne am 20.02.2006, 16:19 -

Link to post
Share on other sites

hiho,


wieso $_GET ???

wenn du was hochläds....

$_FILES['input_name']['temp_name']..... usw.....

am besten guckst du mal hier Datei-Uploads

 




function popup()
{
mywin = window.open("timer.htm","untitled","width=310,height=400,left=0,top=0");
}


        Kategorie:

           ";
           while($row=@mysql_fetch_array($result)){
               echo"".$row['category']."";
           }
   echo" oder neue Kategorie 
        Datei: 
        URL: 
        Beschreibung: 

        ";


}

if($_POST['save']){

   /*
   echo "  
               mywin = window.open(\"timer.htm\",\"untitled\",\"width=310,height=400,left=0,top=0\");
           ";
   */

   $cat    =$_POST['cat'];
   $catnew =$_POST['catnew'];
   $url    =$_POST['url'];


   if($_POST['cat']=="" && $_POST['catnew']==""){
       echo"Es muss eine Kategorie angegeben werden";
       exit();
   }
   if($catnew!="") $cat="";

   $image=getimagesize($_FILES['pic']['tmp_name']);
   //print_r($image);echo"";

   if(!$image[2]==1 || !$image[2]==2 || !$image[2]==3)
   {
       echo"Falsches Format. Nur gif, jpg oder png.";
       exit();
   }
   $name=$_FILES['pic']['name'];
   $width=$image[0];
   $height=$image[1];

##################################################################
### bild in den tempordner kopieren und mit temp_NAME versehen ###
##################################################################

   copy($_FILES['pic']['tmp_name'],"temp/temp_".$_FILES['pic']['name']);
   $filename1="temp/temp_".$_FILES['pic']['name'];
   echo"Dateigröße=".filesize($filename1)." bytes";
###########################################################################
#### Thumbnail erzeugen und unter thumb_NAME abspeichrn im ordner temp/ ###
###########################################################################
   if(thumbnail($_FILES['pic']['tmp_name'],70,'temp',"thumb_".$_FILES['pic']['name'])!=1){
       copy($_FILES['pic']['tmp_name'],"temp/thumb_".$_FILES['pic']['name']);
   }
   $filename2="temp/thumb_".$_FILES['pic']['name'];


$ftp_id=@ftp_connect($server,$port);
$login=@ftp_login($ftp_id,$ftpuser,$ftppass);
if((!$ftp_id) || (!$login)){
    echo "FTP-Connect faild!";
}
else{
    echo "Connected!";
}
if(!@ftp_chdir($ftp_id,$upload)){               //--> in den bilderordner wecheln
   echo "Directory $upload not found";
}
#############################################
#### Bild wird übermittelt ##################
#############################################
   if($cat!=""){
       ftp_chdir($ftp_id,$cat);                //--> in den categoryordner wecheln
       $category=$cat;
   }//--> alte category nutzen
   else{
       $category=$_POST['catnew'];
       ftp_mkdir($ftp_id,$catnew);             //--> categoryordner erzeugen
       ftp_chdir($ftp_id,$catnew);             //--> in categoryordner wecheln
       ftp_mkdir($ftp_id,"thumb");             //--> ordenr in cat-ordner für thumbnails erstellen
   }//--> neue category anlegen

   mysql_query("insert into $tab_bilder set
                                               name='$name',
                                               dest='$url',
                                               _describe='$beschreibung',
                                               _width='$width',
                                               _height='$height',
                                               category='$category',
                                               _date='$date' ")or die(mysql_error());

   $fp1=fopen($filename1,"r");
   $fp2=fopen($filename2,"r");

   ftp_fput($ftp_id,"$name",$fp1,FTP_BINARY);  //--> Orgbild übertragen
   ftp_chdir($ftp_id,"thumb");                 //--> in thumbordner wechseln
   ftp_fput($ftp_id,"$name",$fp2,FTP_BINARY);  //--> Thumbbild übertragen

   fclose($fp1);
   fclose($fp2);

   unlink($filename1);
   unlink($filename2);

if(ftp_close($ftp_id)) echo "Connetion closed";

echo "  


       ";

//echo "mywin.close()";


}//-- ende post[save]
?>

 


also der code sollte eigentlich sofort so einsetzbar sein....

den hatte ich mir mal so gebaut, weil ich lokal nen webserver habe und die bilder bei lycos hochpacke.... :-o


musste mal gucken was du davon brauchst.

übrigens, die function thumbnail findest hier.. thumbnail()

gruß raiser

- Editiert von Raiser am 20.02.2006, 21:25 -

Link to post
Share on other sites
Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...