php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Bewertung: Bewertung: 2 Stimmen, 5,00 durchschnittlich.
  #1 (permalink)  
Alt 17-05-2004, 14:30
michab
 Newbie
Links : Onlinestatus : michab ist offline
Registriert seit: May 2004
Ort: Bonn
Beiträge: 10
michab ist zur Zeit noch ein unbeschriebenes Blatt
Standard Teilweise leeres Array bei File-Upload

Hallo zusammen.

Ich habe folgendes Problem beim File Upload:
Der Filename und Mine-Type wird erfasst, ab tmp_name ist aber Schicht. Das tmp Verzeichniss ist das Standard Serververzeichnis.

Auch wenn ich die Upload_dir in der php.ini explizit in /tmp ändere
gehts nicht. Vor kurzem gings noch.
Ich glaub ich hab mir nen Fehler eingebaut, seh ihn aber nicht.
Hier mal der Code dazu:
PHP-Code:
<?php
             
for ($i=0$i<=9$i=$i+1)
{
 
  
$fname=$_FILES['userfile'][$i];
  
$f_origname=$_FILES['userfile']['name'][$i];
  
$f_type=$_FILES['userfile']['type'][$i];
  
$f_tmpname=$_FILES['userfile']['tmp_name'][$i];
  
$f_error=$_FILES['userfile']['error'][$i];
  
$f_size=$_FILES['userfile']['size'][$i];
 
//if ($f_size > 0) {
  
echo("\$f_origname=$f_origname <br>");
  echo(
"\$f_type=$f_type <br>");
  echo(
"\$f_tmpname=$f_tmpname <br>");
  echo(
"\$f_error=$f_error <br>");
  echo(
"\$f_size=$f_size <br>");

  
$ziel="/var/www/zeit/zeit-lan/html/objektbilder/";
  
$errmsg="";
  
$warn="";
  
// Kontrolle der Dateigröße
  
$fmax25000 ;
  if(
$f_size>$fmax) {
    
$errmsg.="Datei zu gross <br>";
  }
  
// Kontrolle der Dateitype
  
$fe=array("text/plain","image/jpeg","image/gif");
  
$feerr="Dateitype unzulässig <br>";
  foreach ((array)
$fe as $me) {
    if(
$f_type==$me) {$feerr="";}
  }
  if(
strlen($feerr)) {$errmsg.=$feerr;}
  
// Existiert die Datei ?
  
$savename=$ziel.$f_origname;
  if(
file_exists($savename)) {
    
$warn.="(Datei überschrieben) <br>";
  }

  
// Datei sichern
  
if(strlen($errmsg)) {
    echo(
"Upload verweigert: <br>$errmsg ");
  }
  else {
    echo(
"Upload von $f_origname");
    
$savename=$ziel.$f_origname;
    
$r=copy($f_tmpname,$savename);
    if(
$r) {
      echo(
" war erfolgreich. <br>");
      echo(
$warn);
    }
    else {echo(
" fehlerhaft ! <br>");}
  }
// }
}
?>
Sieht einer mehr als ich ?

#micha#
Mit Zitat antworten
  #2 (permalink)  
Alt 17-05-2004, 15:02
Hopka
 PHP Expert
Links : Onlinestatus : Hopka ist offline
Registriert seit: May 2003
Ort: Köln
Beiträge: 2.172
Hopka ist zur Zeit noch ein unbeschriebenes Blatt
Hopka eine Nachricht über ICQ schicken
Standard

Wo ist denn genau das Problem?

Übrigens nimmt man heutzutage move_uploaded_file anstatt copy.
__________________
hopka.net!
Mit Zitat antworten
  #3 (permalink)  
Alt 17-05-2004, 15:25
michab
 Newbie
Links : Onlinestatus : michab ist offline
Registriert seit: May 2004
Ort: Bonn
Beiträge: 10
michab ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Das Problem sieht so aus:

