php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2004

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 22.10.2004, 20:06  
Erfahrener Benutzer
 
Registriert seit: 08.11.2003
Beiträge: 139
Calexico
Standard Problem mit mkdir() und SAFE_MODE

Hej!

Ich hab folgendes Problem: Ich hab ein kleines Fotoalbum, in dem ich über ein script ein neues verzeichnis anlegen kann. Sieht so aus:

Code:
$id=-1;
  do{$id++;}
  while(mysql_num_rows(mysql_query("SELECT * FROM abi_foto_alben WHERE id='".$id."'"))!=0);
  
  if(!is_dir("bilder/".$id."")){mkdir("bilder/".$id."",0777);}
So dann hab ich noch ein script mit dem ich die Bilder ins Internet hochlade:

Code:
if(isset($_FILES["data"]) && !$_FILES["data"]["error"]){   
   move_uploaded_file($_FILES["data"]["tmp_name"], "bilder/".$_POST["album"]."/".$id.".jpg");   }
wenn ich jetzt das bild hochladen will dann kommt eine typische SAFE_MODE fehlermeldung:
Warning: move_uploaded_file(): SAFE MODE Restriction in effect. The script whose uid is 1121 is not allowed to access /home/www/web245/xyz owned by uid 33 in /home/www/web245/html/xyz/index.php on line 12

soweit verstehe ich das noch, dass ich move_uploaded_file() nur so benutzen kann, dass das bild im selben ordner wie php gespeichert wird.

allerdings kommt dieser fehler nicht, wenn ich über ein ftp-programm, namentlich bei mir WS_FTP, den ordner erstelle mit chmod 0777.

Wieso geht es wenn der ordner per ftp erstellt wird, aber nicht wenn ich ihn per mkdir() erstelle??
Calexico ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 22.10.2004, 20:33  
Gast
 
Beiträge: n/a
Standard Re: Problem mit mkdir() und SAFE_MODE

Zitat:
Zitat von Calexico
Wieso geht es wenn der ordner per ftp erstellt wird, aber nicht wenn ich ihn per mkdir() erstelle??
Weil das übergeordnete Verzeichnis dem FTP-User und nicht dem Webserver gehört. Im safe_mode achtet PHP auf die UserID des Scriptes und des Verzeichnisses und legt dort den Daumen dazwischen.

Es gibt allerdings die ftp_* Funktionen, mit denen man diese Hürde ganz locker nehmen kann.
 
Alt 23.10.2004, 11:34  
Erfahrener Benutzer
 
Registriert seit: 08.11.2003
Beiträge: 139
Calexico
Standard

So hab das ganze jetzt mal nach dem Beispiel umgebastelt:

hab ne datei ftp.php die connectet:
Code:
$ftp_server="ftp://ftp.web245.silverline-s11.de/";
$ftp_user_name="user";
$ftp_user_pass="1234";

// Herstellen der Basis-Verbindung
$conn_id = ftp_connect("$ftp_server"); 

// Einloggen mit Benutzername und Kennwort
$login_result = ftp_login($conn_id, "$ftp_user_name", "$ftp_user_pass"); 

// Verbindung überprüfen
if ((!$conn_id) || (!$login_result)) { 
        echo "Ftp-Verbindung nicht hergestellt!";
        echo "Verbindung mit $ftp_server als Benutzer $ftp_user_name nicht möglich"; 
        die; 
    }
und schon hier geht's nicht: ich bekomme folgende fehlermeldung:

Warning: ftp_connect(): php_network_getaddresses: getaddrinfo failed: Name or service not known in /home/www/web245/html/abi/ftp.php on line 7

Warning: ftp_login() expects parameter 1 to be resource, boolean given in /home/www/web245/html/abi/ftp.php on line 10

was muss ich anders machen?
Calexico ist offline  
Alt 23.10.2004, 15:40  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Calexico
So hab das ganze jetzt mal nach dem Beispiel umgebastelt:

hab ne datei ftp.php die connectet:
[ script ]
und schon hier geht's nicht: ich bekomme folgende fehlermeldung:

Warning: ftp_connect(): php_network_getaddresses: getaddrinfo failed: Name or service not known in /home/www/web245/html/abi/ftp.php on line 7

Warning: ftp_login() expects parameter 1 to be resource, boolean given in /home/www/web245/html/abi/ftp.php on line 10

