webForumDet fria alternativet

Lista fil, länka till filen i databasen

PHP

27 svar · 788 visningar · startad av Tulork · sida 2 av 2

Frågan, av Tulork

nu är det jag som skriver igen :) har fått ordning på upload utav filer till databasen samt till specifik användare, nu ska jag lista filen/filerna beroende på vilken användare som är inloggad, så här långt har jag kommit <?php obstart(); sessionstart(); // Kolla om inloggad = sessionen satt if (!isset($SESSION['sessuser'])){ header("Location: index.php"); exit; } if (isset($GET[

Läs frågan i sin helhet →
Medlem sedan aug. 2004903 inlägg
#21

kanske missförstånd med filerna? jag ska alltså låta användarna ladda hem filerna, till sin dator...pdf document, word dokument, powerpoint, zip osv.. inte bilder.

Medlem sedan juni 20006 031 inlägg
#22

Ah, det är jag som fattar fel, är nog för att jag är trött och håller på med annat samtidigt.

Är det inte enklare att ladda upp filerna till en mapp och bara spara filnamnet i databasen? Sen skriva ut en länk som dom får klicka på för att läsa/ladda ner filen.

Medlem sedan aug. 2004903 inlägg
#23

jo, men då måste jag ändra om hela upload samt download skriptet..vet faktiskt inte hur man gör för att ladda upp till en mapp :S kanske inte är så svårt..

Medlem sedan aug. 2004903 inlägg
#24
<?php
ob_start();
session_start();
// Kolla om inloggad = sessionen satt
if (!isset($_SESSION['sess_userlevel']) || $_SESSION['sess_userlevel'] != "admin") {
//  header("Location: index.php");
  header("refresh: 5;url=konto.php");
// eller
  echo "Du har inte behörighet till den här sidan";
  exit;
}
?>
<?php
include "conn.php"; // Databasanslutningen

// Performing SQL query sh
$ID_ADD = $_GET['var'];

if (isset ($_GET['var'])){
$query = "SELECT * FROM $mem_table WHERE id =".$_GET['var']." ";
$result = mysql_query($query) or die('Query failed: ' . mysql_error());

// Printing results in HTML
echo "<p>Du redigerar användaren:<p>";
//echo "$_SESSION['sess_userlevel'];";
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
   echo "\t<tr>\n";
   foreach ($line as $col_value) {
       echo "\t\t<td>$col_value</td>\n";
   }
   echo "\t</tr>\n";
//echo "test $sess_userlevel";
}
echo "</table>\n";

// Free resultset
//mysql_free_result($result);
} 

echo "<br>$ID_ADD";

if (isset($_FILES['uplfile'])) {
	// Mappen där filerna ska hamna
	$upload_dir = 'download/';
	// De tillåtna filtyperna, separerade med komman, utan mellanrum
	$filetypes = 'jpg,gif,png,doc,zip,ppt,txt,pdf';
	// Den största tillåtna storleken (80 kB)
	$maxsize = (1024*20000000);

	// Kontrollera att det angavs en fil
	if(empty($_FILES['uplfile']['name']))
		die('Ingen fil har valts');

	// Kontrollera storleken
	if($_FILES['uplfile']['size'] > $maxsize)
		die('Filen du valde är för stor. Maxstorleken är '.(string)($maxsize/1024).' KB.');

	// Kontrollera filtypen
	$types = explode(',', $filetypes);
	$file = explode('.', $_FILES['uplfile']['name']);
	$extension = $file[sizeof($file)-1];
	if(!in_array(strtolower($extension), $types))
		die('Du har en felaktig filtyp. Endast .jpg, .gif och .png är tillåtet!');

	// Generera unikt filnamn
	$bokstav = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6');
	$thefile = $_FILES['uplfile']['name'];
	while (file_exists($upload_dir.$thefile)) { $img = $bokstav[rand(0, count($bokstav)-1)].$thefile; }

	// Flytta filen rätt
	if (is_uploaded_file($_FILES['uplfile']['tmp_name']) && move_uploaded_file($_FILES['uplfile']['tmp_name'],$upload_dir.$thefile)) {
		echo 'Filen laddades upp!';

	//Min införning i databasen
	$query = "INSERT INTO UserFiles (filename, RefID) "."VALUES ('$thefile', '$ID_ADD')";
	mysql_query($query) or die ('gick inte att införa i databasen');

	} else {
		echo 'Ett fel uppstod och filen kunde inte laddas upp.';

		/*
		Uppladdningen misslyckades.
		*/
	}
}
else
{

  ?>
	<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">
	Fil:&nbsp;<input type="file" name="uplfile"><br>
	<input type="submit" value="Ladda upp filen">
	</form>
  <?php

}

?>
</body>
</html>

<?php
echo "<br><a href=\"index.php?logout=\">Logga ut</a>\n<br><br>";
?>
<a href="admin.php">Tillbaka </a><br><br>

okej, så här ser den nya upload koden ut..nu laddar den till en mapp, lite mer säkerhet osv...den inför också in i databasen filens filnamn..men när jag ska ha in $ID_ADD vilket är ID numret på den användaren jag vill ska ha tillgång till denna fil (i download saken sen)..men den vill inte mata in innehållet i $ID_ADD..har kollat lite och vad jag kan se så innehåller $ID_ADD alltid det id nummer jag valde på sidan innan..

Medlem sedan aug. 2004903 inlägg
#25

alltså jag blir knäpp, varför vill den inte föra in $_GET['var'] ??? statiska värden funkar ju... det funkar längre upp i koden..???

Medlem sedan aug. 2004903 inlägg
#26

ingen som vet då alltså? :S

Medlem sedan juni 20006 031 inlägg
#27

När du laddar upp filen så använder formuläret post och då skickar du ju inte med $ID_ADD.
Lägg in ett hidden-fält i formuläret med värdet på $ID_ADD så du får med det till andra sidan och lägg in det i databasen med $_POST['id_add']

Medlem sedan aug. 2004903 inlägg
#28

Nä inte $ID_ADD, men $ID_ADD innehåller ju $_GET['var']; som kommer från andra sidan...varför skulle jag inte kunna använda det igen? precis som jag gjorde längre upp i koden?

481 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
349 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
119 ms — ändringar (db)