probleme beim Picture-Upload

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • probleme beim Picture-Upload

    Hallo

    Folgendes Problem... Wenn ich ein Bild auswähle sagt er mir das ich kein ausgewählt hätte..

    Quellcode

    1. <?PHP
    2. // Variablen auslesen
    3. while (list($key,$val)=each($_GET)) {
    4. ${$key} = $val; }
    5. include("setup.inc");
    6. $sizea = 100000;
    7. $nick3 = "tristar";
    8. if ($acti == "save") {
    9. $errortext='';
    10. IF($photo[error]){
    11. // No files uploaded
    12. $errortext= "keine BILD ausgewählt";
    13. }ELSE{
    14. // Check file size.
    15. IF($photo['size']>$session->config->max_photo_size){
    16. // Uploaded file is too large
    17. $errortext=STR_REPLACE('{SIZE}', $sitzea, "zu groß");
    18. }ELSE{
    19. // Store file
    20. $tmp_name=MD5($session_id.MICROTIME().RAND(-TIME(), TIME()));
    21. $tmp_fullname='pics/'.$tmp_name;
    22. MOVE_UPLOADED_FILE($photo['tmp_name'], $tmp_fullname);
    23. // Check file mime type
    24. $type_ok=FALSE;
    25. $allowed_types=ARRAY('jpg' => '.jpg',
    26. 'jpeg' => '.jpeg',
    27. 'gif' => '.gif',
    28. 'ief' => '.ief',
    29. 'png' => '.png',
    30. 'tiff' => '.tiff',
    31. 'bmp' => '.bmp',
    32. 'wbmp' => '.wbmp');
    33. IF(FUNCTION_EXISTS('getimagesize')){
    34. $imgdata=GETIMAGESIZE($tmp_fullname);
    35. IF(EMPTY($imgdata) || EMPTY($imgdata['mime'])){
    36. $imgdata=NULL;
    37. }
    38. }ELSE{
    39. $imgdata=NULL;
    40. }
    41. FOREACH($allowed_types AS $chk_type=>$extension){
    42. IF(!EMPTY($imgdata)){
    43. $type_ok= !EMPTY($imgdata[0])
    44. && !EMPTY($imgdata[1])
    45. && FALSE!==STRPOS(STRTOLOWER($imgdata['mime']), $chk_type);
    46. }ELSE{
    47. $type_ok=FALSE!==STRPOS(STRTOLOWER($photo['type']), $chk_type);
    48. }
    49. IF($type_ok){
    50. RENAME($tmp_fullname, $tmp_fullname.$extension);
    51. $tmp_name.=$extension;
    52. BREAK;
    53. }
    54. }
    55. IF(!$type_ok){
    56. // File is not an image or has non-supported format
    57. $errortext=$lng['notanimage'];
    58. UNLINK($tmp_fullname);
    59. }ELSE{
    60. // Image is OK
    61. // Update user's profile
    62. //$user->updateUser($session, $profile_user_id, 'photo = "'.$tmp_name.'"');
    63. $comment = str_replace("(b)", "<b>", $comment);
    64. $comment = str_replace("(/b)", "</b>", $comment);
    65. $comment = str_replace("(i)", "<i>", $comment);
    66. $comment = str_replace("(/i)", "</i>", $comment);
    67. $comment = str_replace("[b]", "<b>", $comment);
    68. $comment = str_replace("[/b]", "</b>", $comment);
    69. $comment = str_replace("[i]", "<i>", $comment);
    70. $comment = str_replace("[/i]", "</i>", $comment);
    71. echo "llll";
    72. $eintrag = "INSERT INTO icc_galerie (nick, pic, comment, usid) VALUES ('$nick3','$tmp_name' ,'$comment','$usid3')";
    73. mysql_query($eintrag)or die(mysql_error());
    74. REQUIRE("see.inc.php");
    75. BREAK;
    76. }
    77. }
    78. }
    79. }
    80. echo $tmp_fullname;
    81. REQUIRE("upload.tpl.php");
    82. ?>
    Alles anzeigen


    wenn ich ab "Check file size." das davor weglasse kommt die meldung, File zu groß, obwohl es nicht stimmt und wenn ich das bis "Store file" weg lasse meldet er mir "Warning: getimagesize(pics/5d9cb770cbd92d643506113d3b41dfcb) [function.getimagesize]: failed to open stream: No such file or directory in " "unlink(pics/5d9cb770cbd92d643506113d3b41dfcb) [function.unlink]: No such file or directory in" obwohl das directory vorhanden ist...

    greets
  • Sag mal toxic. warum entfernst du eigentlich deine ganzen Fragen, wenn sie erstmal beantwortet sind?
    An dieser Stelle möchte ich dich ganz klar darauf hinweisen, dass du auf meine Hilfe verzichten musst, wenn ich das wieder feststelle. Das ist ein öffentliches Forum, bei dem jedem Besucher geholfen werden soll.

    @topic: per GET kannst du keine Dateien hochladen. Daher gibt dir der Code in #3 und #4
    auch keinen Zugriff auf $photo.
  • hallo

    Okay, hab es verstanden DONUT, mit dem löschen...

    @Benny: Hatte da noch vergessen es in 17 auf "Sitzea" zu stellen, aber danke für den TIP...

    @Donut; hab es jetzt mal auf "POST" geändert und die TPL mitangepasst...
    BEkomm jetzt die fehlermeldung
    Warning: getimagesize(pics/3a37bcb92b52529867ffa675e337be57) [function.getimagesize]: failed to open stream: No such file or directory in D:\Programme\xampp\htdocs\autopflege\admin\upload.inc.php on line 36

    Warning: unlink(pics/3a37bcb92b52529867ffa675e337be57) [function.unlink]: No such file or directory in D:\Programme\xampp\htdocs\autopflege\admin\upload.inc.php on line 60
    pics/3a37bcb92b52529867ffa675e337be57


    gestartet wird es über

    Quellcode

    1. <FORM name="photo_upload" action="main.php" method="post" enctype="multipart/form-data">
    2. <INPUT type="hidden" name="s" value="<?=$s?>">
    3. <INPUT type="hidden" name="include" value="<?=$include?>">
    4. <input type="hidden" name="acti" value="save" />
    5. <INPUT type="file" name="photo" SIZE="40">


    greets
  • hallo

    Er gibt mir bei allem "files" immer Bild wird nicht unterstützt.

    Wird wohl daran liegen, das er das .jpg oder .gif nicht am ende der datei setzt...

    und daher auch die "GETIMAGESIZE" und "UNLINK (wo nichts ist, kann er auch nichts löschen)" Fehler... nur frag ich mich gerade, wo ich den fehler im Code hab...

    edit: hab mal $tmp_name und $tmp_fullname ausgegeben, wo genau das kommt...

    "3a37bcb92b52529867ffa675e337be57" und "pics/3a37bcb92b52529867ffa675e337be57"

    greets
  • Dein Script funktioniert ganz unabhängig von den Zeilen 3 und 4 nur, weil register_globals auf on ist. Normalerweise darfst du auf Uploads nur mittels $_FILES['name'] zugreifen.

    Quellcode

    1. $tmp_fullname='pics/'.$tmp_name;

    Auf Windows Servern musst du Backslashes bei den Pfaden benutzen.

    Zur Logik deines Scriptes. Du solltest das Bild nicht erst in den richtigen Pfad verschieben, dort dann überprüfen und bei Erfolg nochmal umbenennen. Selbst wenn die Dateiendung relevant wäre könntest du die Überprüfung auch auf die TMP Datei anwenden.
  • hallo

    also ich hab den "/" auf "\" gesetzt... Wenn ich den Backslash richtig deute...

    dann kommt bei mir die Fehlermeldung...

    "Parse error: parse error, unexpected T_STRING in D:\Programme\xampp\htdocs\autopflege\admin\upload.inc.php on line 24
    "

    in diesem code

    Quellcode

    1. 23 $tmp_fullname='pics\'.$tmp_name;
    2. 24 MOVE_UPLOADED_FILE($photo['tmp_name'], $tmp_fullname);



    greets
  • hallo

    Ich stell mir gerade selbst die frage, weshalb das Script im Chat so wie es hier steht (als bildergalerie) funktioniert, aber nicht auserhalb des Chats als Bildergalerie...

    Falls die Frage kommt, woher der Offset stammt...

    Quellcode

    1. /* Offset */
    2. DEFINE("OFFSET","./");
    3. /* Path to directory that contains images */
    4. DEFINE('IMAGEPATH',OFFSET.'images');


    Hier di neue Fehlermeldung (außerhalb der Bildergalerie)...

    Warning: getimagesize(./images/pics/943c90dc7fe47c18d1d4a770a0a7a983) [function.getimagesize]: failed to open stream: No such file or directory in D:\Programme\xampp\htdocs\autopflege\admin\upload.inc.php on line 37

    Warning: unlink(./images/pics/943c90dc7fe47c18d1d4a770a0a7a983) [function.unlink]: No such file or directory in D:\Programme\xampp\htdocs\autopflege\admin\upload.inc.php on line 61
    ./images/pics/943c90dc7fe47c18d1d4a770a0a7a983


    Die Pfade sind alle vorhanden... wie auch im Chat, 1:1 übernommen und dennoch sagt er, sie wären nicht da...

    Ich habe mal die beiden Variabeln auslesen lassen, im Chat und alleine als Bildergalerie...

    Chat (wo es klappt)
    <?=$tmp_fullname?> "./images/pics/b021e395ce685723f3b4e9dc0b3cd353"
    <?=$tmp_name?> "b021e395ce685723f3b4e9dc0b3cd353.jpeg"

    auserhalb vom Chat (wo es nicht klappt)
    <?=$tmp_fullname?> "./images/pics/b021e395ce685723f3b4e9dc0b3cd353"
    <?=$tmp_name?> "b021e395ce685723f3b4e9dc0b3cd353"

    Greets