Urs Meier: bild upload problem

Hallo Forum,

ich habe ein script geschrieben für einen event kalender. soweit funktioniert auch alles - jedoch eintragen des events wird der flyer nicht hochgeladen wie gewünscht.

Eigentlich sollte alles stimmen den ich verwende:
    @move_uploaded_file($_FILES['flyer']['tmp_name'],"". $VAR[5] ."/events/flyer/". mysql_insert_id() .".jpg");

nun habe ich die frage an das Forum woran es liegen kann, dass die Datei nicht hochgeladen wird.

Besten Dank und viele Grüsse an alle!

########## mein skript ##############

$P = array('','','','48','','','','','Switzerland','','','','','');

if (isset($_POST['type']))
 {

$i = 0;

foreach ($_POST as $newitem => $newitem_value)
  {
   if ($newitem_value == '' && $newitem != 'place' && $newitem != 'address' && $newitem != 'city'  && $newitem != 'zip' )
   {
    $i++;
   }
  }

if ($i != '0')
  {
   $NEW = "<div style="padding:5px;" class="border13">".$LANG[782]."</div><br /><br />";
  }
  else
  {
   if (isset($_POST['edit']))
   {

$_POST['title'] = strip_tags($_POST['title']);

$final = "";
    $extras1 = "";
    $extras2 = "";
    foreach ($_POST as $newitem2 => $newitem_value2)
    {
     if ($newitem2 != 'user' && $newitem2 != 'id' && $newitem2 != 'edit' && $newitem2 != 'time_1' && $newitem2 != 'time_2' && $newitem2 != 'time_3')
     {
      $_POST[$newitem2] = phtml($_POST[$newitem2]);

if ( $newitem2 == 'location' )
      {

$b_c = phpfox_sql_query("countries","Country","WHERE CountryId = '$_POST[$newitem2]'",TRUE);
       $value = $b_c['Country'];

$_POST['country'] = $value;
      }
      if ( $newitem2 == 'state' )
      {
       //$value = str_replace("_"," ",$value);
       $b_s = phpfox_sql_query("regions","Region,RegionID","WHERE RegionID = '$_POST[$newitem2]'",TRUE);
       $value = $b_s['Region'];
       $_POST[$newitem2] = $value;

}
      if ( $newitem2 == 'city' )
      {
       $city_id = $_POST[$newitem2];
       $b_c = phpfox_sql_query("cities","City,CityId","WHERE CityId = '$_POST[$newitem2]'",TRUE);
       $value = $b_c['City'];
       $_POST[$newitem2] = $value;
      }

if( $newitem2 != 'location'){
       $extras1 = $newitem2;
       $extras2 = $_POST[$newitem2];
      }
      $final .= ",$extras1 = '$extras2'";

}
    }

$newtime = "start\_time = '".$_POST['time_1'].":".$_POST['time_2']." ".$_POST['time_3']."' $final";
    phpfox_mysql_query("UPDATE events SET $newtime WHERE id = '$_POST[id]'");

$NEW = "<div style="padding:5px;" class="border13">".$LANG[783]."

<ul><li><a href="".$VAR[0]."/".$THISPAGE."&amp;action=view_event&id=".$_POST['id']."">".$LANG[784]."</a></li></ul>

</div><br /><br />";

}
   else
   {

$final = "";
    $extras1 = "";
    $extras2 = "";
    foreach ($_POST as $newitem2 => $newitem_value2)
    {

if ($newitem2 != 'time_1' && $newitem2 != 'time_2' && $newitem2 != 'time_3' && $newitem2 != 'flyer')
     {
      $_POST[$newitem2] = phtml($_POST[$newitem2]);

if ( $newitem2 == 'location' )
      {

$b_c = phpfox_sql_query("countries","Country","WHERE CountryId = '$_POST[$newitem2]'",TRUE);
       $value = $b_c['Country'];

$_POST['country'] = $value;
      }
      if ( $newitem2 == 'state' )
      {
       //$value = str_replace("_"," ",$value);
       $b_s = phpfox_sql_query("regions","Region,RegionID","WHERE RegionID = '$_POST[$newitem2]'",TRUE);
       $value = $b_s['Region'];
       $_POST[$newitem2] = $value;

}
      if ( $newitem2 == 'city' )
      {
       $city_id = $_POST[$newitem2];
       $b_c = phpfox_sql_query("cities","City,CityId","WHERE CityId = '$_POST[$newitem2]'",TRUE);
       $value = $b_c['City'];
       $_POST[$newitem2] = $value;
      }

if( $newitem2 != 'location'){
       $extras1 .= "$newitem2,";
       $extras2 .= "'$_POST[$newitem2]',";
      }
     }
    }

$TIME = time();
    $newtime = "".$_POST['time_1'].":".$_POST['time_2']." ".$_POST['time_3']."";

$values1 = "($extras1 start\_time,time,city\_id)";
    $values2 = "($extras2 '$newtime','$TIME','$city_id')";

phpfox_mysql_query("INSERT INTO events $values1 VALUES $values2 ");

@move_uploaded_file($_FILES['flyer']['tmp_name'],"". $VAR[5] ."/events/flyer/". mysql_insert_id() .".jpg");
            $srcname = $VAR[5] ."/events/flyer/". mysql_insert_id() .".jpg";
                        $destname = $VAR[5] ."/events/flyer/". mysql_insert_id() .".jpg";
                        $maxwidth = 850;
                        $maxheight = 850;
                        createThumb($srcname,$destname,$maxwidth,$maxheight);

$a = phpfox_mysql_query("SELECT id FROM events ORDER BY id DESC");
    $b = mysql_fetch_array($a);

header("Location: ".$VAR[0]."/".$THISPAGE."&action=view_event&id=".$b['id']."");
    exit;
   }
  }

$P[0] = $_POST['title'];
  // $P[1] = $_POST['email'];
  $P[2] = $_POST['place'];
  // $P[3] = $_POST['icon'];
  $P[4] = $_POST['text'];
  $P[5] = $_POST['address'];
  $P[6] = $_POST['city'];
  $P[7] = $_POST['zip'];
  $P[8] = $_POST['country'];
  $P[9] = $_POST['state'];

$P[10] = '<option value="'.$_POST['time_1'].'">'.$_POST['time_1'].'</option>';
  $P[11] = '<option value="'.$_POST['time_2'].'">'.$_POST['time_2'].'</option>';
  $P[12] = '<option value="'.$_POST['time_3'].'">'.$_POST['time_3'].'</option>';

$P[13] = $_POST['short'];

}

  1. Hi Urs,

    ich habe ein script geschrieben für einen event kalender. soweit funktioniert auch alles - jedoch eintragen des events wird der flyer nicht hochgeladen wie gewünscht.
    nun habe ich die frage an das Forum woran es liegen kann, dass die Datei nicht hochgeladen wird.

    Ein erster guter Hinweis wäre die Fehlermeldung!?
    Gib mal her.

    ciao
    romy

    1. HI  Romy,

      mein Problem ist es kommt keine Fehlermeldung.

      Auch mit error_reporting(E_ALL);
      wird nichts zu Tage gefördert.

      Wie könnte ich bzgl. dem Upload mir eine fehlermeldung ausgeben?

      Dank und Grüsse

      ich habe ein script geschrieben für einen event kalender. soweit funktioniert auch alles - jedoch eintragen des events wird der flyer nicht hochgeladen wie gewünscht.
      nun habe ich die frage an das Forum woran es liegen kann, dass die Datei nicht hochgeladen wird.
      Ein erster guter Hinweis wäre die Fehlermeldung!?
      Gib mal her.

      ciao
      romy

      1. Hi Urs,

        Wie könnte ich bzgl. dem Upload mir eine fehlermeldung ausgeben?

        entferne das @ vor dem Befehl, das blendet nämlich Fehler aus ;)

        PS: bitte zitiere nur den Teil des Textes, auf den du sich beziehst, da sonst sehr viel reduntante Informationen entstehen und du weißt bestimmt: Platz ist Geld ;)

        ciao
        romy

      2. echo $begrüßung;

        mein Problem ist es kommt keine Fehlermeldung.

        Auch mit error_reporting(E_ALL);
        wird nichts zu Tage gefördert.

        Wie könnte ich bzgl. dem Upload mir eine fehlermeldung ausgeben?

        Du solltest sie nicht mit dem @ unterdrücken, wenn du sie sehen willst.
        Weiter solltest du dir den Inhalt der beteiligten Variablen ansehen und mit den von dir erwarteten Werten vergleichen. z.B. print_r($_FILES); (ein vorangestelltes <pre> erhöht die Übersichtlichekeit der Darstellung).

        Ebenfalls empfehlenwert ist die Lektüre des Kapitels Database Security, besonders der Abschnitt SQL Injection.

        echo "$verabschiedung $name";

        1. Vielen Dank für die Antworten.

          Ich habe alles wie beschrieben getan (siehe Quellcode unten). Der Eintrag aller anderen Werte in die mysql DB funktioniert einwandfrei - nur das Bild wird nicht hochgeladen

          Als Antwort auf print_r($_FILES); erhalte ich

          Array()

          Jedoch ich habe ein jpg ausgewählt in dem <input type="file" name="flyer" size="30" />. Ich steh irgendwie total auf dem Schlauch ...

          Vielen Dank nochmals für weitere Ratschläge

          phpkalender_mysql_query("INSERT INTO events $values1 VALUES $values2 ");

          if ($_FILES ['flyer']['size'] != 0)
              {
                    $NAMES = $_FILES['flyer']['name'];

          if (!eregi("(.)+\.(jpg$|gif$)",$NAMES))
              {
                          $MAINDATA .= '<div style="padding-bottom:10px;font-size:10pt;" class="color"><b>Sorry your Song cover must be jpg or gif format.</b></div>';

          } else
              {
              move_uploaded_file($_FILES['flyer']['tmp_name'],"". $VAR[5] ."/events/flyer/". mysql_insert_id() .".jpg");
                      $srcname = $VAR[5] ."/events/flyer/". mysql_insert_id() .".jpg";
                                  $destname = $VAR[5] ."/events/flyer/". mysql_insert_id() .".jpg";
                                  $maxwidth = 850;
                                  $maxheight = 850;
                                  createThumb($srcname,$destname,$maxwidth,$maxheight);
              }
              }

          print_r($_FILES);
              exit;

          1. Hi Urs,

            Als Antwort auf print_r($_FILES); erhalte ich
            Array()

            Du kannst auch var_dump($_FILES) benutzen.
            Was steht hier drin: ],"". $VAR[5] ."/events/flyer/". mysql_insert_id() .".jpg" ? Warum das "" am Anfang?
            Kann es sein, dass er den Upload macht, aber nicht dahin, wo du glaubst?

            ciao
            romy

          2. echo $begrüßung;

            Als Antwort auf print_r($_FILES); erhalte ich
            Array()

            Dann hast du vermutlich nicht beachtet, dass das <form>-Element bei einem Dateiupload einen anderen als den Standardwert im Attribut enctype haben möchte.

            http://de.selfhtml.org/html/formulare/datei_upload.htm
            http://de.php.net/manual/en/features.file-upload.php

            echo "$verabschiedung $name";

  2. Hello,

    mach mal draus:

    echo "<pre>\n";
       echo ($_FILES['flyer']['tmp_name']."\n";
       echo $VAR[5] ."/events/flyer/". mysql_insert_id().".jpg\n";
       echo "</pre>\n";

    Und dann war da noch irgendwie ein Doppelhäkchen zuviel

    @move_uploaded_file($_FILES['flyer']['tmp_name'],"". $VAR[5] ."/events/flyer/". mysql_insert_id() .".jpg");
                                                        ----

    Wie sieht Dein Upload-Formular aus?
    Bitte nur den relavanten Teil!

    Harzliche Grüße vom Berg
    http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau