[PHP, MySQL] Problem z wysyłaniem pliku

0

Siemka, bawię się ostatnio z PHP i napisałem skrypt:

<?

require_once("sql.php");

connection();


?>
<div align=Center>
<form enctype="multipart/form-data" action="upload.php" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="50000" /> 
<table border="1" cellspacing="0" cellpadding="10">


Plik: <input name="plik" type="file" /><br>
Nazwa: <input type=text name=nazwa size=80 /><br />

	<select name=kategoria>
		<option value=0>Wybierz</option>
		<option value=mp3>Muzyka</option>
		<option value=img>Prace graficzne</option>
		<option value=tekst>Pliki tekstowe</option>
		<option value=php>Skrypty PHP</option>
		<option value=inne>Inne</option>

	</select>



<tr><td align="center" colspan="2"><input type="submit" class=btn value="Wrzuć!" /></td></tr>
</table>
</form>

<?php
$plik_tmp = $_FILES['plik']['tmp_name'];
$plik_nazwa = $_FILES['plik']['name'];
$plik_rozmiar = $_FILES['plik']['size'];

if(is_uploaded_file($plik_tmp)) {
     move_uploaded_file($plik_tmp, "upload/$plik_nazwa");
    echo "Plik: <strong>$plik_nazwa</strong> o rozmiarze 
    <strong>$plik_rozmiar bajtów</strong> został przesłany na serwer!";
}


$nazwa = $_POST['nazwa'];
$kategoria = $_POST['kategoria'];
$plik_tmp = $_POST['plik'];


   if($plik_tmp && $nazwa and $kategoria) {

    $connection = @mysql_connect('localhost', 'tuno12_s', '*****');
    $db = @mysql_select_db('tuno12_s', $connection);
    
    // dodajemy rekord do bazy
    $ins = @mysql_query("INSERT INTO pliki SET plik='$plik_tmp', nazwa='$nazwa', kategoria='$kategoria'");
    
    if($ins) echo "Rekord został dodany poprawnie";
    else echo "Błąd nie udało się dodać nowego rekordu";
    
    mysql_close($connection);
}

?> 


I coś mi nie działa. Ważne, by wgrał plik na serwer i zapytanie:

nazwa i kategoria to wiadomo, lecz plik nie działa, chcę by ta wartość w bazie była linkiem do pliku.
2. Jak zrobić usuwanie tego pliku?
3. Jak zrobić wyświetlanie z podziałem na kategorie, np. kliknę na obrazek i pokażą mi się pliki z danej kat.?

0

coś Ci nie działa ;] ale powiedz w czym tkwi problem? jaki bład się wyrzuca? co sie dzieje

  1. to zbadaj sobie funkcję unlink();

3 ?

0

yy, nic się nie dzieje..
2. możesz jaśniej?
3. yy mam np. [browar] - klikne na to i pokaże mi np. pliki z kat mp3.

0

Skoro MySQL nie działa, to zrób sobie funkcję do przechwytywania błędów SQL'a.

function catchSQL() {
echo('<br /><b>MySQL Error:</b> ' . mysql_error());
}

Potem to:

@mysql_query("INSERT INTO pliki SET plik='$plik_tmp', nazwa='$nazwa', kategoria='$kategoria'");

Zmieniasz na to:

@mysql_query("INSERT INTO pliki SET plik='$plik_tmp', nazwa='$nazwa', kategoria='$kategoria'") or die catchSQL();

Wtedy zobaczysz co jest nie tak w twoich zapytaniach.

0

ps.

mysql_query("INSERT INTO pliki SET plik='$plik_tmp', nazwa='$nazwa', kategoria='$kategoria'") or die (catchSQL());

Może tak? Dalej nic nie działa... zero, ani nie pisze, że Plik został wysłany, ani ze nie wrzucony, ani rekordy...

0

Error reporting włączony w ogóle?

0

inne błędy się wcześniej pokazywały, może dodam, że jak nie będzie wysyłać linku pliku do bazy jest wszystko ok....

1 użytkowników online, w tym zalogowanych: 0, gości: 1