WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 06.06.2006, 10:32   #1
Satan_666
Inventar
 
Registriert seit: 03.09.2000
Beiträge: 4.010


Standard Datei-Upload funktioniert nicht

Hi @all,

ich möchte über ein Web-Formular ein Bild auf meinen Webspace kopieren; das unten stehende php-Script sollte das Speichern der Datei übernehmen:

PHP-Code:
  $banner=$_POST['banner'];
  
$fziel="banner/";
  
$datei_max="30720";
  
$ftype="falsch";
  
$fm=0;
  
$nr=0;
  if(
$banner):
    if(
$_FILES['banner']['type'] == "image/gif"):
      
$ftype="richtig";
      
$btyp=".gif";
    endif;
    if(
$_FILES['banner']['type'] == "image/jpg"):
      
$ftype="richtig";
      
$btyp=".jpg";
    endif;
    if(
$_FILES['banner']['type'] == "image/jpeg"):
      
$ftype="richtig";
      
$btyp=".jpg";
    endif;
    if(
$_FILES['banner']['type'] == "image/pjpeg"):
      
$ftype="richtig";
      
$btyp=".jpg";
    endif;
    if(
$ftype == "falsch"):
      
$fm=1;
    endif;
    if(
$_FILES['banner']['size'] > $datei_max):
      
$fm=2;
    endif;
    if(
$fm==0):
      
$abmessung=getimagesize($banner);
      if(
$abmessung[0] > 500):
        
$fm=6;
      endif;
      if(
$abmessung[1] > 80):
        
$fm=7;
      endif;
    endif;
  else:
    
$fm=3;
  endif;
  if(
$fm == 0):
    
$lfdnr=$nr 1;
    
$bannername="b".$lfdnr."".$btyp;
    
$ziel=$fziel.$bannername;
    
$stat=copy($banner$ziel);
  endif; 
Tut es aber nicht; keine Ahnung, wieso. Bei mir zu Hause unter XAMPP funktioniert das Script wie gewünscht, am Webspace kriege ich leider nur eine Fehlermeldung beim Copy (letzte Zeile im Script). Und: ja, ich habe für das Verzeichnis banner am Server die Dateiattribute auf 777 gesetzt, daran kann es also nicht liegen.

Wäre für etwaige Hinweise, die zur Lösung des Problemes beiträgt, sehr dankbar!
____________________________________
Für ein friedliches Zusammenleben im Forum werde ich ab sofort keine Trolle mehr füttern, und zwar unabhängig von der Sinnhaftigkeit ihrer Wortmeldungen.
Satan_666 ist offline   Mit Zitat antworten
Alt 06.06.2006, 14:57   #2
hewlett
Inventar
 
Registriert seit: 08.11.2000
Alter: 42
Beiträge: 1.524


Standard

genaue fehlermeldung?
____________________________________
H.E.W.L.E.T.T.: Hydraulic Electronic Worker Limited to Exploration and Terran Troubleshooting
hewlett ist offline   Mit Zitat antworten
Alt 06.06.2006, 15:27   #3
Satan_666
Inventar
 
Registriert seit: 03.09.2000
Beiträge: 4.010


Standard

Warning: copy() [function.copy]: Unable to access in /var/www/html/web474/html/putbanner.php on line 46

Es schaut für mich so aus, als ob die Datei einfach nicht auf den Server übertragen wird. Zumindest ist die Variable $banner immer leer....
____________________________________
Für ein friedliches Zusammenleben im Forum werde ich ab sofort keine Trolle mehr füttern, und zwar unabhängig von der Sinnhaftigkeit ihrer Wortmeldungen.
Satan_666 ist offline   Mit Zitat antworten
Alt 06.06.2006, 15:44   #4
Satan_666
Inventar
 
Registriert seit: 03.09.2000
Beiträge: 4.010


Standard

Hier übrigens der Teil aus dem HTML-Dokument:

PHP-Code:
<form enctype="multipart/form-data" method="post" action="putbanner.php">
  <
table border="0" align="center" width="80%">
    <
tr>
      <
td align="right" valign="top">Ihr Name:</td>
      <
td><input class="bunt" type="text" name="nname" size="53" maxlength="40" value=""/></td>
    </
tr>
    <
tr>
      <
td align="right" valign="top">Ihre eMail-Adresse:</td>
      <
td><input class="bunt" type="text" name="email" size="53" maxlength="40" value=""/></td>
    </
tr>
    <
tr>
      <
td align="right" valign="top">Ihr Banner:</td>
      <
