php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Formular mit Bildupload


 
Ptolemaios
28-11-2008, 18:29 
 
Hallo zusammen,

kurz zur Einleitung: Ich programmiere (ich versuch es halt) eine Datenbank mit einem Uploadformular, Suchformular, Vorschau-und Detailseite.
Bin absolut unerfahren und mache meine ersten php- Schritte.

Es scheitert aber bereits beim Uploadformular.
Ich bekomme zwar die Textfelder in die Datenbank, nicht jedoch das Bild in meinem Ordner auf dem Server.

Thema Suchfunktion: Habe es benützt, habe bereits Stunden mit ihr verbracht. Ich finde leider meinen Fehler nicht.

Für Hilfe eurerseits bin ich mehr als dankbar.

lg
Ptolemaios

PS: Entschuldigt bitte den gesamten Code, ich weiß leider nicht was für mein Problem wesentlich ist.


$db_host = "localhost";
$db_user = "***";
$db_pass = "***";
$db_name = "***";

$tempname = $_FILES['file']['tmp_name'];
$name = $_FILES['file']['name'];
$type = $_FILES['file']['type'];
$size = $_FILES['file']['size'];
$maxdatasize = 150000;

if (empty($name)) $error [] ="Du hast kein Bild ausgewählt!";

if ($type != "image/gif" && $type != "image/jpeg" && $type != "image/JPEG" && $type != "image/bmp") $error[]

if ($size > $maxdatasize) $error[] = "Das Bild ist zu groß!<br>Es darf maximal ".$maxdatasize." groß sein.";
if (empty($error)) {
move_uploaded_file ($tempname, "/bilder/".$name);
echo ("Dein Bild wurde erfolgreich hinzugefügt");
}
else {
foreach ($error as $err) echo ($err."<br>");
}

if (isset( $_POST['eintragen'] ))
{
// Maskierende Slashes aus POST entfernen
$_POST = get_magic_quotes_gpc() ? array_map( 'stripslashes', $_POST ) : $_POST;

// Inhalte der Felder aus POST holen
$Nominal = $_POST['Nominal'];
$Kaiser = $_POST['Kaiser'];


$conID = mysql_connect ( $db_host, $db_user, $db_pass ) or die( "Die Datenbank konnte nicht erreicht werden!" );
if ($conID)
{
mysql_select_db( $db_name, $conID );
}


$sql = "INSERT INTO `Tabelle`
(`Nominal`, `Kaiser` )
VALUES(
'" .mysql_real_escape_string( $Nominal ). "',
'" .mysql_real_escape_string( $Kaiser ). "'
)";

mysql_query( $sql );

if (mysql_affected_rows() == 1)
{
echo "<h3>Upload in Datenbank erfolgreich</h3>";

}
else
{
echo "<h3>Fehler beim Upload</h3>";

}
}

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Unbenanntes Dokument</title>
</head>

<form action=" <?php echo $_SERVER['PHP_SELF']; ?>" method="post" name="formular" id="formular" enctype="multipart/form-data">
<input type="file" name="file" />
</p>
<p>&nbsp;</p>
<table width="100" border="0">
<tr>
<td><span class="Stil3">Nominal</span></td>
</tr>
</table>
<table width="120" border="2">
<tr>
<td width="108"><input type="text" name="Nominal" id="Nominal" /></td>
</tr>
</table>
<table width="100" border="0">
<tr>
<td><span class="Stil3">Kaiser</span></td>
</tr>
</table>
<table width="120" border="2">
<tr>
<td width="108"><input type="text" name="Kaiser" id="Kaiser" /></td>
</tr>
<td height="57"><input type="submit" name="eintragen" id="eintragen" value=" Upload " /></td>
</tr>
<tr>
<td height="71"><INPUT VALUE="Formular l&ouml;schen" TYPE=RESET></td>
</table>
</form>
<p>&nbsp; </p>
</body>
</html>

 
Kropff
28-11-2008, 19:14 
 
$tempname = $_FILES['file']['tmp_name'];
$name = $_FILES['file']['name'];
$type = $_FILES['file']['type'];
$size = $_FILES['file']['size'];
$maxdatasize = 150000;

if (empty($name)) {
$error [] ="Du hast kein Bild ausgewählt!";
}
if ($type != "image/gif" && $type != "image/jpeg" && $type != "image/JPEG" && $type != "image/bmp") {
$error[] ;
}
if ($size > $maxdatasize) {
$error[] = "Das Bild ist zu groß!<br>Es darf maximal ".$maxdatasize." groß sein.";
}
if (empty($error)) {
move_uploaded_file ($tempname, "/bilder/".$name);
echo ("Dein Bild wurde erfolgreich hinzugefügt");
}
else {
foreach ($error as $err) echo ($err."<br>");
}

du arbeitest hier schon mit werten die noch gar nicht gesetzt sind! solange das formular nicht abgesendet wird, ist $_FILES leer. das findest du ganz schnell mit print_r($_FILES) heraus.

btw: hier machst du es richtig:
if (isset( $_POST['eintragen'] )) {
...
}
peter

 
Ptolemaios
28-11-2008, 23:57 
 
Danke für Deine Hilfe.

Leider bin ich zu Dumm oder ich hab mich total verrannt. Ich sitze seit 4 Tagen bei dem Uploadformular und hab absolut keinen Durchblick mehr.

Danke nochmal
und lg

 
Kropff
29-11-2008, 00:26 
 
pack den ganzen upload-code in den folgenden block
if (isset( $_POST['eintragen'] ))
zum thema fehlersuche findest du hier (http://www.peterkropff.de/tutorials/php_mysql_fehler/php_mysql_fehler.htm) ein paar infos und zum thema upload hier (http://www.peterkropff.de/tutorials/php_mysql_3/php_mysql_3.htm).

peter

 
Ptolemaios
29-11-2008, 19:53 
 
Danke, ich krieg es einfach nicht hin. Habe mich jetzt mit der Suche und den Ergebnissseiten versucht. Funktioniert auch nicht.

Ich lass es gut sein.

lg

 
Kropff
29-11-2008, 20:05 
 
Original geschrieben von Ptolemaios
Danke, ich krieg es einfach nicht hin. Habe mich jetzt mit der Suche und den Ergebnissseiten versucht. Funktioniert auch nicht.

Ich lass es gut sein.

lg
und noch einer, der beim ersten anzeichen problemen die flinte ins korn wirft :{

peter

 
bloodyorchid
29-11-2008, 20:13 
 
tja, manche haben einfach nicht den nötigen geduldsfaden dafür

 
Kropff
29-11-2008, 20:31 
 
Original geschrieben von bloodyorchid
tja, manche haben einfach nicht den nötigen geduldsfaden dafür
oder den nötigen biss und ergeiz

peter

 
Ptolemaios
29-11-2008, 21:02 
 
Original geschrieben von Kropff
oder den nötigen biss und ergeiz

peter


Halt! Stop!

Nein, ich werf die Flinte nicht ins Korn was php angeht.

Mein Problem ist, daß ich mich mit einlesen sehr schwer tu. Es fällt mir leichter, wenn ich einen Lehrer mit Fragen quälen kann.

Eigentlich wollte ich mit meiner neuen Datenbank am 1.12 starten, muß es wohl auf unbestimmte Zeit liegen lassen.
Ich werde nicht mehr mit so großen Projekten wie das meinige starten, sondern ganz ganz unten, mit den einfachsten Grundlagen beginnen.




lg
Ptolemaios

 
Kropff
29-11-2008, 21:06 
 
Original geschrieben von Ptolemaios
Ich werde nicht mehr mit so großen Projekten wie das meinige starten, sondern ganz ganz unten, mit den einfachsten Grundlagen beginnen.
Ptolemaios
ist eh der vernünftigste weg. den bin ich auch gegangen. :)

peter


Alle Zeitangaben in WEZ +2. Es ist jetzt 07:59 Uhr.