PHP Safemode :-((

  • Themenstarter Themenstarter fercules
  • Beginndatum Beginndatum
F

fercules

Hallo,

eben wollte ich ein Bild uploaden, aber der PHP Safemode hat das brav verhindert. Ich hab mich schon kundig gemacht, sofern der PHP Safemode aktiviert ist, kann man alles was mit uploaden zutun hat, wegschmeissen...

leider bin ich bei server4you bzw. server4free. neuerdings kann ich mich nicht mehr per ssh secure shell auf meinen linux server einloggen, weil es angeblich eine miskonfiguration bzw. too many authentication failures gegeben hat. was mach ich jetzt? die 3.36 EUR / minute 0190er support hotline anrufen oder php ganz begraben?

ohne upload features kann man doch kaum was machen, zumindest nicht das was ich will. gibts denn gar keine möglichkeit? illustrer weise habe ich ein thumbnail script heruntergeladen, dass von einem ftp-hochgeladenen bild ein thumbnail image macht und dieses auch speichert. das geht komischerweise und der safemode macht auch keine probleme. von daher muss es doch irgendwie zu machen sein?

grüße
fercules
 
Poste mal bitte dein phpinfo(); oder mach n Link dazu hier rein :-)
Ansonsten wechsle halt den Provider.. Purespace ist garnicht so teuer....
 
tja ... also Uploads im Safe Mode gehen ohne Probleme. Was im Safe Mode meistens nicht geht ist das Erstellen von Verzeichnissen.

Aber leider hast du deine Upload Funktionalität nicht mit gepostet so dass mir nur eine Antwort auf deine Frage einfällt:

Ja, prinzipiell ist es möglich.

Ohne Code könenn wir dir nicht helfen.

Ciao, Jörg
 
meine php info

kein thema ihr beiden. also erstmal: verzeichnisse kann ich ohne probleme erstellen lassen, das ist kein problem. hab eben mal nachgesehn, sie haben den chmod 777

hier ist meine php info einzusehen:

http://www.stephanmarzi.de/test.php

der upload wäre echt wichtig, derzeit stehe ich mit meinem latein aber am ende. auch bei google und in meinen referenzbüchern konnte ich nichts brauchbares finden, das mir weitergeholfen hätte.

so lade ich meine bilder hoch, der ordner wird auch erstellt, aber das bild wird nicht in den ordner kopiert, stattdessen kommt ein safemode fehler:

$time = time();
if ($file1_name != "") {
mkdir ("bilder/vollbild/$time", 0777);
copy("$file1", "bilder/vollbild/$time/$file1_name");
$pic = $url."/bilder/vollbild/".$time."/".$file1_name;
}


beste grüße
stephan
 
meine gedanken: chmod 755

ich hab mir noch ein paar gedanken gemacht. alle ordner die mein system anlegt, haben chmod 755. wenn ich den ordnernamen mal eben statisch vergebe und den ordner "hugo" nenne, diesem chmod 777 gebe und dannd as bild uploade geht es....im prinzip muss ich meine ordner also nur mit chmod 777 erstellen. das versuche ich ja auch, aber dennoch liegen sie als chmod 755 auf meinem server, nachdem das script sie erstellt hat. any ideas?

lg
fercules
 
ich habs

danke, ich habs schon. und zwar ist es ja schwachsinn, extra einen ordner für jede datei anzulegen. stattdessen nenn ich die datei einfach in $time um, hänge die dateieindung dahinter und speichere alles in meinem ordner vollbild. so funktionierts dann auch und mein problem ist gelöst.

vermutlich hätte man mit den php ftp funktionen noch was bewirken können, aber so isses einfacher und es funktioniert vor allem einwandfrei.

beste grüße
fercules
 
Um der Sache Klarheit zu verschaffen: Wenn PHP im SaveMode läuft, dann kann man nur auf Dateien und Ordner zugreifen, die vom gleichen Benutzer erstellt wurden. PHP läuft aber unter einem anderen Benutzer, so dass die durch PHP erstellten Verzeichnisse dem PHP-Nutzer gehören und nicht euch. Darum kann auch nicht auf den durch PHP erstellten Ordner zugegriffen werden.

snuu
 
Ja, und um das ganze fortzuführen, hat der PHP prozeß scheinbar net so viele Rechte, als dass Verzeichnisse mit 777 erstellt werden dürfen. Daher musst du bei zukünftigen Scripts (oder TPL engines wie Smarty) immer darauf achten, dass die Safe Mode kompatibel sind und diese Funktion aktiviert ist.

Ciao, Jörg
 
Um das ganze hier einmal auf den erfolgsweg zu bringen:

Also der SafeMOde vergibt UID (user ID's) wie auch schon oben beschrieben wurde.

Will man nun ein Verzeichnis dennoch via php anlegen und in dieses Uploaden geht das so:



$connection = ftp_connect(dein Host));
$username = 'user';
$pass = 'passwort ';
$login_result = ftp_login($connection,$username,$pass);
// check to make sure you're connected:
if ((!($login_result)) or (!($connection)))
{
// error....do something
}
else
{
// we're good to go -- the connection was made
$verzeichnis="neuesVZ";
$path="mein Pfad/";
ftp_chdir($connection,$path);
ftp_mkdir($connection,$verzeichnis);
ftp_site($connection, "CHMOD 777 $path/$verzeichnis");
ftp_close($connection);


nun legt php mittels ftp ein neues verzeichnis an und diese beiden haben dann auch die selbe UID. Das upload geht also!

Ich habe mich bis gestern damit rumgeschlagen
:rolleyes:
 
Warum so umständlich?
Man kann doch mit der Funktion chown() den Eigentümer des neu erstellten Verzeichnises auf die UID des Users setzen.

snuu
 
Zurück