Formular schreibt nicht in die Datenbank

Stephan Liebig

Erfahrenes Mitglied
Ich habe ein Kleines Problem. Ich möchte über ein Formular Datein wie .doc/.pdf usw hochladen. Das Hochladen ansich funktioniert auch soweit, aber dazu möchte ich noch einen Eintrag in der Datenbank haben und das macht er leider nicht.

PHP:
if(isset($_POST['action'])) {
				move_uploaded_file($_FILES['protokoll']['tmp_name'], "uploads/protokolle/".$_FILES['protokoll']['name']);
				
				if(mysql_query("INSERT INTO protokolle (protokoll, vom, active) 
                VALUES ('".$_FILES['protokoll']['name']."', '$_POST[vom]', '$_POST[active]')")) {
                        echo "<br>Protokoll wurde erfolgreich in die Datenbank &uuml;bernommen.";
                        echo '<br /><a href="admin.php?action=5">zur&uuml;ck</a>';
                } 
                else {
                        echo ("<br>Protokoll konnte nicht in die Datenbank aufgenommen werden!");
                        echo '<br /><a href="admin.php?action=5">zur&uuml;ck</a>';
                } 
			}

Das Formular:
PHP:
<?php 
//----------------------------------------------------------------
// archiv.inc.php
//----------------------------------------------------------------

	// überschrift
	echo('<table cellpadding="0" cellspacing="0" border="0" width="624">');
	echo('<tr><td class="content"><b>Content Management System - Archiv</b></td></tr>');
	echo('<tr><td class="content"><hr><a href="admin.php?action=1">&raquo; &Uuml;bersicht</a>');
	echo(' | <a href="admin.php?action=5&sub=1">&raquo; Protokoll hochladen</a>');
	echo(' | <a href="admin.php?action=5&sub=">&raquo; Emails ver&ouml;ffentlichen</a>');
	$result_adminrights = mysql_query('SELECT * FROM sva_user WHERE username ="'.$_SESSION[username].'" LIMIT 1');
	$data = mysql_fetch_array($result_adminrights);
		if($data[rights] == '5')
			echo(' | <a href="admin.php?action=1&sub=">&raquo; Archivteile l&ouml;schen</a></td></tr>');
	echo('<tr><td class="content"><br>');
	
	
	switch($_GET['sub'])
	{
		case 1:  #Protokoll hochladen
			
			echo '<i>Hier kann ein neues Protkoll hochgeladen werden!</i><br /><br />';
			echo '<form enctype="multipart/form-data" action="admin.php?action=5&sub=1" method="post">';
				echo '<table border="0" width="550">';
					echo '<tbody>';
						echo '<tr>';
							echo '<td width="100">';
								echo 'Protokoll:';
							echo '</td>';
							echo '<td colspan="2">';
								echo '<input name="protokoll" maxlength="32" type="File">';
							echo '</td>';
						echo '</tr>';
						echo '<tr>';
							echo '<td width="100">';
								echo 'Vom:';
							echo '</td>';
							echo '<td>';
								echo '<input name="vom" maxlength="32" type="text" title="Protokoll vom" value="JJJJ-MM-DD">';
							echo '</td>';
						echo '</tr>';
						echo '<tr>';
							echo '<td width="100">';
								echo 'Aktiv:';
							echo '</td>';
							echo '<td>';
								echo '<input name="active" id="active" type="checkbox" value="1" checked="checked" onFocus="ShowDirectHelp(this)" onBlur="HideDirectHelp(this)"/>';
							echo '</td>';
						echo '</tr>';
						echo '<tr>';
							echo '<td width="100">';
							echo '</td>';
							echo '<td>';
								echo '<input name="action" value="Protokoll hochladen" type="submit">';
							echo '</td>';
						echo '</tr>';
					echo '</tbody>';
				echo '</table>';
			echo '</form>';
			break;
			
	}

?>

Sieht jemand meinen Fehler?
 
Ich hab das Statement mal etwas auseinander gezogen...
Was ich geändert hab dürfte ersichtlich sein:
PHP:
mysql_query("INSERT INTO
 protokolle
 (protokoll,
 vom,
 active) 
 VALUES
 ('".mysql_real_escape_string($_FILES['protokoll']['name'])."',
 '".mysql_real_escape_string($_POST[vom])."',
 '".mysql_real_escape_string($_POST[active])."'
)
")

Vorraussetzung ist, dass $_FILES['protokoll']['name'] der von dir generierte Name der Datei ist mit dem sie abgespeichert wird...

[EDIT]
Loomes du schreibst zu schnell für mich ^^
 
Zurück