eatyourcookie
Goto Top

Dateiname bei Dateiupload mit PHP auslesen und in Datenbank eintragen

Moin Moin liebe Admins!

<?php

move_uploaded_file($_FILES['datei']['tmp_name'], "praesentationen/".$_FILES['datei']['name']);  

$dateiname = $_FILES['datei']['name'];  

if($dateiname != "") {  
$sql = "INSERT INTO `projekt`.`prezis` (`id`, `title`, `filename`, `length`) VALUES (NULL,'".$_POST['title']."','".$_POST['$dateiname']."','".$_POST['length']."')";  
mysql_query($sql);
$sql1 = "INSERT INTO `projekt`.`prezis` (`id`, `title`, `filename`, `quiz_1`, `quiz_2`, `quiz_3`, `quizlength`) VALUES (NULL,'".$_POST['title']."','".$_POST['filename']."','".$_POST['quiz1']."','".$_POST['quiz2']."','".$_POST['quiz3']."','".$_POST['quizlength']."')";  
mysql_query($sql1);
echo "$dateiname";  
echo"<br>Erfolgreich hinzugefuegt!";  
} ?> 
Ein Auschnitt meines Eingabeformulars.


Mein Problem:
Es wird über dieses Formular eine Datei in ein Verzeichnis hochgeladen. Das funktioniert auch alles so wie gedacht. Nun muss ich aber in meinem Formular auch den Dateinamen auslesen und diesen parallel zum Upload in eine Tabelle aus meiner Datenbank eintragen.

Zum Code:
Bis auf den Dateinamen werden auch alle Werte an die Datenbank übergeben. Das vorletzte Echo gibt den Dateinamen auch richtig aus. (Nur zum Test eingefügt)


Hoffentlich hat jmd von euch eine Lösung!

Content-Key: 142041

Url: https://administrator.de/contentid/142041

Printed on: April 19, 2024 at 15:04 o'clock

Member: kaiand1
kaiand1 May 04, 2010 at 09:12:59 (UTC)
Goto Top
Moin
erstmal währe wichtig alle übergegbende Variabeln vom Post/Get ect zu Prüfen und die behinhaltende Daten zu "entschärfen" falls da ein Code eingeschmuggelt wird.
zb
$file=htmlspecialchars($_POST["file"]);
Und da mann ja dann gleich eine neue Variabel hat die kürzer ist trägt mann diese nur noch im SQL Insert ein was auch übersichtlicher ist.
Zumal aber auch
error_reporting(E_ALL);
echo mysql_error();
eine gute Hilfe ist um Fehler zu finden wiso der es nicht eintägt wie mann es möchte ;)
Member: eatyourcookie
eatyourcookie May 04, 2010 at 09:27:08 (UTC)
Goto Top
das ganze system ist nicht übers netzwerk erreichbar, habe mir nur mit phph ein programm zum präsentieren von flashmovies aufm fernseher geschrieben. von daher ist das alles unwichtig.
ich müsste einfach nur wissen, ob und wie man den inhalt einer variablen in eine datenbank eintragen kann und wenn, wo der fehler ist.
ich versuche ja, via post die gesamte variable "$dateiname" an die datenbank zu übergeben, als wenn es sich hierbei um einen text handelt, der in ein engabefeld eingetippt wurde und nun übergeben werden soll.

$sql = "INSERT INTO `projekt`.`prezis` (`id`, `title`, `filename`, `length`) VALUES (NULL,'".$_POST['title']."','".$_POST['$dateiname']."','".$_POST['length']."')";  


title, dateiname als variable znd length.
Member: nxclass
nxclass May 04, 2010 at 09:27:20 (UTC)
Goto Top
na wo steht den nun der Dateiname ?
$_FILES['datei']['name']  
$_POST['$dateiname']  // mit Sicherheit nicht ! - wenn dann $_POST["$dateiname"] oder eher $dateiname  
$_POST['filename']  
... gefunden ?
Member: eatyourcookie
eatyourcookie May 04, 2010 at 09:40:21 (UTC)
Goto Top
entweder blick ich nun nicht, wie du das meinst, oder du hast nicht gesehen, dass oben im code in zeile 5 folgendes steht:

$dateiname = $_FILES['datei']['name'];


ich vereinfache das ganze mal kurz:

<?php
$variable = "1";  
$sql = "INSERT INTO `datenbank`.`tabelle` (`variable`) VALUES (NULL,'".$_POST['$variable']."')";   
mysql_query($sql); 
?>
Member: godlie
godlie May 04, 2010 at 10:12:48 (UTC)
Goto Top
Wie wärs denn mit $dateiname anstatt $_POST['$dateiname'] im sql query?

Glaub nämlich nicht das dazwischn ein Formular mit POST Übergabe ist zwischen Zeile 05 und 07....
Member: eatyourcookie
eatyourcookie May 04, 2010 at 10:44:22 (UTC)
Goto Top
Endlich, ES FUNKTIONIERT! :D


Hier der Code:

<?php

move_uploaded_file($_FILES['datei']['tmp_name'], "praesentationen/".$_FILES['datei']['name']);  

$dateiname = $_FILES['datei']['name'];  

if($dateiname != "") {  
$sql = "INSERT INTO `projekt`.`prezis` (`id`, `title`, `filename`, `length`) VALUES (NULL,'".$_POST['title']."','$dateiname','".$_POST['length']."')";  
mysql_query($sql);
$sql1 = "INSERT INTO `projekt`.`prezis` (`id`, `title`, `filename`, `quiz_1`, `quiz_2`, `quiz_3`, `quizlength`) VALUES (NULL,'".$_POST['title']."','".$_POST['filename']."','".$_POST['quiz1']."','".$_POST['quiz2']."','".$_POST['quiz3']."','".$_POST['quizlength']."')";  
mysql_query($sql1);
echo"<br>Erfolgreich hinzugefuegt!";  
} ?>