Neuigkeiten:

still alive...

Hauptmenü

Safe Mode umgehen ...?

Begonnen von puchne, 20. Februar 2006, 14:45:14

Vorheriges Thema - Nächstes Thema

puchne

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 /uploads/emoticons/icon_e_sad.gif.cc8ba2b6b966c5e020020efa47702aab.gif\" alt=\":(\" />.
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? /uploads/emoticons/icon_e_sad.gif.cc8ba2b6b966c5e020020efa47702aab.gif\" alt=\":(\" />
MfG,
Jörg
http://www.licht-malerei.de\" rel=\"external nofollow\">»private Foto-Webseite



Powie

Mit den safe_mode hat das nichts zu tun. Du musst nur den Überordner, in dem die Ordner erstellt werden sollen, auch auf chmod 777 setzen.

puchne

Danke für die schnelle Antwort!
Also die Ordner sind schon alle auf 777 umgestellt, funktionieren tut es trotzdem nicht /uploads/emoticons/icon_e_sad.gif.cc8ba2b6b966c5e020020efa47702aab.gif\" alt=\":(\" />
Ich dachte es läge daran:
http://de2.php.net/features.safe-mode\" rel=\"external nofollow\">http://de2.php.net/features.safe-mode
http://www.licht-malerei.de\" rel=\"external nofollow\">»private Foto-Webseite



dec

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\" rel=\"external nofollow\">http://ch2.php.net/ftp
 
[edit]da war ich wohl zu langsam mit schreiben /uploads/emoticons/icon_e_smile.gif.f7ec63a2b1c3d90a9415e40455642502.gif\" alt=\":-)\" />[/edit]

spass ist, was ihr draus macht


puchne

ok, Danke!
Umständlich aber immerhin eine Möglichkeit.
Der Webhoster ist halt nicht der beste, dafür der billigste. Da muss ich mit sowas halt wohl leben :/
http://www.licht-malerei.de\" rel=\"external nofollow\">»private Foto-Webseite



dec

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 /uploads/emoticons/icon_e_smile.gif.f7ec63a2b1c3d90a9415e40455642502.gif\" alt=\":-)\" />

 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;
}
?>

spass ist, was ihr draus macht


puchne

So, mittlerweile bin ich immerhin schon bei den Rechten angekommen /uploads/emoticons/icon_e_wink.gif.fcb053ab2c91cb6224c03a16c6332abf.gif\" alt=\";)\" />
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?
http://www.licht-malerei.de\" rel=\"external nofollow\">»private Foto-Webseite



dec

ftp_chmod ist erst ab php 5 implementiert.
zeile 45 im codeschnippel zeigt dir, wie es mit php 4 auch geht.

spass ist, was ihr draus macht


puchne

Klasse; Danke! /uploads/emoticons/icon_e_smile.gif.4a0acefcb917340d2c82e5239c009e6e.gif\" alt=\":)\" />
Hier wird einem echt weitergeholfen  /uploads/emoticons/icon_e_smile.gif.f7ec63a2b1c3d90a9415e40455642502.gif\" alt=\":-)\" />
 
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 -
http://www.licht-malerei.de\" rel=\"external nofollow\">»private Foto-Webseite



puchne

Kann mir da niemand weiterhelfen?
http://www.licht-malerei.de\" rel=\"external nofollow\">»private Foto-Webseite



raiser

hiho,
wieso $_GET ???
wenn du was hochläds....
$_FILES[\'input_name\'][\'temp_name\']..... usw.....
am besten guckst du mal hier http://www.php.net/manual/de/features.file-upload.php\" rel=\"external nofollow\">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....  /uploads/emoticons/icon_e_surprised.gif.a8707b3f35a569cb4cfe563fc72ef78d.gif\" alt=\":-o\" />
musste mal gucken was du davon brauchst.
übrigens, die function thumbnail findest hier.. http://raiser-web.dyndns.org/newpage/coding/thumb.php\" rel=\"external nofollow\">thumbnail()
gruß raiser
 - Editiert von Raiser am 20.02.2006, 21:25 -

Wissen ist das einzige Gut, dass sich vermehrt, wenn man es teilt! (Marie von Ebner-Eschenbach)




Irren ist menschlich!




Wer andern eine Grube gräbt,


sollte darüber nachdenken,


ob sie tief genug ist!!!!




Kameradschaft ist, wenn der


Kamerad schafft !!!!


all your base are belong to us / Discord