Bild Upload Problem

Brian Folte

Angesehenes Mitglied
Hallo ich habe folgenes Problem undzwar
wenn ich in meinem Auktionshaus ein Bild hochladen will, dann erscheint immer diese meldungen hier
Warning: copy(home/sms4allc/public_html/auction/uploaded/30133.jpg): failed to open stream: No such file or directory in /home/sms4allc/public_html/auction/sell.php on line 284

Warning: copy(home/sms4allc/public_html/auction/uploaded/30133_2.jpg): failed to open stream: No such file or directory in /home/sms4allc/public_html/auction/sell.php on line 296

Warning: copy(home/sms4allc/public_html/auction/uploaded/30133_3.jpg): failed to open stream: No such file or directory in /home/sms4allc/public_html/auction/sell.php on line 309


nun mußte ich in der config.php den pfad angeben wo die bilder gespeichert werden sollen. dieser pfad sieht so aus home/sms4allc/public_html/auction/uploaded/
nun weiß ich aber nicht an was es liegt also warum es nicht geht. ich wollte euch mal fragen ob ihr mir hier helfen könnt. liebe grüße brian
ps das eigendliche problem ist das, das er die bilder nicht in dem verzeichnes speichert was ich ihm angebe.
 
im Ordner /home/sms4allc/public_html/auction/ sollte eine Datei namens shell.php liegen.

Schau dort die Befehlzeilen 284 296 und 309 an. Laut Fehlermeldung findet er das File oder den Ordner nicht, auf die diese Programmzeilen verweisen. Kannst auch mal den entsprechenden Code hier posten.

Franz A.
 
Ich gehe mal sehr schwer davon aus, dass sich in Zeile 284 von sell.php etwa so ein Befehl findet:

CODE move_uploaded_file($_FILES["uploadfile"]["tmp_name"], "/home/sms4allc/public_html/auction/uploaded".$_FILES["uploadfile"]["name"]);


Nun liegt es in der Natur des PHP-Parsers, dass Scripte mit den Rechten des Servers ausgeführt werden. Dabei werden hochgeladene Dateien ausserhalb von "public-html" gespeichert und mit obigem Befehl dann ins richtige Verzeichnis verschoben und erhalten ausschliesslich die Rechte des Servers.
Ich würde an Deiner Stelle mal versuchen, den obigen Befehl durch dieses Konstrukt zu ersetzen:


CODE $ConnectID=ftp_connect("MeinServerName"); // üblicherweise "localhost"
$LoginID=ftp_login($ConnectID, "MeinBenutzerName", "MeinPasswort");
if($ConnectID && $LoginID) $result=ftp_put($ConnectID, "/public_html/auction/uploaded/".$_FILES["uploadfile"]["name"], $_FILES["uploadfile"]["tmp_name"], FTP_BINARY);
ftp_close($ConnectID);


Dadurch kopierst Du Deine Bilder im FTP-Modus und sie erhalten eben auch die Rechte des FTP-Users. Es empfiehlt sich, hierfür einen eigenen FTP-Account zu erstellen.



Hamlet
 
hallo nun habe ich das erste problem fast behoben nun hab ich aber ein neues und zwar bei mir kann der user drei bilder hochladen.
das problem hierbei ist wenn der user nur ein bild hochlädt geht es nicht er muß zwei bilder hochladen dann erscheinen auch zwei bilder. lädt er ein bild hoch steht da kein bild verfügbar. hier mal der code der dafür zuständig ist vieleicht könnt ihr mir auch hier helfen liebe grüße brian
CODE unset($auction_id);
$ERR = "ERR_".CheckSellData();

