bild upload problem
Urs Meier
- php
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."&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'];
}
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
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
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
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";
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;
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
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";
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