Autor Zpráva
Darikousek
Profil
Ahoj,

do nadpisu se mi nevlezlo co vlastně potřebuju. Jde o nahrání souboru na server a zapsání souboru k uživateli, který je zrovna přihlášen resp. ten uživatel, kterej je přihlášen budu vkládat ten soubor a já potřebuju, aby když se mi uloží do určité složky, aby se mi z něj vypsal jen ten soubor co tam vložil ten přihlášenej uživatel. Nevím jak na to.

Poraďte mi nějakej skript.

Díky.
johnl
Profil
Budeš si zapisovat do databáze seznam souborů, např. adresu souboru a kdo jej nahrál, soubory pak nebudeš vypisovat z adresáře ale z databáze, pak můžeš vypisovat soubory jen určitého uživatele.. ;)
Lechy
Profil
jméno souboru doporučuji ukládat s koncovkou
$search_user = MySQL_Query("SELECT * FROM uzivatele WHERE id = ".$_SESSION['ucet_id']." ");
    $row = MySQL_Fetch_Array($search_user);	
.....
....
...
<img src="images/uzivatele/<?=$row['foto'];?>" width="150" height="180">
peta
Profil
FTP / SSH
Pres FTP jsi uzivatel ty a muzes nahrat soubory.
Pokud mas pristup na server, muzes kazdemu uzivateli zalozit jeho slozku a vytvorit mu FTP pristup do jeho slozky.

PHP / PHP + MySQL
Pokud pristup na server nemas, musis si vytvorit program pro obsluhu uzivatelu a souboru, napr. v PHP + MySQL, viz johnl a Lechy. Do databaze programu pak zapises vsechno, co potrebujes.
Tabulka soubory, sloupce: id, nazev, uzivatel_id, kdy nahral, kdy zmenil, popisek
Tabulka uzivatele, sloupce: id, jmeno, heslo, kdy zalozil, kdy se prihlasil, popisek
Pokud nechces pouzit Mysql, muzes pouzit diskovou verzi SQL lite.
Pokud je ti slovo SQL nesympaticke, muzes pouzit ukladani do csv souboru (cz.php.net/fputcsv). Ale musis si pohlidat zamykani souboru flock (cz.php.net/flock). csv soubor je normalni textovy soubor s oddelovaci carka a novy radek.
--- uzivatele.csv ---
id, jmeno, heslo, popisek, kdy_zalozil, kdy_se_prihlasil
0, Darikousek, md5('heslo'), zelenac, 12.2.2010, 20.6.2011
1, Lechy, md5('heslo'), zelenac, 12.2.2010, 20.6.2011

FGetCSV ti z toho udela pole
$a = array(
0 => array("id, jmeno", "heslo", "popisek", "kdy_zalozil", "kdy_se_prihlasil"),
1 => array("Darikousek", "md5('heslo')", "zelenac", "12.2.2010", "20.6.2011"),
2 => array("Lechy", "md5('heslo')", "zelenac", "12.2.2010", "20.6.2011"),
...);
$uzivatel_jmeno = $a[1][0]; //Darikousek
Darikousek
Profil
ono je to složitější... já teď mám nějakej skript, kterej mi dělá že mi vypisuje všechny ty soubory a je jedno, kdo je tam nahrál a já do toho skriptu potřebuju dopsat nějak ten insert a nevím jak :( problém je, že ten skript nemůžu publikovat tady .... kdybyste na mě měl někdo chvilku ozvěte se mi na icq...prosím...děkuju
Darikousek
Profil
Já mám v tuhle chvíli vytvořenej skript pro upload souborů do složky
<?php
readfile($_FILES["filename"]["name"]);
   if($_FILES['filename']['error']==0) 
   {$size = $_FILES['filename']['size']; 
  --------------------------------------------
$slozka = dir("../upload_projekt"); 
while($soubor=$slozka->read()) {if ($soubor=="." || $soubor=="..") continue; 
echo "<a href=\"../upload_projekt/$soubor\">".$soubor."</a><br>\n";} 
$slozka->close();


pokud byste měli nějakej lepší jsem pro :D moc php zatím nerozumím, takže věřím, že se to dá napsat snáž než to mám já nebo intelignějc, ráda si nechám poradit.

Já teď potřebuju to, co jsem uložila jako .pdf nebo .doc, aby se mi vypsalo u studenta, kterej to tam vložil. a ted nevím jak dál... mám si vytvořit tabulku, kam se bude ukládat ten soubor jako cesta, kde se najde? nějak si prostě teď nedokážu vybavit, jak by měla ta databáze vypadat. mám teď tabulku uživatele, kde jsou tyto atributy: id_uzivatele, jmeno, prijmeni, login, password, pak zda je to učitel nebo student a nevím jak to udělat, aby se to k tomu člověku, kterej je přihlášen a vložil to tam, zapsalo.

Děkuju za jakoukoliv radu všem.
Keeehi
Profil
vytvoříš si druhou tabulku se dvěma sloupci: id_cloveka, cesta_k_souboru. Co do kterého sloupce přijde je doufám jasné.

- readfile($_FILES["filename"]["name"]); - tento řádek nedělá nic
- na přemístění uploadovaného souboru je přímo funkce move_uploaded_file()
- ! Nechat uploadovat kohokoliv cokoliv je obrovská bezpečnostní díra (pokud není adresář upload_projekt neveřejný a dále omezen) - i kdyby byl, tak pozor na jména souborů jako ../zaskodnik.php
Ben
Profil *
Darikousek:
co místo strtr(); a hledání všech možností nahrazení použít třeba něco takovéhoto?

<?php

//odstraneni diakritiky(upravena funkce od php.vrana.cz)
function odstran_diakritiku($in){
  $in = preg_replace('~[^\\pL0-9_]+~u', '-', $in);
  $in = trim($in, "-");
  $in = iconv("utf-8", "us-ascii//TRANSLIT", $in);
  $in = strtolower($in);
  $out = preg_replace('~[^-a-z0-9_]+~', '', $in);
  return $out;
}
?>

u toho nastavení iconv si to možná budeš muset upravit podle verze php
Keeehi
Profil
Já se diakritikou vůbec nezabývám. Soubory ukládám pod jiným názvem (mnou vygenerovaným), k souborům přistupuji id v databázi, co mu přiřadím a při stahování souboru (ne přímo ale přes script, tunel) tak mu ten původní název přiřadím. header("Content-Disposition: Attachment; filename=$ulozeny_nazev");
peta
Profil
- tab uzivatel -
id, jmeno, prijmeni, login, password
- tab soubor -
id, typ, jmeno, popisek, velikost, datum, info, uzivatel_id, uzivatel_login ...

U vsech dulezitych udaju je dobre ke kazdemu "id" pridat i sloupec s textem k cemu se to vaze, ikdyz ten sloupec nevyuzijes. V pripade, ze prijdes o tabulku uzivatelu, budes umet fotky priradit spravnemu uzivateli.
jenikkozak
Profil
peta:
- tab soubor -
id, typ, jmeno, popisek, velikost, datum, info, uzivatel_id, uzivatel_login ...
Taby jsou v prohlížeči. Nemůžeš přestat s těmito matoucími zkratkami?
Do tabulky se soubory není nutné dávat login uživatele zároveň s jeho id, zbytek sloupců závisí na tom, zda se využijí. Vzhledem k tomu, že dosud žádná tabulka se soubory nebyla, považuji jejich existenci za zbytečnou.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0