// if no other errors - handle upload here
if (!$$ERR)
{
unset($file_uploaded);

// Auktions-ID generieren
$auction_id = generate_id();

if ( $userfile <> "none" )
{
$inf = GetImageSize ( $userfile );
if ($userfile2 <> "none")
$inf2 = GetImageSize ( $userfile2 );
if ($userfile3 <> "none")
$inf3 = GetImageSize ( $userfile3 );

$er = false;
// make a check
if ($inf)
{
$inf[2] = intval($inf[2]); // check for uploaded file type
if ($userfile2 <> "none")
$inf2[2] = intval($inf2[2]);
if ($userfile3 <> "none")
$inf3[2] = intval($inf3[2]);

if ( ($inf[2]!=1) && ($inf[2]!=2) )
{
$er = true;

}
else
{
// check for file size
if ( intval($userfile_size)>$MAX_UPLOAD_SIZE )
{
$er = true;
$ERR = "ERR_603";
}
}

if ($userfile2 <> "none")
{
if ( ($inf2[2]!=1) && ($inf2[2]!=2) )
{
$er = true;

}
else
{
// check for file size
if ( intval($userfile2_size)>$MAX_UPLOAD_SIZE )
{
$er = true;
$ERR = "ERR_603_2";
}
}
}

if ($userfile3 <> "none")
{
if ( ($inf2[2]!=1) && ($inf2[2]!=2) )
{
$er = true;

}
else
{
// check for file size
if ( intval($userfile3_size)>$MAX_UPLOAD_SIZE )
{
$er = true;
$ERR = "ERR_603_3";
}
}
}

}
else
{

$er = true;
}

if (!$er)
{
// Bild 1 wirklich speichern
$ext = ($inf[2]==1)?".gif":".jpg";
$fname = $image_upload_path.$auction_id.$ext;
if (file_exists($fname))
unlink ($fname);
copy ($userfile, $fname);
$uploaded_filename = $auction_id.$ext;
$file_uploaded = true;

// Bild 2 wirklich speichern
if ($userfile2 <> "none")
{
$ext = ($inf[2]==1)?".gif":".jpg";
$fname = $image_upload_path.$auction_id."_2".$ext;

if ( file_exists($fname) )
unlink ($fname);
copy ( $userfile2, $fname );
$uploaded_filename2 = $auction_id."_2".$ext;
$file_uploaded = true;
}

// Bild 3 wirklich speichern
if ($userfile3 <> "none")
{
$ext = ($inf[2]==1)?".gif":".jpg";
$fname = $image_upload_path.$auction_id."_3".$ext;

if ( file_exists($fname) )
unlink ($fname);
copy ( $userfile3, $fname );
$uploaded_filename3 = $auction_id."_3".$ext;
$file_uploaded = true;
}
}
else
{
// Fehler!!
unset($file_uploaded);
$userfile2 = "none";
$userfile3 = "none";
}

}
else
{
unset($file_uploaded);
$userfile2 = "none";
$userfile3 = "none";
}


}
}

/*
Erstaufruf oder Fehler in den Daten -> Eingabemaske nochmal anzeigen
*/
if ( empty($action) || (($action=='first')&&($$ERR)) )
{
include "header.php";

$titleH = htmlspecialchars($title);
$descriptionH = htmlspecialchars($description);
$pict_urlH = htmlspecialchars($pict_url);



achja und jetzt erhalte ich nurnoch eine fehlermedlung und die sieht so aus
Warning: mysql_result(): Unable to jump to row 0 on MySQL result index 14 in /home/sms4allc/public_html/auction/sell.php on line 643
habe mal nachgeschaut in der zeile steht nur das hier

CODE $fee_value = mysql_result($my_result,0,"fee");

ich weiß nicht was daran falsch ist.

jetzt bekomm ich keine fehlermeldungen aber dafür muß man zwei bilder hochladen sonst klappt es nicht. wenn man jetzt nur ein bild zb hochladen will steht trotztdem da kein bild verfügbar lädt man aber zwei bilder hoch werden beide angezeigt. könnte mir einer von euch profis sagen wie ich das ändern kann? ich will nämlich das man auch ein bild alleine hochladen kann. liebe grüße brian
 
Zurück
Oben