Upload-Skript

nordi

Erfahrenes Mitglied
Hi, ich habe eine Frage.. und zwar habe ich ein UploadSkript, aber es funktioniert leider nicht der Upload bzw. die Absicherung der Daten nicht in der MYSQL-Datenbank? Es wird mir auch keine Fehlermeldung ausgegeben? Wäre nett, wenn ihr da mal drüber gucken könntet.. ich überseh anscheinend den Fehler:

PHP:
<?php 
		  include("content/config/config.php");

if($_GET['action'] == "upload") { 

// Auf Fehler überprüfen 
if ($_FILES['datei']['error'] == UPLOAD_ERR_NO_FILE || $_FILES['datei']['error'] == UPLOAD_ERR_PARTIAL) { 
// die Datei wurde nicht oder nur teilweise hochgeladen 
die("Die Datei wurde nicht korrekt hochgeladen. Bitte versuchen Sie es erneut."); 

} elseif ($_FILES['datei']['error'] == UPLOAD_ERR_FORM_SIZE || $_FILES['datei']['error'] == UPLOAD_ERR_INI_SIZE) { 
// die Datei ist zu groß 
die("Die hochgeladene Datei ist zu groß."); 

} else { 
// die Datei wurde korrekt hochgeladen 

$connect = mysql_connect($dbhost, $dbuser, $dbpass) or die("Verbindung zum Server nicht hergestellt!<br>");     
$selectDB = mysql_select_db($dbtable) or die("Konnte die Datenbank <b>$essay</b> nicht auswählen");  

// Temporäre Datei schreiben (ist wegen der Lese-Rechte nötig) 
// und auf die temp-Datei Lese Rechte vergeben 
move_uploaded_file($_FILES['datei']['tmp_name'], "temp/tempfile.tmp"); 
chmod("temp/tempfile.tmp", 0644); 

// Daten aus Temp-Datei einlesen 
$zeiger = fopen("temp/tempfile.tmp", "rb"); 
$size = $_FILES['datei']['size']; 
// den Dateiinhalt in $data speichern 
$data = fread($zeiger, $size); 
fclose($zeiger); 

// Temporäre Datei löschen 
@unlink("temp/tempfile.tmp"); 

// Damit die Datei jetzt in die mySQL Tabelle kann müssen wir sie vorher kodieren: 
$data = base64_encode($data); 

// Leerzeichen im Dateinamen werden mit einem Unterstrich ersetzt 
$dateiname = str_replace(" ", "_", $_FILES['datei']['name']); 

// Und ab in die mySQL Tabelle... 
$eintrag = "INSERT INTO $essay (filename,filetype,filecontent,filesize,note, datei,proof,ip,zeit) VALUES ('', '".$dateiname."', '".$_FILES['datei']['type']."', '".$data."', '".$size."')"; 
$eintragen = mysql_query($eintrag);

echo "Datei-Upload erfolgreich."; 
exit; 
} 

} else { 
// Upload-Formular anzeigen 
echo "<form method=\"post\" action=\"" . $PHP_SELF . "?action=upload\" enctype=\"multipart/form-data\"> 
<input type=\"hidden\" name=\"MAX_FILES_SIZE\" value=\"2097152\"> 
<input type=\"file\" name=\"datei\" maxlength=\"2097152\"><br> 
<input type=\"submit\" name=\"submit\" value=\"Uploaden\"> 
</form>"; 
} 

?>


##EDIT##

Okay, hab das Problem gelöst.. lag an meiner MySQL-Tabelle :/ Aber noch ein kleines anderes Problem.. hab die Tabelle ein wenig erweitert, doch er speichert nun die anderen Werte aus der Datenbank nicht ab.. woran kann das liegen?

PHP:
 <?php 
		  include("content/config/config.php");

