Uploadformular

timmeyy

Mitglied
Hi Leute!
sry das ich euch wegen eines uploadformular belästige, ich habe folgendes problem:
wenn ein Bild auf den Webserver hochgeladen wird, soll gleichzeitig die daten des bildes in einer datenbank gespeichert werden, aber irgendwie funktioniert es nicht...

PHP:
<?php
require ("config/base.php");
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Upload</title>
<link rel="stylesheet" href="css/style.css" type="text/css" />
</head>
<body>
<div id="main">
<center>
<form action="<?PHP echo $PHP_SELF;?>" method="post" enctype="multipart/form-data">


&nbsp;Bildname:<br>
         <input type="file" name="picname" value=""><br><br>
&nbsp;Bildbeschreibung:<br>
     <textarea name="pic_description" cols="50" rows="10"></textarea><br><br>
&nbsp;Link zum Beitrag:<br>
         <input type="text" name="url" value=""><br><br>
&nbsp;Alt-Tag: Bildbeschreibung Mouseover<br>
         <input type="text" name="tag" value=""><br><br>
&nbsp;Quelle:<br>
         <input type="text" name="source" value=""><br><br>
         
Publizierdatum:<br/>
         <input name="start-datum-tt" size="2" maxlength="2" value="Tag" type="text" />
         <input name="start-datum-mm" size="2" maxlength="2" value="Monat" type="text" />
         <input name="start-datum-yyyy" size="4" maxlength="4" value="Jahr" type="text" />
         <select name="start-hh">
           <option value="">HH</option>

           <option value="01">01</option>
           <option value="02">02</option>
           <option value="03">03</option>
           <option value="04">04</option>
           <option value="05">05</option>
           <option value="06">06</option>

           <option value="07">07</option>
           <option value="08">08</option>
           <option value="09">09</option>
           <option value="10">10</option>
           <option value="11">11</option>
           <option value="12">12</option>

           <option value="13">13</option>
           <option value="14">14</option>
           <option value="15">15</option>
           <option value="16">16</option>
           <option value="17">17</option>
           <option value="18">18</option>

           <option value="19">19</option>
           <option value="20">20</option>
           <option value="21">21</option>
           <option value="22">22</option>
           <option value="23">23</option>
           <option value="24">24</option>

        </select>
        <select name="start-mm">
           <option value="">MM</option>
           <option value="00">00</option>
           <option value="01">01</option>
           <option value="02">02</option>
           <option value="03">03</option>

           <option value="04">04</option>
           <option value="05">05</option>
           <option value="06">06</option>
           <option value="07">07</option>
           <option value="08">08</option>
           <option value="09">09</option>

           <option value="10">10</option>
           <option value="11">11</option>
           <option value="12">12</option>
           <option value="13">13</option>
           <option value="14">14</option>
           <option value="15">15</option>

           <option value="16">16</option>
           <option value="17">17</option>
           <option value="18">18</option>
           <option value="19">19</option>
           <option value="20">20</option>
           <option value="21">21</option>

           <option value="22">22</option>
           <option value="23">23</option>
           <option value="24">24</option>
           <option value="25">25</option>
           <option value="26">26</option>
           <option value="27">27</option>

           <option value="28">28</option>
           <option value="29">29</option>
           <option value="30">30</option>
           <option value="31">31</option>
           <option value="32">32</option>
           <option value="33">33</option>

           <option value="34">34</option>
           <option value="35">35</option>
           <option value="36">36</option>
           <option value="37">37</option>
           <option value="38">38</option>
           <option value="39">39</option>

           <option value="40">40</option>
           <option value="41">41</option>
           <option value="42">42</option>
           <option value="42">42</option>
           <option value="44">44</option>
           <option value="45">45</option>

           <option value="46">46</option>
           <option value="47">47</option>
           <option value="48">48</option>
           <option value="49">49</option>
           <option value="50">50</option>
           <option value="51">51</option>

           <option value="52">52</option>
           <option value="53">53</option>
           <option value="54">54</option>
           <option value="55">55</option>
           <option value="56">56</option>
           <option value="57">57</option>

           <option value="58">58</option>
           <option value="59">59</option>
        </select><br>