td><input class="bunt" name="banner" type="file" size="31" rows="8" value=""/></td>
    </
tr>
    <
tr>
      <
td align="right" valign="top">Ihre Web-Adresse:</td>
      <
td><input class="bunt" type="text" name="link" size="53" maxlength="40" value=""/></td>
    </
tr>
    <
tr>
      <
td></td>
      <
td><input type="submit" value="Abschicken"/>
        <
input type="hidden" name="bereich" value="99"/>
        <
input type="hidden" name="sub" value="6"/>
        <
input type="hidden" name="vonbereich" value="7"/>
        <
input type="hidden" name="vonsub" value="7"/>
      </
td>
    </
tr>
  </
table>
</
form
____________________________________
Für ein friedliches Zusammenleben im Forum werde ich ab sofort keine Trolle mehr füttern, und zwar unabhängig von der Sinnhaftigkeit ihrer Wortmeldungen.
Satan_666 ist offline   Mit Zitat antworten
Alt 06.06.2006, 19:19   #5
reemrev
Inventar
 
Registriert seit: 31.01.2000
Beiträge: 1.706

Mein Computer

Standard

$ziel=$fziel.$bannername;
$stat=copy($banner, $ziel);

Versuche mal hier diese Zeile anzuhängen
chmod( $ziel, 0755);

Hatte selbes Problem, zu Hause gings, am Server nicht mehr.
(ps: $ziel wäre die hochgeladenen Datei)
reemrev ist offline   Mit Zitat antworten
Alt 07.06.2006, 14:19   #6
Satan_666
Inventar
 
Registriert seit: 03.09.2000
Beiträge: 4.010


Standard

@reemrev:

Danke für den Tipp; bringt leider auch nichts. Hatte schon vorher befürchtet, dass das nichts bringt, weil es so aussieht, als ob die Datei einfach nicht auf den Server übertragen wird. Wie gesagt, die Variable $banner ist nach dem Aufruf des Scripts leer, obwohl dort ja der Pfad und Name der Datei drin stehen sollte.

Ist es denkbar, dass der Provider den HTML-Upload entweder falsch eingerichtet hat oder nicht erlaubt?
____________________________________
Für ein friedliches Zusammenleben im Forum werde ich ab sofort keine Trolle mehr füttern, und zwar unabhängig von der Sinnhaftigkeit ihrer Wortmeldungen.
Satan_666 ist offline   Mit Zitat antworten
Alt 07.06.2006, 14:36   #7
hewlett
Inventar
 
Registriert seit: 08.11.2000
Alter: 42
Beiträge: 1.524


Standard

Code:
copy($_FILES['banner']['tmp_name'],"tmp".$ext);
in $ext steht die Dateiendung.

So machs ich, und so funktionierst auch.

Lies dir mal das durch http://www.php-center.de/de-html-man...le-upload.html dann wird dir vielleicht einiges klarer!
____________________________________
H.E.W.L.E.T.T.: Hydraulic Electronic Worker Limited to Exploration and Terran Troubleshooting
hewlett ist offline   Mit Zitat antworten
Alt 07.06.2006, 14:44   #8
T.dot
Master
 
Registriert seit: 13.08.2003
Beiträge: 624


Standard

Jo, ich glaub das Hauptproblem liegt daran, dass einfach
$banner=$_POST['banner'];
nicht funktioniert.

Wirf mal Google zu dem Thema an, oder schau hier rein:
http://de.php.net/manual/en/features.file-upload.php
T.dot ist offline   Mit Zitat antworten
Alt 07.06.2006, 14:57   #9
Satan_666
Inventar
 
Registriert seit: 03.09.2000
Beiträge: 4.010


Standard

Thanks - genau DAS hat geholfen....

____________________________________
Für ein friedliches Zusammenleben im Forum werde ich ab sofort keine Trolle mehr füttern, und zwar unabhängig von der Sinnhaftigkeit ihrer Wortmeldungen.
Satan_666 ist offline   Mit Zitat antworten
Alt 11.06.2006, 21:05   #10
reemrev
Inventar
 
Registriert seit: 31.01.2000
Beiträge: 1.706

Mein Computer

Standard

kurze Frage noch:
lag der Fehler in dieser Zeile "$banner=$_POST['banner'];"?
Hab mal eine Stunde gebraucht um zu erkennen, dass $_SESSION['banner']= $_POST['banner'] nicht funktioniert, $banner=$_POST['banner'] hingegen schon.
reemrev ist offline   Mit Zitat antworten
Antwort


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.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 08:15 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag