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:
##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");
// 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> </td>";
echo " </tr>";
echo " </table> ";
echo"</form>";
}
?>