PHP-Code:
Array
(
    [
userfile] => Array
        (
            [
name] => Array
                (
                    [
0] => VEREIN.jpg
                    
[1] => 
                    [
2] => 
                    [
3] => 
                    [
4] => 
                    [
5] => 
                    [
6] => 
                    [
7] => 
                    [
8] => 
                    [
9] => 
                )

            [
type] => Array
                (
                    [
0] => image/jpeg
                    
[1] => application/octet-stream
                    
[2] => application/octet-stream
                    
[3] => application/octet-stream
                    
[4] => application/octet-stream
                    
[5] => application/octet-stream
                    
[6] => application/octet-stream
                    
[7] => application/octet-stream
                    
[8] => application/octet-stream
                    
[9] => application/octet-stream
                
)

            [
tmp_name] => Array
                (
                    [
0] => none
                    
[1] => none
                    
[2] => none
                    
[3] => none
                    
[4] => none
                    
[5] => none
                    
[6] => none
                    
[7] => none
                    
[8] => none
                    
[9] => none
                
)

            [
size] => Array
                (
                    [
0] => 0
                    
[1] => 0
                    
[2] => 0
                    
[3] => 0
                    
[4] => 0
                    
[5] => 0
                    
[6] => 0
                    
[7] => 0
                    
[8] => 0
                    
[9] => 0
                
usw
Was man heutzutage nimmt hängt immer noch von der verwendeten PHP version ab oder ?

#Micha#
Mit Zitat antworten
  #4 (permalink)  
Alt 17-05-2004, 15:40
Hopka
 PHP Expert
Links : Onlinestatus : Hopka ist offline
Registriert seit: May 2003
Ort: Köln
Beiträge: 2.172
Hopka ist zur Zeit noch ein unbeschriebenes Blatt
Hopka eine Nachricht über ICQ schicken
Standard

Aha. Wie sieht denn das Formular aus?
__________________
hopka.net!
Mit Zitat antworten
  #5 (permalink)  
Alt 17-05-2004, 17:07
meikel
 Member
Links : Onlinestatus : meikel ist offline
Registriert seit: Mar 2003
Beiträge: 263
meikel ist zur Zeit noch ein unbeschriebenes Blatt
Standard Re: Teilweise leeres Array bei File-Upload

Zitat:
Original geschrieben von michab
Ich habe folgendes Problem beim File Upload:
Der Filename und Mine-Type wird erfasst, ab tmp_name ist aber Schicht. Das tmp Verzeichniss ist das Standard Serververzeichnis.
Sieht so aus, wie wenn der Apache nicht ins tmp schreiben darf.
Liefere entweder einen Link auf Dein phpinfo oder kontrolliere, ob safe_mode u/o open_basedir /pfad/zum/home gesetzt bzw. upload_tmp_dir falsch gesetzt sind.
Mit Zitat antworten
  #6 (permalink)  
Alt 17-05-2004, 19:21
michab
 Newbie
Links : Onlinestatus : michab ist offline
Registriert seit: May 2004
Ort: Bonn
Beiträge: 10
michab ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Das Formular sieht so aus.
PHP-Code:
<form enctype="multipart/form-data" method="post" action="new5.php?<?=SID?>">
                <table width="100%" border="0">
                  <tr> 
                    <td width="30%"><strong><font size="2">Multimedia</font></strong></td>
                    <td width="30%"><strong><font size="1"><?php echo $strasse ?>&nbsp;<?php echo $nr ?></font></strong></td>
                    <td width="5%">&nbsp;</td>
                    <td width="16%"><strong><font size="1"><?php echo $ort ?></font></strong></td>
                    <td colspan="2">&nbsp;</td>
                    <td width="19%">&nbsp;</td>
                  </tr>
                  <tr> 
                    <td>&nbsp;</td>
                    <td><input type="hidden" name="MAX_FILE_SIZE" value="30000"></td>
                    <td>&nbsp;</td>
                    <td>&nbsp;</td>
                    <td width="11%">&nbsp;</td>
                    <td width="19%">&nbsp;</td>
                    <td>&nbsp;</td>
                  </tr>
                  <tr> 
                    <td>&nbsp;</td>
                    <td>Dateiname</td>
                    <td>&nbsp;</td>
                    <td>Art der Datei</td>
                    <td>Dauer/sec.<br>
                      nur MPG </td>
                    <td>Titel im Expose</td>
                    <td>&nbsp;</td>
                  </tr>
                  <tr> 
                    <td>Datei 1</td>
                    <td height="26"> <input type="file" name="userfile[]"></td>
                    <td>&nbsp;</td>
                    <td><select name="oart110" id="oart110">
                        <option value="L">Link</option>
                        <option value="B">Bild</option>
                        <option value="V">Video</option>
                      </select></td>
                    <td><input name="odauer112" type="text" id="odauer112" size="5" maxlength="5"></td>
                    <td><input name="otext112" type="text" id="otext112" size="20" maxlength="20"></td>
                    <td>&nbsp;</td>
                  </tr>
                  <tr> 
                    <td>Datei 2</td>
                    <td><input type="file" name="userfile[]"></td>
                    <td>&nbsp;</td>
                    <td><select name="select" id="select">
                        <option value="L">Link</option>
                        <option value="B">Bild</option>
                        <option value="V">Video</option>
                      </select></td>
                    <td><input name="odauer1122" type="text" id="odauer1122" size="5" maxlength="5"></td>
                    <td><input name="otext1122" type="text" id="otext1122" size="20" maxlength="20"></td>
                    <td>&nbsp;</td>
                  </tr>
                  <tr> 
                    <td>Datei 3</td>
                    <td><input type="file" name="userfile[]"></td>
                    <td>&nbsp;</td>
                    <td><select name="select2" id="select2">
                        <option value="L">Link</option>
                        <option value="B">Bild</option>
                        <option value="V">Video</option>
                      </select></td>
                    <td><input name="odauer1123" type="text" id="odauer1123" size="5" maxlength="5"></td>
                    <td><input name="otext1123" type="text" id="otext1123" size="20" maxlength="20"></td>
                    <td>&nbsp;</td>
                  </tr>
                  <tr> 
                    <td>Datei 4</td>
                    <td><input type="file" name="userfile[]"></td>
                    <td>&nbsp;</td>
                    <td><select name="select3" id="select3">
                        <option value="L">Link</option>
                        <option value="B">Bild</option>
                        <option value="V">Video</option>
                      </select></td>
                    <td><input name="odauer1124" type="text" id="odauer1124" size="5" maxlength="5"></td>
                    <td><input name="otext1124" type="text" id="otext1124" size="20" maxlength="20"></td>
                    <td>&nbsp;</td>
                  </tr>
                  <tr> 
                    <td>Datei 5</td>
                    <td><input type="file" name="userfile[]"></td>
                    <td>&nbsp;</td>
                    <td><select name="select4" id="select4">
                        <option value="L">Link</option>
                        <option value="B">Bild</option>
                        <option value="V">Video</option>
                      </select></td>
                    <td><input name="odauer1125" type="text" id="odauer1125" size="5" maxlength="5"></td>
                    <td><input name="otext1125" type="text" id="otext1125" size="20" maxlength="20"></td>
                    <td>&nbsp;</td>
                  </tr>
                  <tr> 
                    <td>Datei 6</td>
                    <td><input type="file" name="userfile[]"></td>
                    <td>&nbsp;</td>
                    <td><select name="select5" id="select5">
                        <option value="L">Link</option>
                        <option value="B">Bild</option>
                        <option value="V">Video</option>
                      </select></td>
                    <td><input name="odauer1126" type="text" id="odauer1126" size="5" maxlength="5"></td>
                    <td><input name="otext1126" type="text" id="otext1126" size="20" maxlength="20"></td>
                    <td>&nbsp;</td>
                  </tr>
                  <tr> 
                    <td>Datei 7</td>
                    <td><input type="file" name="userfile[]"></td>
                    <td>&nbsp;</td>
                    <td><select name="select6" id="select6">
                        <option value="L">Link</option>
                        <option value="B">Bild</option>
                        <option value="V">Video</option>
                      </select></td>
                    <td><input name="odauer1127" type="text" id="odauer1127" size="5" maxlength="5"></td>
                    <td><input name="otext1127" type="text" id="otext1127" size="20" maxlength="20"></td>
                    <td>&nbsp;</td>
                  </tr>
                  <tr> 
                    <td>Datei 8</td>
                    <td><input type="file" name="userfile[]"></td>
                    <td>&nbsp;</td>
                    <td><select name="select7" id="select7">
                        <option value="L">Link</option>
                        <option value="B">Bild</option>
                        <option value="V">Video</option>
                      </select></td>
                    <td><input name="odauer1128" type="text" id="odauer1128" size="5" maxlength="5"></td>
                    <td><input name="otext1128" type="text" id="otext1128" size="20" maxlength="20"></td>
                    <td>&nbsp;</td>
                  </tr>
                  <tr> 
                    <td>Datei 9</td>
                    <td><input type="file" name="userfile[]"></td>
                    <td>&nbsp;</td>
                    <td><select name="select8" id="select8">
                        <option value="L">Link</option>
                        <option value="B">Bild</option>
                        <option value="V">Video</option>
                      </select></td>
                    <td><input name="odauer1129" type="text" id="odauer1129" size="5" maxlength="5"></td>
                    <td><input name="otext1129" type="text" id="otext1129" size="20" maxlength="20"></td>
                    <td>&nbsp;</td>
                  </tr>
                  <tr> 
                    <td>Datei 10</td>
                    <td><input type="file" name="userfile[]"></td>
                    <td>&nbsp;</td>
                    <td><select name="select9" id="select9">
                        <option value="L">Link</option>
                        <option value="B">Bild</option>
                        <option value="V">Video</option>
                      </select></td>
                    <td><input name="odauer11210" type="text" id="odauer11210" size="5" maxlength="5"></td>
                    <td><input name="otext11210" type="text" id="otext11210" size="20" maxlength="20"></td>
                    <td>&nbsp;</td>
                  </tr>
                  <tr> 
                    <td>&nbsp;</td>
                    <td>&nbsp;</td>
                    <td>&nbsp;</td>
                    <td>&nbsp;</td>
                    <td>&nbsp;</td>
                    <td><input type="submit" name="senden" value="speichern & weiter"></td>
                    <td>&nbsp;</td>
                  </tr>
                </table>
              </form>
Merkwürdig ist, das das ganze schonmal funktioniert hat.
Ich werd mir auch mal die http.conf ansehen.
Der Apache darf in tmp schreiben, da werden die Session-ID's
ohne Probleme abgelegt. Das dürfte also nicht die Ursache sein.
Safe_mode ist off
upload_tmp_dir ist in der php.ini leer, das heist standard.
Hab jetzt nochmal in meiner vhost.conf php_admin_value upload_tmp_dir gesetzt. Keine Änderung

Zugriffsrechte sind ok.
Php.ini kann ich nicht verlinken, ist ein localer Server.
Mit Zitat antworten
  #7 (permalink)  
Alt 17-05-2004, 20:51
meikel
 Member
Links : Onlinestatus : meikel ist offline
Registriert seit: Mar 2003
Beiträge: 263
meikel ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von michab
[B]Das Formular sieht so aus.
PHP-Code:
<form enctype="multipart/form-data" method="post" action="new5.php?<?=SID?>">
<input type="hidden" name="MAX_FILE_SIZE" value="30000">

<input type="file" name="userfile[]"> ###
<input type="file" name="userfile[]"> ###
</form>
Die file Tags würde ich noch mal kontrollieren:
11.12. Wie kann ich mehrere Dateien auf einmal uploaden?
http://www.dclp-faq.de/q/q-formular-...ch-upload.html

Zitat:
Merkwürdig ist, das das ganze schonmal funktioniert hat.
Ich werd mir auch mal die http.conf ansehen.
Hier mal als Beispiel ein Template, wie ich normale Virtualhosts anlege:
Code:
<VirtualHost {IP}:80>
    ServerName {DOMAIN}
    ServerAlias www.{DOMAIN}
    DocumentRoot /home/www/{USER}/##DOMAIN##/html
    CustomLog /home/www/{USER}/{DOMAIN}/log/access_log common
    CustomLog /home/www/{USER}/{DOMAIN}/log/referer_log referer
    CustomLog /home/www/{USER}/{DOMAIN}/log/agent_log agent
    CustomLog /home/www/{USER}/{DOMAIN}/log/access_log combined
    AddType application/x-httpd-php .php
    php_admin_flag register_globals Off
    php_admin_flag safe_mode On
    php_admin_value include_path .
    php_admin_value open_basedir /home/www/{USER}/{DOMAIN}/
    php_admin_value upload_tmp_dir /home/www/{USER}/{DOMAIN}/tmp
    php_admin_value session.save_path /home/www/{USER}/{DOMAIN}/tmp
</VirtualHost>
Die Platzhalter {DOMAIN} usw. sind selbsterklärend.
Mit Zitat antworten
  #8 (permalink)  
Alt 18-05-2004, 18:40
michab
 Newbie
Links : Onlinestatus : michab ist offline
Registriert seit: May 2004
Ort: Bonn
Beiträge: 10
michab ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Tja, die virtual host konfiguration ist bei mir ähnlich.
Debian legts ein bischen anders an, aber das ist marginal.

Das mit der TAG überprüfung hab ich jetzt nicht verstanden.
Das scheint mir in meinem Script logisch zu sein.

#micha#
Mit Zitat antworten
  #9 (permalink)  
Alt 18-05-2004, 22:33
michab
 Newbie
Links : Onlinestatus : michab ist offline
Registriert seit: May 2004
Ort: Bonn
Beiträge: 10
michab ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ich glaub's nicht, es liegt an der Dateiendung.
Gif Dateien gehen ohne Probleme.

Ich werd dem Schweinchen schon schlachten auch wenn es quickt

#micha#
Mit Zitat antworten
  #10 (permalink)  
Alt 18-05-2004, 22:43
michab
 Newbie
Links : Onlinestatus : michab ist offline
Registriert seit: May 2004
Ort: Bonn
Beiträge: 10
michab ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Lösung:

Ich habe die Zeile :
PHP-Code:
 $fe=array("text/plain","image/jpeg","image/gif"); 
gegen
PHP-Code:
 $fe=array("text/plain","image/gif","image/jpeg"); 
getauscht.

Jetzt geht es problemlos. Weis der Teufel warum.

#micha#
Mit Zitat antworten
  #11 (permalink)  
Alt 21-05-2004, 03:12
meikel
 Member
Links : Onlinestatus : meikel ist offline
Registriert seit: Mar 2003
Beiträge: 263
meikel ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von michab
Weis der Teufel warum.
Ich auch nicht. Dein Script war mir nämlich viel zu wüst, um den verschlungenen Pfaden Deines Algorithmusses zu folgen.

zB.: sowas ist mir zu hoch:
PHP-Code:
  $fe=array("text/plain","image/jpeg","image/gif");
  
$feerr="Dateitype unzulässig <br>";
  foreach ((array)
$fe as $me) {
    if(
$f_type==$me) {$feerr="";}
  } 
1. würde ich die Arraydefinition außerhalb der FOR Schleife anordnen.
2. würde ich die Fehlermeldung als Konstante definieren
3. würde ich die Zulässigkeit des Contenttyps anders prüfen:
PHP-Code:
$ok in_array($f_type$fe);
# ...
if (!$ok) print $feerr
4. würde ich sowas nicht tun:
PHP-Code:
for ($i=0$i<=9$i=$i+1){ 
sondern das:
PHP-Code:
$n count($_FILES['userfile']['name']);
for (
$i=0$i $n$i++) { 
usw.

Geändert von meikel (21-05-2004 um 03:17 Uhr)
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

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.

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


PHP News

Software für alle Arten von digitalen Marktplätzen
Software für alle Arten von digitalen MarktplätzenDigitale Marktplätze sind nicht nur im B2C Geschäft seit Jahren etabliert, sondern erfreuen sich mit Kleinanzeigen-Märkten auf lokaler und regionaler Ebene auch im privaten Bereich wachsender Beliebtheit.

09.11.2021 | Berni

Von 0 auf über 2 Mio € Umsatz in weniger als 12 Monaten – wie die Pixelwerker das nur durch SEO geschafft haben
Von 0 auf über 2 Mio € Umsatz in weniger als 12 Monaten – wie die Pixelwerker das nur durch SEO geschafft habenSEO oder SEA? Warum SEO die besserer Methode ist.

01.10.2021 | Berni


 

Aktuelle PHP Scripte

ebiz-trader 6.0 - Das professionelle PHP Marktplatz Script ansehen ebiz-trader 6.0 - Das professionelle PHP Marktplatz Script

Mit unserer Lösungen können Sie nahezu jeden B2B / B2C Marktplatz betreiben den Sie sich vorstellen können. Ganz egal ob Sie einen Automarktplatz, Immobilenportal oder einfach einen Anzeigenmarkt betreiben möchten. Mit ebiz-trader können Sie Ihre Anforder

09.11.2021 Berni | Kategorie: PHP/ Anzeigenmarkt
PHP Newsletter Script SuperWebMailer ansehen PHP Newsletter Script SuperWebMailer

Die webbasierte PHP Newsletter Software SuperWebMailer ist die optimale Lösung zur Durchführung eines erfolgreichen E-Mail-Marketings. Zur Nutzung des PHP Script-Pakets ist eine eigene Webpräsenz/Server mit PHP 5 oder neuer, MySQL 4 oder neuer und die

28.10.2021 mirko_swm | Kategorie: PHP/ Mail
Guestbook Light ansehen Guestbook Light

Das Guestbook Light (kurz: "Gblight") ist ein kinderleichtes Gästebuch in PHP. Durch den Einsatz einer SQLite Datenbank ist es einfach, leicht portabel und schnell. Aufgrund moderner Techniken erfüllt Gblight auch die neuesten Webstandards.

28.10.2021 scripthostingnet | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 21:19 Uhr.