$_FILES bleibt leer
heinetz
- php
Hallo Forum,
ich habe ein PHP-Skript geschrieben, dass abgesendete Formulardaten
mit php:mail() verschickt. Das funktioniert. Dann habe ich das Formular
um drei Upload-Felder (type="file") ergänzt. Auch das funktioniert ...
auf meiner Entwicklungsumgebung(xampp), auf dem Liveserver leider noch nicht.
Folgend der (gekürzte) Code:
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
html
----
<form enctype="multipart/form-data" method="post">
...
<input class="file" type="file" name="1st_Attachement" />
</form>
php
---
if ($_POST) post2mail();
function post2mail ()
{
global $_POST;
global $_FILES;
echo count($_FILES);
...
}
Ausgabe
-------
0
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Das Array $_FILES ist leider leer. Woran kann es liegen, dass auf
meiner Entwicklungsumgebung alle funktioniert, aber auf dem Live-
Server nicht ?
danke für Tipps und
beste gruesse,
heinetz
Hallo
if ($_POST) post2mail();
function post2mail ()
{
global $_POST;
// $_POST und $_FILES sind superglobal. Noch globaler geht nicht.
global $_FILES;
echo count($_FILES);
...
}
> Das Array $\_FILES ist leider leer. Woran kann es liegen, dass auf
> meiner Entwicklungsumgebung alle funktioniert, aber auf dem Live-
> Server nicht ?
an der [fehlenden Fehlerüberprüfung](http://www.php.net/manual/de/features.file-upload.errors.php).
Freundliche Grüße
Vinzenz
Hi,
an der fehlenden Fehlerüberprüfung.
Besten Dank für den Tipp, den Zusammenhang verstehe ich
allerdings nicht. Wenn das Array $_FILES leer ist, kann
doch in $_FILES['1st_Attachement']['error'] auch nichts
stehen. Ich hab's dennoch ausprobiert. Allerdings, wie
erwartet ohne Ausgabe.
beste gruesse,
heinetz
Hi heinetz,
Besten Dank für den Tipp, den Zusammenhang verstehe ich
allerdings nicht. Wenn das Array $_FILES leer ist, kann
doch in $_FILES['1st_Attachement']['error'] auch nichts
stehen. Ich hab's dennoch ausprobiert. Allerdings, wie
erwartet ohne Ausgabe.
Das ist richtig.
Hast du die INI-Einstellungen für Datei-Uploads geprüft?
upload_max_filesize wird übrigens von post_max_size beschränkt.
Viele Grüße,
~ Dennis.
Hi,
danke für den Tipp. Ich habe folgende Zeilen in der phpinfo gefunden,
die mir relevant erschienen:
Directive Local Value Master Value
--------------------------------------------------------------------
file_uploads On On
post_max_size 8M 8M
upload_max_filesize 10000000 2M
upload_tmp_dir /home/kunden/argoavia/tmp no value
Hier gibt es aber nochmal die komplette phpinfo als pdf.
Was mir an der phpinfo nicht gaz klar ist, ist was 'Local' und was 'Master
Value' zu bedeuten hat. Daher könnte die 4. Zeile (no value) kritisch sein.
Ausprobiert habe ich noch folgendes:
echo is_dir("/home/kunden/argoavia/tmp");
-> 1 (das Verzeichnis ist existent)
echo fopen("/home/kunden/argoavia/tmp", "w");
-> 1 (mein php-script hat schreibrechte)
Das gif, das ich zum test hochladen will,
hat übrigens eine Grösse von 102 Byte.
beste gruesse,
heinetz
Hi,
jetzt hab ich's endlich gefunden ! Es hängt irgendwie mit einer
Domainweiterleitung zusammen. Ich habe das nun mit der Hauptdomain (?)
probiert:
Meine Domain 'http://www.example.co.uk' zeigt auf das Verzeichnis
'/public_html/uk'. Wärend 'http://www.example.de' auf '/public_html'
zeigt. Von der Domain aus geht es (abgesehen, dass verschiedene
Pfade zu Bildern und CSS-Files nicht mehr passen) dann auch.
Nur was muss ich ändern, um den Upload unter 'http://www.example.co.uk'
zu realisieren. Bzw. geht das überhaupt, ohne die php.ini anfassen zu
können ?
danke und
beste gruesse,
heinetz