Hallo Leute,
ich bin momentan dabei mir meine eigene Homepage zu coden und bin relativ neu im Gebiet PHP, was über Grundgerüste hinausgeht.
Ich möchte meinen Redakteuren in einem Backend die Möglichkeit geben eine Datei hochzuladen. Irgendwie will das aber nicht klappen und ich versteh einfach nicht wieso.
Kurze Erklärung zu meinem Script unten:
Der User bekommt ein Formular, wo er den Namen für die Übersicht, die Kategorie, einen externen Link eingeben oder eine Datei hochladen kann.
Der Weg "Name, Kategorie, ext Link" klappt und wird erfolgreich in die Datenbank geschrieben, aber der Weg mit dem Dateiupload klappt leider nicht.
Das Script soll die Datei erstmal auf den Server in ein bestimmtes Verzeichnis (je nach Kategorie) laden und den gleichen Namen haben, wie auf dem PC des users. Dann soll er genau diesen Pfad mit den anderen Formular-Feldern (ext Link bleibt dabei leer) in das Feld "Download" der Datenbank packen und zwar als Link (siehe $dateilink).
Mal ganz abgesehen davon, dass die Datei nicht in mein gewünschtes Verzeichnis geladen wird, klappt aber der Datenbankeintrag nicht.
Denn der sollte ja trotzdem funktionieren, da das Script ja nicht abbricht, sollte der move-Befehl nicht funktionieren.
Jetzt aber zum Script (DB Passwort etc. wurden im original Script natürlich angepasst):
<body>
<?php
include("header.php");
?>
<div id="content_sidebar_wrapper">
<?php include("navigation.php"); ?>
<div class="content">
<?php
$name = $_POST['name'];
$category = $_POST['category'];
$link = $_POST['link'];
$download = $_FILES['download'];
mysql_connect('localhost','user','password');
mysql_select_db('datenbank');
if(empty($name) || empty($category))
{
echo "Es wurden nicht alle Felder ausgeführt.";
echo "<br><br><br><br><a href='javascript:history.back()'> Zurück </a>";
}
else
{
if($_FILES['download']['name'] != "")
{
$uploadverzeichnis = "/var/www/clients/client3/web17/web/blabla/images/uploads/" . $category . "/" . $_FILES['download']['name'];
$dateilink = "<a href=' " . $uploadverzeichnis . " '>Download</a>";
/* move_uploaded_file($_FILES['download']['tmp_name'], $uploadverzeichnis); */
$eintrag1 = "INSERT INTO dateiupload (Dateiname, Kategorie, Link, Download) VALUES ('$name', '$category', '$link', '$dateilink')";
if(!mysql_query($eintrag1))
{
echo mysql_errno() . " ------------ " . mysql_error();
echo "<br><br>Es ist ein Fehler aufgetreten.<br><br><a href='datei.php'>Zurück</a>";
}
else
{
echo "<i>1 Datensatz wurde der Datenbank hinzugefügt.</i><br><br><br><br><br>";
echo "Es wurden folgende Angaben gemacht:<br><br>";
echo "<table border='1' cellpadding='5'>";
echo "<tr><td><b>Dateiname</b></td> <td><b>Kategorie</b></td>";
echo "<td><b>Link</b></td> <td><b>Download</b></td></tr>";
echo "<tr><td>" . $name . "</td><td>" . $category . "</td><td>" . $link . "</td>";
echo "<td>" . $dateilink . "</td></tr></table>";
echo "<br><br><br><br>";
echo "<a href='datei.php'>Zurück</a>";
}
}
else
{
if(empty ($link))
{
echo "Du musst einen Link angeben!<br><br><a href='datei.php'>Zurück</a>";
}
else
{
$eintrag2 = "INSERT INTO dateiupload (Dateiname, Kategorie, Link) VALUES ('$name', '$category', '$link')";
if(!mysql_query($eintrag2))
{
echo "Ein Fehler ist aufgetreten.<br><br><a href='datei.php'>Zurück</a>";
}
else
{
echo "<i>1 Datensatz wurde der Datenbank hinzugefügt.</i><br><br><br><br><br>";
echo "Es wurden folgende Angaben gemacht:<br><br>";
echo "<table border='1' cellpadding='5'>";
echo "<tr> <td><b>Dateiname</b></td> <td><b>Kategorie</b></td>";
echo "<td><b>Link</b></td></tr>";
echo "<tr><td>" . $name . "</td><td>" . $category . "</td><td>" . $link . "</td></tr></table>";
echo "<br><br><br><br>";
echo "<a href='datei.php'>Zurück</a>";
}
}
}
}
?>
</div>
</div>
Alles anzeigen
Das Formular:
<?php
include("header.php");
?>
<body>
<div id="content_sidebar_wrapper">
<?php include("navigation.php"); ?>
<div class="content">
<h3>Datei hochladen</h3>
<form action="datei_upload.php" method="post" enctype="multipart/form-data">
<table border="0">
<tr><td>Dateiname:</td><td><input name="name" size="60"></td></tr>
<tr><td>Kategorie:</td><td>
<select name="category">
<option value="artikelbild">artikelbild</option>
<option value="podcast">podcast</option>
<option value="programmpaket">programmpaket</option>
<option value="sonstiges">sonstiges</option>
</select>
</td></tr><tr><td><br></td><td><br></td></tr>
<tr><td>ext. Link (optional)</td><td><input name="link" size="80"></td></tr>
<tr><td>Datei</td><td><input name="download" type="file" size="61"></td></tr>
</table><br>
<input type="submit" value="Abschicken">
</form><br><br>
<?php include('datei_tabelle.php'); ?>
</div>
</div>
Alles anzeigen
Und der Fehler beim Absenden des Dokuments, der dann angeblich bei der Variable $dateilink wäre:
1064 ------------ You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''>Download')' at line 1
Ich wette es ist irgendetwas total banales und ich bin einfach zu blind es zu sehen...
Hoffe ihr könnt mir helfen und danke schonmal im Voraus!
Gruß
Sky