Upload problem bei php 4.1.0

lausi

Grünschnabel
Hallo Leute

Wieder mal ein problem

habe ein eintrage script mit nen bild upload auf meinen localen server mit php 4.3.3 funktioniert es einwandfrei.

Am offizielen Server bekomme ich eine fehlermeldung wenn ich kein bild hochlade hat php 4.1.0. auf SuSE 8.0


anbei mal ein auszug aus dem script
<td width="30%">&nbsp;</td>
<td width="70%">
PHP:
            <? if ($upload == Y) {
              echo "<div align=\"center\"><input type=\"file\" name=\"bild\" size=25 class=\"fschrift\">";}?>
</td>
</tr>
<tr>
<td colspan="2" height="30">
<div align="center">

<input type="hidden" name="check" value="3">
PHP:
              <? if ($usermail == Y) {
              echo "<div align=\"center\"><input type=\"hidden\" name=\"uemail\" value=\"$email\" size=25 class=\"fschrift\">";}?>
<input type="hidden" name="uid" value="<?php echo $_GET["uid"]; ?>">
<input type="submit" name="Abschicken" value="Abschicken" class="bschrift">
</div>
</td>
</tr>
</table>
<br>
</td>
</tr>
<tr>
<td><img src="images/<?= $im ?>/unten.gif" width="100%" height="15"></td>
</tr>
</table>
</form>
PHP:
<?}
else{
$zeit_aktuell = time();
if ($upload=='Y' AND $bild!='') {
    $MAX_FILE_SIZE = 203188;    // 100kb || 203188 => 200kb
    $usr_neubildname = strtolower(bcdiv(microtime()+$zeit_aktuell,2,0));
    $bild_name = strtolower($bild_name);
     if (ereg("(\.jpg)$", $bild_name))        $endung = ".jpg";
     elseif (ereg("(\.jpeg)$", $bild_name))    $endung = ".jpeg";
     elseif (ereg("(\.gif)$", $bild_name))    $endung = ".gif";
     elseif (ereg("(\.png)$", $bild_name))    $endung = ".png";
    $usr_bildpfad = "usrgfx\\$usr_neubildname$endung";
    $usr_bildurl = "http://localhost/boerse/usrgfx/$usr_neubildname$endung";
    $bild1 = $usr_bildurl;



Fehler zeile    if(filesize($bild)>$MAX_FILE_SIZE AND !file_exists($usr_bildpfad)){

  
      
$actfsiz=round((filesize($bild) / 1024),2)."kb";
          echo "Das angegebene Bild ist zu groß oder existiert bereits! Die Gr&ouml;ße darf <b>maximal 25kb</b> ";
          echo "betragen!<br>Die Gr&ouml;ße der ausgew&auml;hlten Datei betr&auml;gt <b>$actfsiz</b>!<br><br><a ";
          echo "href=\"javascript:history.back()\">Zur&uuml;ck zum Formular</a>";
          
    } else {
        if (move_uploaded_file($bild, $usr_bildpfad)) {
            if(is_uploaded_file($HTTP_POST_FILES["bild"])) $bild_ok = "Y";
        }
}
}

elseif(empty($topic)){
echo '<p class="fehler">Sie müssen einen Titel angeben!&nbsp;<a href="javascript:history.back()">&laquo;&laquo; Zur&uuml;ck</a><br><br>';

}
?>

Wenn ich ein Bild Hochlade funktioniert es einwandfrei


wenn ich kein bild hochlade schreibt er mir eine Fehlermeldung und den pfad mit
http://localhost/boerse/usrgfx/530735813

Fehlermeldung

Warning: stat failed for none (errno=2 - No such file or directory) in /usr/local/httpd/htdocs/boerse/contrid/write.php on line 134

Ich hoffe ihr könnt mir Helfen und Danke euch schon im Voraus für eure Antwort

cu lausi
 
Zuletzt bearbeitet:
lausi hat gesagt.:
Code:
    } else {
        if (move_uploaded_file($bild, $usr_bildpfad)) {
            if(is_uploaded_file($HTTP_POST_FILES["bild"])) $bild_ok = "Y";
        }
}

Die Abfrage is_uploaded_file () macht nur Sinn VOR move_uploaded_file (). Dann geht's.

MfG
 
Hallo won_gak

Die Abfrage is_uploaded_file () macht nur Sinn VOR move_uploaded_file (). Dann geht's.

Habe es umgedreht funktioniert leider auch nicht die Fehlermeldung ist die gleiche




Warning: stat failed for none (errno=2 - No such file or directory) in /usr/local/httpd/htdocs/boerse/contrid/write.php on line 134

Diese bezieht sich auf folgende zeile

PHP:
<?    if(filesize($bild)>$MAX_FILE_SIZE AND !file_exists($usr_bildpfad)){   ?>

Die Fehlermeldung kommt nur wenn ich kein bild hochladen möchte und wenn ich ein bild holade funktioniert es einwandfrei.

cu lausi
 
Original geschrieben von lausi
Hallo won_gak



Habe es umgedreht funktioniert leider auch nicht die Fehlermeldung ist die gleiche




Warning: stat failed for none (errno=2 - No such file or directory) in /usr/local/httpd/htdocs/boerse/contrid/write.php on line 134

Diese bezieht sich auf folgende zeile

PHP:
<?    if(filesize($bild)>$MAX_FILE_SIZE AND !file_exists($usr_bildpfad)){   ?>


Die Fehlermeldung kommt nur wenn ich kein bild hochladen möchte und wenn ich ein bild holade funktioniert es einwandfrei.

cu lausi
Also, logisch sollte die Zeile ja
PHP:
if (filesize ($bild) > $MAX_FILE_SIZE OR file_exists ($usr_bildpfad))
heißen. Denn du willst die Fehlermeldung ja rausgeben, wenn das Bild ENTWEDER zu groß ODER schon vorhanden ist.

Dann verwendest du hier $bild, aber definierst weiter oben $bild1.

Über file_exists () kann der Fehler nicht auftreten. Die Datei muss nicht notwendigerweise vorhanden sein. Also hängt es mit filesize () zusammen. Nur kann es $bild noch nicht geben, wenn du es erst später in den Ordner verschiebst.

Musst mal über dein Script gucken.
 
Zurück