CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden |
01.08.2007, 22:25:06
|
Anfänger
|
|
Registriert seit: Jul 2007
Beiträge: 7
|
|
file Upload
Hallo Leute,
leider muß ich wieder einmal eine Frage dazu stellen.
Kann es mir nicht erklären, aber irgendwie funktioniert mein Programm nicht.
Ich habe es geschaft ein Forum zu coden, aber so ein blödes fileupload Teil will nicht :-)
Ich möchte gerne ein Mitglied dieser community werden, daher werdet ihr sicher noch öfter von mir hören.
PHP-Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>File Upload</title>
</head>
<body>
<?php
echo "
<form name='fileupload' enctype='multipart/form-data' method='post' action='" . $_SERVER[PHP_SELF] . "'>
<input type='hidden' name='max_file_size' value='10000'>
<input type='file' name='file'><br><br>
<input type='submit' name='submit' value='Uploaden'><br><br>
</form>";
if (isset($_REQUEST["submit"]))
{
echo "Name: " . $_FILES["file"]["name"] . "<br>";
echo "Temp Name: " . $_FILES["file"]["tmp_name"] . "<br>";
echo "Grösse: " . $_FILES["file"]["size"] . " Byte<br>";
echo "Type: " . $_FILES["file"]["type"] . "<br>";
echo "derzeitiger Pfad: " . $_SERVER["DOCUMENT_ROOT"] . "<br>";
$test = move_uploaded_file( $_FILES["file"]["name"], $_SERVER["DOCUMENT_ROOT"] . "/" . $_FILES["file"]["name"]) . "<br>";
if($test)
{
echo "File erfolgreich verschoben in: " . $_SERVER["DOCUMENT_ROOT"] . "/test.txt";
}
else
{
echo "Upload hat nicht funktioniert";
}
}
?>
</body>
</html>
Eigentlich sieht es ganz gut aus. $test = TRUE und er gibt alles so aus als würde es ohne Probleme funktionieren. Ist dann aber nix auf dem Server.
lg Darian
|
01.08.2007, 22:45:56
|
|
SELFPHP Guru
|
|
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
|
|
AW: file Upload
Zitat:
Zitat von Darian
PHP-Code:
$test = move_uploaded_file( $_FILES["file"]["name"], $_SERVER["DOCUMENT_ROOT"] . "/" . $_FILES["file"]["name"]) . "<br>";
Eigentlich sieht es ganz gut aus. $test = TRUE und er gibt alles so aus als würde es ohne Probleme funktionieren. Ist dann aber nix auf dem Server.
|
Tja, "er" tut genau das, was Du getippert hat. Allerdings müßte es Mecker geben, weil das temporäre File nicht $_FILES["file"]["name"] sondern $_FILES["file"]["tmp_name"] heißt.
11.11. Wie funktioniert ein Datei-Upload über HTML-Formulare?
http://www.php-faq.de/q/q-formular-upload-php4.html
Kapitel 38. Steuerung von Dateiuploads
http://de3.php.net/manual/de/features.file-upload.php
|
02.08.2007, 00:01:01
|
Anfänger
|
|
Registriert seit: Jul 2007
Beiträge: 7
|
|
AW: file Upload
Hallo, danke für deine Info, die links habe ich schon gesehen, ich dachte nur ich brauche den Namen wie ich es upgeloadet habe. (habe es also übersehen)
Jetzt schaut es schon besser aus. Habe nun leider einen anderen Fehler:
PHP-Code:
Warning: move_uploaded_file() [function.move-uploaded-file]: SAFE MODE Restriction in effect. The script whose uid is 10062 is not allowed to access /var/www/web3/web owned by uid 33 in /var/www/web3/user/roteskreuz/web/upload.php on line 27
Der Fehler ist ja erkärt, wie kann ich da was machen. mit ini_set, oder .htaccess was umstellen??
lg und danke für deine Hilfe bis jetzt
Daniel
<edit>Mit php_ini() kann man soviel ich weiß da nix umstellen</edit>
<edit2>Mit .htaccess läuft dann gar nix mehr
Folgendes eingetragen:
PHP-Code:
php_flag safe_mode off
Geändert von Darian (02.08.2007 um 00:48:31 Uhr)
Grund: neue Erkenntniss
|
02.08.2007, 00:58:31
|
|
SELFPHP Guru
|
|
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
|
|
AW: file Upload
Den safe_mode kann nur der Root ausschalten, wird er aber nicht tun.
Teste mit is_uploaded_file($_FILES["file"]["tmp_name"]) die Gültigkeit und ersetze move_uploaded_file() durch copy()
Bevor jemand meckert:
wenn der safe_mode keine Löschaktion im upload_tmp_dir gestattet, weil das File dem Apachen (uid: 30) und das Script dem FTP User (uid: 10062) gehört, dann muß der Root eben selber die Leichen in die Tonne kloppen. <ggg>
|
02.08.2007, 02:32:34
|
Anfänger
|
|
Registriert seit: Jul 2007
Beiträge: 7
|
|
AW: file Upload
Danke, habe das probiert, und bin zu folgender Meldung gekommen:
PHP-Code:
Name: fehlermeldung.txt
Temp Name: /var/www/web3/phptmp/phprP6CqV
Grösse: 155 Byte
Type: text/plain
Fehlercode: 0
derzeitiger Pfad: /var/www/web3/web
File ist am Server
Warning: copy() [function.copy]: SAFE MODE Restriction in effect. The script whose uid is 10062 is not allowed to access /var/www/web3/web owned by uid 33 in /var/www/web3/user/roteskreuz/web/upload.php on line 31
Warning: copy(/var/www/web3/web) [function.copy]: failed to open stream: Success in /var/www/web3/user/roteskreuz/web/upload.php on line 31
Datei nicht kopiert!
lg Darian
|
02.08.2007, 12:05:39
|
|
SELFPHP Guru
|
|
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
|
|
AW: file Upload
Zitat:
Zitat von Darian
Danke, habe das probiert, und bin zu folgender Meldung gekommen:
|
Sehr eichelartig...
Solche Pfade /var/www/web3 erinnern mich zwar an Confixx, aber das /var/www/web3/web und das /var/www/web3/user macht mich stutzig, weil es diese Pfade unter Confixx 3 eigentlich nicht gibt. Lediglich der Tempname incl. Pfad /var/www/web3/phptmp/phprP6CqV ist korrekt.
Frage: wie wurden im FTP Root /var/www/web3 die Unterverzeichnisse ./web und ./user erzeugt? Normalerweise darf der Eigentümer dort keine Verzeichnisse anlegen. Beschreibbar sind die Verzeichnisse ./files (privates Verzeichnis) ./phptmp (upload_tmp_dir) und ./html (documentroot).
Oder haste bei dem Zielpfad das /html/ vergessen?
Egal was auch immer:
da PHP sehr gnatzig ist, bleibt Dir nix anderes übrig als die FTP Funktionen zu nutzen.
Dein Script muß also zum, eigenem Server mit Deinen Zugangsdaten eine FTP Verbindung herstellen http://de2.php.net/ftp_connect und mit http://de2.php.net/manual/de/function.ftp-put.php das File uploaden.
PHP-Code:
if (ftp_put ($ftp_stream, $zielpfad . '/' . $_FILES["file"]["name"], $_FILES["file"]["tmp_name"], FTP_BINARY ))
echo 'OK';
else
echo 'Mist';
|
02.08.2007, 22:50:30
|
Anfänger
|
|
Registriert seit: Jul 2007
Beiträge: 7
|
|
AW: file Upload
Hallo,
das Verzeichnis /web war schon da, und da habe ich einfach alles rein gepackt.
Es ist http://www.ispconfig.org/ installiert soweit ich das jetzt sehe.
Würde mich freuen wenn ihr hier noch Ideen habt, sonst muß ich wirklich die ftp funktion benutzen.
Frage, hat das Nachteile FTP zu benutzen? Schneller/Langsamer? Sicherer?
Nur damit ich gur schlafen kann, und weil es mich jetzt persönlich interessiert.
lg Daniel
P.S.: Wenn ihr mir konkret sagt was umgestellt gehört, könnte ich mit dem Provider reden, ich kenne da den Chef persönlich.
(safe_mode=off) wie sieht es dann mit der Sicherheit aus, oder was könnte dann passieren?
|
03.08.2007, 01:47:30
|
|
SELFPHP Guru
|
|
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
|
|
AW: file Upload
Zitat:
Zitat von Darian
|
OK, auf den ersten Blick sahs wie Confixx aus.
Zitat:
Frage, hat das Nachteile FTP zu benutzen?
|
Nein. Eher Vorteile, weil die Files dann allesamt dem FTP User gehören, der sonst jammern würde, wenn ihm Linux verbietet, die Files des Apachen zu löschen.
Jo, die per HTTP übertragenen Files gehören dem Indianer. Und wenn Du die mit den FTP Funktionen in Dein Homeverzeichnis reinkopierst, dann gehören sie Dir.
Geändert von meikel (†) (03.08.2007 um 01:49:03 Uhr)
|
03.08.2007, 17:36:42
|
Anfänger
|
|
Registriert seit: Jul 2007
Beiträge: 7
|
|
AW: file Upload
Hallo danke,
hört sich gut an, dann mache ich das so.
mfg und danke für deine Hilfe
Daniel
|
04.08.2007, 01:10:48
|
Anfänger
|
|
Registriert seit: Jul 2007
Beiträge: 7
|
|
AW: file Upload
Hätte jetzt nun noch eine Frage, und wäre super wenn mir da wieder ein paar Tipps geben könnte:
Folgendes funktioniert nicht:
PHP-Code:
ftp_put($ftp_stream, $_SERVER["DOCUMENT_ROOT"] . "/" . $_FILES["file"]["name"], $_FILES["file"]["tmp_name"], FTP_BINARY)
Warning: ftp_put() [function.ftp-put]: /var/www/web3/web/casakey.txt: No such file or directory in /var/www/web3/user/roteskreuz/web/upload.php on line 36
Was ist hier genau der unterschied zwischen ftp_put und ftp_fput?
lg
Darian
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 22:02:22 Uhr.
|