Depublizierdatum:<br />
         <input name="depub-datum-tt" size="2" maxlength="2" value="Tag" type="text" />
         <input name="depub-datum-mm" size="2" maxlength="2" value="Monat" type="text" />
         <input name="depub-datum-yyyy" size="4" maxlength="4" value="Jahr" type="text" />
         <select name="depub-hh">
           <option value="">HH</option>

           <option value="01">01</option>
           <option value="02">02</option>
           <option value="03">03</option>
           <option value="04">04</option>
           <option value="05">05</option>
           <option value="06">06</option>

           <option value="07">07</option>
           <option value="08">08</option>
           <option value="09">09</option>
           <option value="10">10</option>
           <option value="11">11</option>
           <option value="12">12</option>

           <option value="13">13</option>
           <option value="14">14</option>
           <option value="15">15</option>
           <option value="16">16</option>
           <option value="17">17</option>
           <option value="18">18</option>

           <option value="19">19</option>
           <option value="20">20</option>
           <option value="21">21</option>
           <option value="22">22</option>
           <option value="23">23</option>
           <option value="24">24</option>

        </select>
        <select name="stop-mm">
           <option value="">MM</option>
           <option value="00">00</option>
           <option value="01">01</option>
           <option value="02">02</option>
           <option value="03">03</option>

           <option value="04">04</option>
           <option value="05">05</option>
           <option value="06">06</option>
           <option value="07">07</option>
           <option value="08">08</option>
           <option value="09">09</option>

           <option value="10">10</option>
           <option value="11">11</option>
           <option value="12">12</option>
           <option value="13">13</option>
           <option value="14">14</option>
           <option value="15">15</option>

           <option value="16">16</option>
           <option value="17">17</option>
           <option value="18">18</option>
           <option value="19">19</option>
           <option value="20">20</option>
           <option value="21">21</option>

           <option value="22">22</option>
           <option value="23">23</option>
           <option value="24">24</option>
           <option value="25">25</option>
           <option value="26">26</option>
           <option value="27">27</option>

           <option value="28">28</option>
           <option value="29">29</option>
           <option value="30">30</option>
           <option value="31">31</option>
           <option value="32">32</option>
           <option value="33">33</option>

           <option value="34">34</option>
           <option value="35">35</option>
           <option value="36">36</option>
           <option value="37">37</option>
           <option value="38">38</option>
           <option value="39">39</option>

           <option value="40">40</option>
           <option value="41">41</option>
           <option value="42">42</option>
           <option value="42">42</option>
           <option value="44">44</option>
           <option value="45">45</option>

           <option value="46">46</option>
           <option value="47">47</option>
           <option value="48">48</option>
           <option value="49">49</option>
           <option value="50">50</option>
           <option value="51">51</option>

           <option value="52">52</option>
           <option value="53">53</option>
           <option value="54">54</option>
           <option value="55">55</option>
           <option value="56">56</option>
           <option value="57">57</option>

           <option value="58">58</option>
           <option value="59">59</option>
        </select><br><br>
        
<input type="hidden" name="MAX_FILE_SIZE" value="5000000" />
<input type="submit" name="sent" value="Absenden">
<input type="reset" value=" Abbrechen">
          
</form>  
</center>
<?php

$picname = $_POST['picname'];
$pic_description = $_POST['pic_description'];
$url = mysql_real_escape_string($_POST['url']);
$alt_tag = mysql_real_escape_string($_POST['tag']);
$start = $_POST['start-hh'];
$end = $_POST['depub-hh'];
$source = $_POST['source'];