if($_GET['action'] == "upload") { 

// Auf Fehler überprüfen 
if ($_FILES['datei']['error'] == UPLOAD_ERR_NO_FILE || $_FILES['datei']['error'] == UPLOAD_ERR_PARTIAL) { 
// die Datei wurde nicht oder nur teilweise hochgeladen 
die("Die Datei wurde nicht korrekt hochgeladen. Bitte versuchen Sie es erneut."); 

} elseif ($_FILES['datei']['error'] == UPLOAD_ERR_FORM_SIZE || $_FILES['datei']['error'] == UPLOAD_ERR_INI_SIZE) { 
// die Datei ist zu groß 
die("Die hochgeladene Datei ist zu groß."); 

} else { 
// die Datei wurde korrekt hochgeladen 

$connect = mysql_connect($dbhost, $dbuser, $dbpass) or die("Verbindung zum Server nicht hergestellt!<br>");     
$selectDB = mysql_select_db($dbtable) or die("Konnte die Datenbank <b>$essay</b> nicht auswählen");  
echo mysql_error();

// Temporäre Datei schreiben (ist wegen der Lese-Rechte nötig) 
// und auf die temp-Datei Lese Rechte vergeben 
move_uploaded_file($_FILES['datei']['tmp_name'], "temp/tempfile.tmp"); 
chmod("temp/tempfile.tmp", 0644); 

// Daten aus Temp-Datei einlesen 
$zeiger = fopen("temp/tempfile.tmp", "rb"); 
$size = $_FILES['datei']['size']; 
// den Dateiinhalt in $data speichern 
$data = fread($zeiger, $size); 
fclose($zeiger); 

// Temporäre Datei löschen 
@unlink("temp/tempfile.tmp"); 

// Damit die Datei jetzt in die mySQL Tabelle kann müssen wir sie vorher kodieren: 
$data = base64_encode($data); 

// Leerzeichen im Dateinamen werden mit einem Unterstrich ersetzt 
$dateiname = str_replace(" ", "_", $_FILES['datei']['name']); 

// Und ab in die mySQL Tabelle... 
$eintrag = "INSERT INTO $essay (filename,filetype,filecontent,filesize,name,thema,note,proof,ip,zeit) VALUES ('".$dateiname."', '".$_FILES['datei']['type']."', '".$data."', '".$size."','$name','$thema','$note','','','')"; 
$eintragen = mysql_query($eintrag);
echo mysql_error();

echo "Datei-Upload erfolgreich."; 
exit; 
} 

} else { 
// Upload-Formular anzeigen 
echo "<form method=\"post\" action=\"" . $PHP_SELF . "?action=upload\" enctype=\"multipart/form-data\">";
echo "<table width=\"100%\" border=\"0\" cellspacing=\"2\" cellpadding=\"0\">";
echo           " <tr>";
echo            "  <td width=\"32%\">Name:</td>";
echo            "  <td width=\"68%\"><label>";
echo              "  <input type=\"text\" name=\"name\" id=\"name\" />";
echo            "  </label></td>";
echo          "  </tr>";
echo          "  <tr>";
echo             " <td>Thema:</td>";
echo             " <td><input type=\"text\" name=\"thema\" id=\"thema\" /></td>";
echo           " </tr>";
echo           " <tr>";
echo             " <td>Dozent</td>";
echo              "<td><input type=\"text\" name=\"dozent\" id=\"dozent\" /></td>";
echo           " </tr>";
echo            "<tr>";
echo             " <td>Note:</td>";
echo            "  <td><input type=\"text\" name=\"note\" id=\"note\" /></td>";
echo            "</tr>";
echo           " <tr>";
echo            "  <td>Semester:</td>";
echo             " <td><label>";
echo               " <select name=\"semester\" id=\"semester\">";
echo                 " <option value=\"ss06\">Sommersemester 06</option>";
echo                  "<option value=\"ws06\">Wintersemester 06/07</option>";
echo                 " <option value=\"ss07\">Sommersemester 07</option>";
echo                 " <option value=\"ws07\">Wintersemester 07/08</option>";
echo                  "<option value=\"ss08\">Sommersemester 08</option>";
echo                 " <option value=\"ws08\">Wintersemester 08/09</option>";
echo                  "<option value=\"ss09\">Sommersemester 09</option>";
echo                  "<option value=\"ws09\">Wintersemester 09/10</option>";
echo               " </select>";
echo             " </label></td>";
echo           " </tr>";
echo	  "  <tr>";
echo             " <td>DateI:</td>";
echo             " <td><input type=\"hidden\" name=\"MAX_FILES_SIZE\" value=\"2097152\"> ";
echo" <input type=\"file\" name=\"datei\" maxlength=\"2097152\"><br> ";
echo            "</tr>";
echo " <td><label>";
echo "                <input type=\"submit\" name=\"submit\" value=\"Uploaden\">  ";
echo "              </label></td>";
echo "              <td>&nbsp;</td>";
echo "            </tr>";
echo         " </table> ";
echo"</form>"; 
} 

?>
 
Moin,

woher kommen denn diese Variablen?

Code:
,'$name','$thema','$note'

Falls du sie direkt aus dem Formular übernimmst, dann musst du über $_POST darauf zugreifen.
 
Zurück