Få upload og gem i MySQL flettet sammen
Hej.Jeg blev henvist til denne:
http://www.eksperten.dk/artikler/1098
i et andet spørgsmål. Denne har jeg så fået til at virke.
Men jeg ville gerne have det flettet sammen med en formular hvor jeg godt kan få den til at gemme data i databasen, men ikke sende filen op til serveren.
Nogen der kan hjælpe mig med at få det til at virke ? Jeg vedlægger hele filen men upload lagt ind, men den gemmer ikke filen, og lægger ikke linket ind i databasen, som jeg havde regnet med. Her er hele koden:
<?php require_once('Connections/NytMateriel.php'); ?>
<?php
$tabellen = $_GET['Navn'];
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}
$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
$editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
// omskriv dato til MySQL format
$datoen = $_POST['Dato'];
$date = substr($datoen,0,2);
$month = substr($datoen,2,2);
$year = substr($datoen,4,4);
$Dato = $year.'-'.$month.'-'.$date;
if(isset($_POST['myUpload'])){
//Har vi en fil?
if(is_uploaded_file($_FILES['myFile']['tmp_name'])) {
//Filendelse
$extension = strtolower(pathinfo($_FILES['myFile']['name'],PATHINFO_EXTENSION));
//Er filen en af de filer vi gerne vil have?
if(in_array($extension,$allowedFileTypes)) {
//Vi flytter filen fra tmp til vores UPLOADDIR
if(move_uploaded_file($_FILES['myFile']['tmp_name'], "image/" . $uploadDir .basename($_FILES['myFile']['name']))) {
echo '<h3 style="color:green;">File ('.basename($_FILES['myFile']['name']).') uploaded succesfully</h3>';
$FilLink = $uploadDir . basename($_FILES['myFile']['name']);
echo $FilLink;
} else {
echo '<h3 style="color:red;">Error - unable to upload file: '.basename($_FILES['myFile']['name']).'</h3>'; }
} else {
echo '<h3 style="color:red;">Wrong filetype, allowed filetypes are: ('.implode(',',$allowedFileTypes).')</h3>'; }
} else {
echo '<h3 style="color:red;">No file selected<h3>'; }}
// Slut på upload
$BilledeLink = $FilLink;
$insertSQL = sprintf("INSERT INTO `$tabellen` (id, BestilNr, Opstilling, Forfatter, Titel, Tekst, Forlag, Udgivet, Info, Dato, Koebt, BilledeLink, Billede) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",
GetSQLValueString($_POST['id'], "int"),
GetSQLValueString($_POST['BestilNr'], "text"),
GetSQLValueString($_POST['Opstilling'], "text"),
GetSQLValueString($_POST['Forfatter'], "text"),
GetSQLValueString($_POST['Titel'], "text"),
GetSQLValueString($_POST['Tekst'], "text"),
GetSQLValueString($_POST['Forlag'], "text"),
GetSQLValueString($_POST['Udgivet'], "text"),
GetSQLValueString($_POST['Info'], "text"),
GetSQLValueString($Dato, "date"),
GetSQLValueString($_POST['Koebt'], "text"),
GetSQLValueString($BilledeLink, "text"),
GetSQLValueString($_POST['Billede'], "text"));
mysql_select_db($database_NytMateriel, $NytMateriel);
$Result1 = mysql_query($insertSQL, $NytMateriel) or die(mysql_error());
$insertGoTo = "Menuen.html";
if (isset($_SERVER['QUERY_STRING'])) {
$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
$insertGoTo .= $_SERVER['QUERY_STRING'];
}
header(sprintf("Location: %s", $insertGoTo));
}
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<link href="style/style.css" rel="stylesheet" type="text/css">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Nye Materialer.</title>
<script type="text/javascript" language="javascript">
function blink() {
document.form1.BestilNr.focus()
}
</script>
</head>
<body onLoad="java script:blink()">
<br />
<?php
$year = substr($tabellen, 0, 4);
$month = substr($tabellen, 4, 2);
$day = substr($tabellen, 6, 2);
//echo $day ." ". $month ." ". $year;
setLoc('da_DK.ISO_8859-1');
$new_date = strftime("%e. %B %Y", mktime(0, 0, 0, $month, $day, $year));
?>
<center><h3>INDTAST ny titel i listen: <?php echo $new_date; ?>.</h3></center>
<form action="<?php echo $editFormAction; ?>" method="post" name="form1" id="form1" enctype="multipart/form-data">
<table align="center">
<tr valign="baseline">
<td nowrap="nowrap" align="right">BestilNr:</td>
<td><input type="text" name="BestilNr" value="" size="32" /></td>
</tr>
<tr valign="baseline">
<td nowrap="nowrap" align="right">Opstilling:</td>
<td><input type="text" name="Opstilling" value="" size="32" /></td>
</tr>
<tr valign="baseline">
<td nowrap="nowrap" align="right">Forfatter:</td>
<td><input type="text" name="Forfatter" value="" size="32" /></td>
</tr>
<tr valign="baseline">
<td nowrap="nowrap" align="right">Titel:</td>
<td><input type="text" name="Titel" value="" size="32" /></td>
</tr>
<tr valign="baseline">
<td nowrap="nowrap" align="right">Tekst:</td>
<td><input type="text" name="Tekst" value="" size="32" /></td>
</tr>
<tr valign="baseline">
<td nowrap="nowrap" align="right">Forlag:</td>
<td><input type="text" name="Forlag" value="" size="32" /></td>
</tr>
<tr valign="baseline">
<td nowrap="nowrap" align="right">Udgivet:</td>
<td><input type="text" name="Udgivet" value="" size="32" /></td>
</tr>
<tr valign="baseline">
<td nowrap="nowrap" align="right" valign="middle">Info:</td>
<td><textarea name="Info" cols="50" rows="5"></textarea> </td>
</tr>
<tr valign="baseline">
<td nowrap="nowrap" align="right">Dato:</td>
<td><input type="text" name="Dato" value="" size="32" /></td>
</tr>
<tr valign="baseline">
<td align="right" valign="middle">Købt:</td>
<td valign="baseline"><table>
<tr>
<td><input type="radio" name="Koebt" value="ja" />
Ja</td>
<td><input type="radio" name="Koebt" value="nej" / checked="checked">
Nej</td>
</tr>
</table></td>
</tr>
<tr valign="baseline">
<td nowrap="nowrap" align="right">MiniBillede:</td>
<td><?php
// forsøg med upload af billeder
$uploadDir = 'thumb/';
//Bibliotek hvor filer uploades til - husk chmod 777
$allowedFileTypes = array('jpg','gif','png');
//Hvilke filer vil vi acceptere bliver uploadet?
//Er der trykket på Upload file knappen?
echo //'<input type="file" name="myFile"><br />'; ?>
<input type="file" name="myFile" value="" /></td>
</tr>
<tr valign="baseline">
<td nowrap="nowrap" align="right"> </td>
<td><input type="submit" value=" Gem det indtastede " /></td>
</tr>
</table>
<input type="hidden" name="MM_insert" value="form1" />
</form>
<center><a href="Menuen.html" target="_parent">Tilbage til MENU</a></center>
<?php
function setLoc($loc) {
$ii=0;
do {
$locale_result = setlocale(LC_TIME, $loc);
} while ($locale_result != $loc && $ii++ < 10);
}
?>
</body>
</html>
Jeg håber på der er en der kan se hvad der er galt. Jeg skulle have den udviddet til at gemme en fil mere der hedder det samme, men i en anden mappe. Det er billeder lavet i Photoshop web galleri, så derfor hedder billederne det samme, men ligger i to forskellige mapper. Kan det overhovedet lade sig gøre ?
Ole.