if(isset($_POST['submit']) && $_POST['submit']=="Absenden"){
	$dateityp = GetImageSize($_FILES['picname']['tmp_name']);
if($dateityp[2] != 0)
   {

   if($_FILES['picname']['size'] < 5000000)
      {
      move_uploaded_file($_FILES['picname']['tmp_name'], "./images/pics/".$_FILES['picname']['name']);
      mysql_query("INSERT INTO pic (name, info, link, pup, depup, alttag, source) 
     	             VALUES('".$picname."', '".$pic_description."', '".$url."', '".$alt_tag."', '".$end."','".$source."','".$start."')");
      echo "Das Bild wurde Erfolgreich nach ./images/pics/".$_FILES['picname']['name']." hochgeladen";
      }

   else
      {
         echo "Das Bild darf nicht größer als 5000000 kb sein ";
      }

    }

else
    {
    echo "Bitte nur Bilder im Gif bzw. jpg Format hochladen";
    }
}  

	
   $checkname = mysql_query("SELECT * FROM pic WHERE name = '".$picname."'");
     
     if(mysql_num_rows($checkname) == 1)
     {
     	echo "<h1>Error</h1>";
        echo "<p>Dieses Bild existiert bereits</p>";
    
    
     }     	
        
        else
        {
     		echo "<h1>Error</h1>";
        	echo "<p>Bitte erneut versuchen<a href=\"index.php\">zurueck</p>";   
        } 
      	



echo "<br><br><a href='pic.php'>&laquo; Zurueck</a><br>";
?>
</div>
</body>
</html>

er schreibt mir weder in die db noch in läd er das bild hoch..
woran könnte es liegen?

ich danke euch im voraus und sry das ich wegen des uploads schreibe aber ich muss das fertig bekommen!

danke euch!

mfg tim
 
Hi,

stehen denn nach dem Absenden Daten in $_POST? Prüfe das mal, indem du das $_POST Array ausgibst:
PHP:
print_r($_POST);
$picname = $_POST['picname'];

Ich tippe ja erstmal auf:
Code:
action="<?PHP echo $PHP_SELF;?>"

Schreib hier:
Code:
action="<?php echo $_SERVER['PHP_SELF']; ?>"

Oder, wenn du das Formular sowieso in der selben Datei verarbeitest, reicht auch:
Code:
action=""
 
Zuletzt bearbeitet:
Hi, also darf das Uploadtscript überhaupt Bilder hochladen?
PHP:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Ich verwendes immer folgendes.
PHP:
<?php
// Einstellungen:
  // Verzeichnis, in das die Dateien hochgeladen werden;
  // muss vorhanden sein und benötigt Schreiberechte (CHMOD 777):
$upload_dir = "uploaded_files";
  // maximale Dateigröße in KB:
$max_file_size = 200;
  // maximale Größe bei Bildern:
$max_image_width = 1024;
$max_image_height = 768;
  // Datei-Typen:
$accepted_file_types = array('image/jpeg','image/pjpeg','image/gif','image/png','text/plain','text/html');
  // Datei-Endungen:
$accepted_file_extensiones = array('jpg','jpeg','gif','png','txt','html','htm');

// Sprache:
$lang['title']                  = 'Datei hochladen';
$lang['upload_subm_button']     = 'OK - Hochladen';
$lang['error_headline']         = 'Fehler:';
$lang['invalid_file_type']      = 'ungültiges Dateiformat ([file_type])';
$lang['invalid_file_extension'] = 'ungültige Datei-Erweiterung ([file_extension])';
$lang['file_too_large']         = 'Datei zu groß ([size] KB)';
$lang['image_too_large']        = 'Bild zu groß ([width] x [height])';
$lang['file_already_exists']    = 'die Datei <b>[file]</b> existiert bereits';
$lang['upload_successful']      = 'Die Datei [file] wurde erfolgreich hochgeladen!';
$lang['upload_not_successful']  = '<b>Fehler:</b> Die Datei [file] konnte nicht gespeichert werden!';
$lang['load_up_another_file']   = "eine weitere Datei hochladen...";

?><html>
<head>
<title><?php echo $lang['title']; ?></title>
<style type="text/css">
<!--
body                { font-family: Verdana,Arial,Helvetica,sans-serif; color: #000000; font-size:13px; background-color: #fffff3; margin: 0px; padding: 20px; }
h1                  { margin: 0px 0px 20px 0px; font-size:18px; font-weight:bold; }
.caution            { color: red; font-weight: bold; }
.small              { font-size: 11px; }
-->
</style>
</head>
<body>
<h1><?php echo $lang['title']; ?></h1>
<?php
 if (isset($_FILES['probe']) && $_FILES['probe']['size'] != 0 && !$_FILES['probe']['error'])
  {
   unset($errors);
   // file type ok?
   if (!in_array($_FILES['probe']['type'], $accepted_file_types)) $errors[] = str_replace("[file_type]",$_FILES['probe']['type'],$lang['invalid_file_type']);
   // extension ok?
   $exts = explode(".", basename($_FILES['probe']['name']));
   $file_extension = strtolower($exts[sizeof($exts)-1]);
   if (!in_array($file_extension, $accepted_file_extensiones)) $errors[] = str_replace("[file_extension]",$file_extension,$lang['invalid_file_extension']);
   // file size ok?
   if ($_FILES['probe']['size'] > $max_file_size*1000) $errors[] = str_replace("[size]",number_format($_FILES['probe']['size']/1000,0,",",""),$lang['file_too_large']);
   // if it's an image, image size ok?
   if (in_array($_FILES['probe']['type'], $accepted_file_types) && in_array($_FILES['probe']['type'],array('image/jpeg','image/pjpeg','image/gif','image/png','image/bmp')))
    {
     $image_info = getimagesize($_FILES['probe']['tmp_name']);
     if ($image_info[0] > $max_image_width || $image_info[1] > $max_image_width) { $lang['image_too_large'] = str_replace("[width]",$image_info[0],$lang['image_too_large']); $errors[] = str_replace("[height]",$image_info[1],$lang['image_too_large']); }
    }
   // filename already exists?
   if (file_exists($upload_dir."/".basename($_FILES['probe']['name']))) $errors[] = str_replace('[file]',$_FILES['probe']['name'],$lang['file_already_exists']);

   // if everything is ok load up the file:
   if (empty($errors))
    {
     if (move_uploaded_file($_FILES['probe']['tmp_name'], $upload_dir.'/'.basename($_FILES['probe']['name'])))
      {
       chmod($upload_dir.'/'.$_FILES['probe']['name'], 0644);
       ?><p><?php echo str_replace('[file]', '<a href='.$upload_dir.'/'.$_FILES['probe']['name'].'>'.$_FILES['probe']['name'].'</a>',$lang['upload_successful']); ?></p>
       <p class="small"><a href="<?php echo basename($_SERVER['PHP_SELF']); ?>"><?php echo $lang['load_up_another_file']; ?></a></p><?php
      }
     else
      {
       ?><p><?php echo str_replace('[file]', $_FILES['probe']['name'],$lang['upload_not_successful']); ?></p><?php
      }
    }
   // ...else show what's wrong:
   else
    {
     ?><p class="caution"><?php echo $lang['error_headline']; ?></p><ul><?php foreach($errors as $f) { ?><li><?php echo $f; ?></li><?php } ?></ul><br /><?php
    }
  }

// show the upload form:
if (empty($_FILES['probe']) || $_FILES['probe']['size'] == 0 || isset($errors))
 {
 ?>
 <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">
 <input type="file" name="probe" /><br><br>
 <input type="submit" name="submit-button" value="<?php echo $lang['upload_subm_button']; ?>">
 </form>
 <?php
 }
?>
</body>
</html>
 
Erstmal Danke für die Antworten, ihr seit echt super hier im forum, also das mit der
PHP:
<form action="<?PHP echo $PHP_SELF;?>" method="post" enctype="multipart/form-data">

habe ich geändert daran liegts net und bei deinem upload script, was echt gut ist, aber ich brauch eben eins, wo ich direkt dem bild daten mitgeben kann und diese dann mit der bildid in der db gespeichert werden...

Danke euch schonmal..

edit:

das steht im array:

Code:
Array ( [pic_description] => adasdas [url] => dasssssss [tag] => dasssssssssssss [source] => dasssssssss [start-datum-tt] => Tag [start-datum-mm] => Monat [start-datum-yyyy] => Jahr [start-hh] => [start-mm] => [depub-datum-tt] => Tag [depub-datum-mm] => Monat [depub-datum-yyyy] => Jahr [depub-hh] => [stop-mm] => [MAX_FILE_SIZE] => 5000000 [sent] => Absenden )
 
Zuletzt bearbeitet:
Und was kommt bei:
Code:
print_r($_FILES);

Schreib mal noch bitte ganz oben im Script:
Code:
error_reporting(E_ALL|E_STRICT);
 
da kommt folgende ausgabe:
Code:
Array ( [picname] => Array ( [name] => LoginFormular_780.jpg [type] => image/jpeg [tmp_name] => /tmp/phpTOBuK2 [error] => 0 [size] => 12193 ) )
Notice: Undefined index: picname in /srv/test/htdocs/Bachelorarbeit/upload.php on line 257

Mh es sieht so aus als hätte $_POST Variable Probleme mit
HTML:
&nbsp;Bildname:<br>
         <input type="file" name="picname" value=""><br><br>

ne idee?

danke..
 
Ok nachdem ich nochmal genauer drüber geschaut habe, denke ich der Fehler liegt hier:
PHP:
if(isset($_POST['submit']) && $_POST['submit']=="Absenden"){

Der Name des Submit-Buttons ist "sent", also muss das so lauten:
PHP:
if(isset($_POST['sent']) && $_POST['sent']=="Absenden"){

Oder noch einfacher:
PHP:
if ($_POST)

Dann noch diese Zeile löschen:
PHP:
$picname = $_POST['picname'];

Und im Sql-Statement statt $picname, $_FILES['picname']['name'] verwenden.
 
Geil!
Endlich vielen, vielen Dank!!

Kann man hier irgendwo, bewerten, das du wenigstens ein bisje was für deine Mühen hast! ;)!

dank dir!

mfg
 
Zurück