webForumDet fria alternativet

Problem med med ett uploadscript

1 svar · 386 visningar · startad av Mycodez

MycodezMedlem sedan feb. 2010445 inlägg
#1

Hej WF.

jag håller på med att göra så kan kan ladda upp bilder till olika album. men jag har stöt på lite problem. Jag får att mitt albumid blir 0 när jag laddar upp bilderna.
min tabell jag vill spara länken till bilderna ser ut så här:
id , userid , albumid , type , name , descrition och location

sidan jag vill att man ska kunna ladda upp bilderna på är inne i albumet.

koden till det ser ut:

<?php
include('design/header.php');
require('connect.php');

$albumid = $_GET['album'];
$id = $_SESSION['id'];

//Display album name
$album = mysql_query("SELECT name FROM albums WHERE id='$albumid'");
$albumarray = mysql_fetch_assoc($album);
echo "<font size='4' face='arial'>".$albumarray['name']."</font><p>";

$image = mysql_query("SELECT * FROM items WHERE userid='$id' AND albumid='$albumid'");

if(mysql_num_rows($image)<=0)
	echo "This album have no pictures.";

echo"<table width='100%' cellpadding='7'>";
while($row = mysql_fetch_assoc($image))
{
echo "
<tr>
<td width='200'>
	<img src='store/".$row['location']."' width='200' height='120'>
</td>
<td>
<font size='2' face='arial'>
	<b><a href='".$row['location']."' target='_blank'>".$row['name']."</a></b><br>
	".$row['description']."
	</font
</td>
</tr>
";

}
echo "</table>";

if($_POST['submit'])
{
	//get file attributes
	$name = $_FILES['myfile']['name'];
	$tmp_name = $_FILES['myfile']['tmp_name'];
	
	if($name)
	{
		//start upload process
		$location = "store/$name";
		move_uploaded_file($tmp_name,$location);
		
		$query = mysql_query("INSERT INTO items VALUES('','$id','$albumid','i','','','$location')");
		echo "Your image has been uploaded!";
	}
	else
	die("Please select a file!");
	
}

echo "Upload your images to album:;

<form action='viewalbum.php' method='POST' enctype='multipart/form-data'>
File:<input type='file' name='myfile'>

<br>
<input type='submit' name='submit' value='Upload!'>
</form>
";

include('design/footer.php');
?>

och det hade vart snällt om ni vill hjälpa mig att sätta ditt så man kan skriva in ett namn/rubrik till bilden och att ska kuna skriva in en förklaring till bilden hade vart jätte snällt.

Kommentera gärna koden för lär mig bättre då har inte hållt på med php så länge.

Tack på för hand

Robin :stud

Renegade8164Medlem sedan sep. 201057 inlägg
#2

Ta ett steg i taget...
Om man ska göra ett uppladdningsskript eller använda GET-variablen måste man tänka på säkerheten, din kod lämnar sidan uppe för SQL-injektioner.

Sedan ser jag inte session_start(); någonstans till användning av $_SESSION['id'], ligger den i connect.php ?

För att få ett albumid med din kod måste du skicka den till sidan via URLn varje gång (ex; mittskript.php?albumid=123, så den skickas till $_GET variabeln), eftersom att du skickar inte album id med ditt formulär för bilduppladningen ($_POST) så kommer inget albumid finnas. När du klickar på submit så laddas 'viewalbum.php' om utan GET-variabler.

För att lösa detta om ja skulle ha din kod skulle jag skapa ett dolt input fält(type="hidden") med $albumid som värde som skickas sen med $_POST (eller ett tomt fält där användaren får skiva in id), sen när du klickar på submit laddas sidan om, så får du albumid i variablen $_POST['albumid']

P.S du behöver inte ha php-sluttag längst ner på en fil ifall filen innehåller/slutar med php-kod. Det krävs inte av PHP, och utelämna det förhindrar oavsiktlig injektion av avslutande tomrum(mellanslag) i svaret."

Genererad på 369 ms · cache AV · v20260730165559-full.f96bc7eb