was muss ich anders machen?
PHP-Code:
$ftp_server="ftp.web245.silverline-s11.de"# Hostname
$ftp_user_name="user";
$ftp_user_pass="1234";

$ziel dirname(__file__) . '/upload'# Verzeichnis muß existieren

# angenommenes Formularelement mit dem Namen 'bild'

$quell_name $_FILES['bild']['tmp_name'];
$ziel_name $_FILES['bild']['name'];

// Herstellen der Basis-Verbindung
if (! $conn = @ftp_connect("$ftp_server")) die ('Den Server gibts nicht');

// Einloggen mit Benutzername und Kennwort
if (! @ftp_login($conn$ftp_user_name$ftp_user_pass)) die ('Kein Login');

if (! @
ftp_chdir $conn$ziel)) die ('Kann nicht in Verzeichnis wechseln');

if (! @
ftp_fput($conn$quell_name$ziel_nameFTP_BINARY))  die ('Kann Datei nicht uploaden');

#Quelle löschen
@unlink($_FILES['bild']['tmp_name']); # Fehlermeldung ausknipsen. Wenn nicht gelöscht werden darf, dann bleibt es eben liegen 
So oder so ähnlich...
 
Alt 23.10.2004, 17:43  
Erfahrener Benutzer
 
Registriert seit: 08.11.2003
Beiträge: 139
Calexico
Standard

hmmm.....also ähnlich hatte ich meins auch, es ging ja noch weiter. ich hab einfach, das beispiel angewendet:

Code:
<?php
$ftp_server="ftp.web245.silverline-s11.de/";
$ftp_user_name="user";
$ftp_user_pass="1234";

// Herstellen der Basis-Verbindung
$conn_id = ftp_connect($ftp_server); 

// Einloggen mit Benutzername und Kennwort
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); 

// Verbindung überprüfen
if ((!$conn_id) || (!$login_result)) { 
        echo "Ftp-Verbindung nicht hergestellt!";
        echo "Verbindung mit $ftp_server als Benutzer $ftp_user_name nicht möglich"; 
        die; 
    } 

if(isset($_FILES["data"]) && !$_FILES["data"]["error"]){   
  
  $destination_file="bilder/".$_POST["album"]."/".$id.".jpg";
  $source_file=$_FILES["data"]["tmp_name"];
  
  // Upload der Datei
$upload = ftp_put($conn_id, "$destination_file", "$source_file", FTP_BINARY); 

// Upload-Status überprüfen
if (!$upload) { 
        Header("Location:../../index.php?path=interaktiv/fotoalbum/neu_bild&error=1".$session.""); exit;
    }

// Schließen des FTP-Streams
ftp_quit($conn_id);
}
?>
kurze fragen: was ist der unterschied zwischen ftp_put() und ftp_fput()? hat das irgendwelche auswirkungen? und muss ich in das verzeichnis wechseln bevor ich was rein kopiere?[/code]
Calexico ist offline  
Alt 23.10.2004, 17:53  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Calexico
hmmm.....also ähnlich hatte ich meins auch, es ging ja noch weiter. ich hab einfach, das beispiel angewendet:

kurze fragen: was ist der unterschied zwischen ftp_put() und ftp_fput()? hat das irgendwelche auswirkungen?
Einfach mal ausprobieren. Im Handbuch erscheinen beide Funktionen "auf den ersten Blick" gleich oder wenigstens ähnlich.
Zitat:
und muss ich in das verzeichnis wechseln bevor ich was rein kopiere?
Ja. Das ist bei FTP so Sitte.

PHP-Code:
<?php
# ...
// Upload-Status überprüfen
if (!$upload) { 
        
Header("Location:../../index.php?path=interaktiv/fotoalbum/neu_bild&error=1".$session.""); exit;
    }
?>
1. was steht in $session?
2. fehlt da noch session_write_close() vor header()
3. absoluten URL bei Location.
4. warum arbeitest Du nicht alles ab und merkst Dir die Fehler in der Session?
 
Alt 23.10.2004, 17:58  
Erfahrener Benutzer
 
Registriert seit: 08.11.2003
Beiträge: 139
Calexico
Standard

zu meiner variablen $session ist zu sagen, dass ich nicht mit sessions arbeite sondern nur mit der id!

den fehler warum ich keine verbindung bekam, hab ich gefunden! $ftp_server hatte nen / drin und das darf ja nicht sein!

jetzt hab ich das problem, dass das verzeichnis oder die datei nicht existiert:
Warning: ftp_put(): bilder/3/1.jpg: No such file or directory in /home/www/web245/html/abi/interaktiv/fotoalbum/speichern_bild.php on line 18

aber ich denke wenn ich vorher das verzeichnis wechsel dürfte es ja funktionieren,oder?
Calexico ist offline  
Alt 23.10.2004, 18:02  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Calexico
zu meiner variablen $session ist zu sagen, dass ich nicht mit sessions arbeite sondern nur mit der id!
Sowas ist Unfug, auf den Luxus zu verzichten.

Zitat:
den fehler warum ich keine verbindung bekam, hab ich gefunden! $ftp_server hatte nen / drin und das darf ja nicht sein!
Das hatte ich übersehen, weil Du geschrieben hattest, Du hättest meinen Scriptvorschlag nur erweitert.

Zitat:
jetzt hab ich das problem, dass das verzeichnis oder die datei nicht existiert:
Warning: ftp_put(): bilder/3/1.jpg: No such file or directory in /home/www/web245/html/abi/interaktiv/fotoalbum/speichern_bild.php on line 18
Korrekt. Pfade werden in PHP anders angegeben als in HTML.
 
Alt 23.10.2004, 18:06  
Erfahrener Benutzer
 
Registriert seit: 08.11.2003
Beiträge: 139
Calexico
Standard

wie werden sie denn angegeben? komme grad auf keinen grünen zweig!
Calexico ist offline  
Alt 23.10.2004, 18:21  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Calexico
wie werden sie denn angegeben?
Entweder absolut
Code:
/home/www/web245/html/abi/interaktiv/fotoalbum/
oder relativ
Code:
./
Das kennzeichnet das aktuelle Verzeichnis, in dem sich das aufgerufene Script befindet.

Das ist kein gültiger Pfad:
Code:
bilder/3
Das wäre ein gültiger Pfad:
Code:
./bilder/3
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Galerie Problem... coraplanet PHP Tipps 2008 4 06.06.2008 13:42
Sessions Problem StephenKing PHP Tipps 2008 3 16.10.2007 08:30
Ordner an ganz anderer Stelle mit mkdir() dethlef14 PHP Tipps 2006 2 11.10.2006 22:42
datensätze defekt oder problem mit dem einlesen? Ministry Datenbanken 4 06.07.2006 18:42
problem!!! PHP Tipps 2006 6 08.02.2006 11:06
[Erledigt] wieder ein Problem bei phpmailer und smtp PHP Tipps 2006 24 07.02.2006 01:07
Problem mit mkdir unter Debian PHP Tipps 2005-2 1 30.09.2005 20:13
Problem mit Weiterleitung PHP Tipps 2004-2 16 22.12.2004 17:49
mkdir() - Problem: Permission denied DannyD PHP Tipps 2004-2 5 08.12.2004 12:09
Smarty und PHP-Skript Problem PHP Tipps 2004-2 2 03.12.2004 22:27
[Erledigt] PHP Upload (Master Value/Local Value Problem) PHP-Fortgeschrittene 5 23.11.2004 07:21
Problem mit mkdir PHP Tipps 2004-2 2 11.11.2004 14:02
Problem mit alter JavaScript-Funktion woods PHP Tipps 2004 1 13.08.2004 13:34
[Erledigt] Problem mit Timestamp! PHP Tipps 2004 24 08.06.2004 19:51
Login Problem PHP Tipps 2004 4 04.06.2004 18:46

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mkdir php im selben verzeichnis, mkdir php from id, safe_mode mkdir, ftp mkdir fehlerbehandlung, datei upload safe_mode, es konnte keine ftp-verbindung aufgebaut werden. ftp_login() expects parameter 1 to be resource, boolean given, mkdir fehler bei unterordner, php safemode und header location, php safe_mode mkdir problem, php session bug mkdir, unterschied ftp_fput ftp_put, ftp_connect safe_mode, ftp_fput() expects parameter 3 to be resource, boolean given in

Alle Zeitangaben in WEZ +2. Es ist jetzt 02:23 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.