upload obrazkov

Programovacie jazyky, rady, poradňa...
aughostino
Medium Professional
Medium Professional
Používateľov profilový obrázok
Príspevky: 1269
Registrovaný: 26 apr 2007, 16:05

upload obrazkov

Príspevok od používateľa aughostino »

pani, potreboval by som poradit :)

ucim sa php a vymyslel som si jeden taky mensi projekt. jedna sa o upload obrazkov a textu do tabulky.

neviem ci je take nieco prakticky mozne, tak sa obraciam na vas s prosbou o pomoc

mam takuto osnovu:

Kód: Vybrať všetko

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <title></title>
  </head>
  <body>
   <fieldset>
   <form name="work" action="upload.php">
   <textarea rows="1" cols="20">
  EN
 </textarea>
 <textarea rows="1" cols="20">
  SK
 </textarea>
 <input type="file">
   <textarea rows="1" cols="20">
  123
 </textarea><br />   <br />
 <button type="submit">Odošli</button>
</form>
<br />
<table border="2" cellpadding="4" cellspacing="4">
<tr><th>EN</th><th>SK</th><th>Pic</th><th>123</th></tr>
<tr><td>Dog</td><td>Pes</td><td><img src="image/dog.jpg" width="50"></td><td>123</td></tr>
<tr><td>Cat</td><td>Mačka</td><td><img src="image/cat.png" width="50"></td><td>195</td></tr>
</table>
  </body>
</html>
a takto to vyzera:
s.jpg
da sa take nieco vytvorit aj bez databazy? ide mi o to, aby som vsetky tie polia z formulara po stlaceni tlacitka odoslat dostal do tej tabulky, tabulka sa moze menit

pomohol by mi s tym prosim niekto? nie je to v ramci skoly, prace ani nic podobne, je to iba moj vlastny zaujem :)
weroro
Flash coder
Flash coder
Používateľov profilový obrázok
Príspevky: 3206
Registrovaný: 14 feb 2009, 22:34
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: upload obrazkov

Príspevok od používateľa weroro »

Tie dáta v tabuľke majú byť prístupné iba v daný okamih alebo aj inokedy?
aughostino
Medium Professional
Medium Professional
Používateľov profilový obrázok
Príspevky: 1269
Registrovaný: 26 apr 2007, 16:05

Re: upload obrazkov

Príspevok od používateľa aughostino »

mali by byt pristupne stale, ked sa otvori tabulka.php

:)
weroro
Flash coder
Flash coder
Používateľov profilový obrázok
Príspevky: 3206
Registrovaný: 14 feb 2009, 22:34
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: upload obrazkov

Príspevok od používateľa weroro »

A čo ak tam príde viac ľudí a budú si vytvárať vlastné tabuľky? :)
aughostino
Medium Professional
Medium Professional
Používateľov profilový obrázok
Príspevky: 1269
Registrovaný: 26 apr 2007, 16:05

Re: upload obrazkov

Príspevok od používateľa aughostino »

Tabulku by som vytvaral iba ja :)
weroro
Flash coder
Flash coder
Používateľov profilový obrázok
Príspevky: 3206
Registrovaný: 14 feb 2009, 22:34
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: upload obrazkov

Príspevok od používateľa weroro »

Tak potom zápis do súboru. V tej tabuľke nie je zas až také veľké množstvo údajov aby to prílišne spomaľovalo čítanie zo súboru.
Vymysli si štruktúru dokumentu a zapisuj to napr vo formáte MIME (to je takto

Kód: Vybrať všetko

hodnota1&hodnota2&hodnota3 
atď.) potom si v php ten súbor natiahni pomocou file_get_contents() a vyparsuj.
aughostino
Medium Professional
Medium Professional
Používateľov profilový obrázok
Príspevky: 1269
Registrovaný: 26 apr 2007, 16:05

Re: upload obrazkov

Príspevok od používateľa aughostino »

mam zatial toto

Kód: Vybrať všetko

<?php

$hodnota1 = $_GET["hodnota1"];
$hodnota2 = $_GET["hodnota2"];
$picture = $_GET["picture"];
$hodnota3 = $_GET["hodnota3"];


$filename = fopen('db.txt', 'w');
fwrite($filename, "$hodnota1 $hodnota2 $picture $hodnota3;\n; ");
fclose($filename);


echo "<br />";
echo "<table border='2' cellpadding='4' cellspacing='4'>";
echo "<tr><th>EN</th><th>SK</th><th>Pic</th><th>123</th></tr>";
echo "<tr><td>'$hodnota1'</td><td>'$hodnota2'</td><td><img src='$picture;' width='50'></td><td>$hodnota3;</td></tr>";
echo "<tr><td>Cat</td><td>Mačka</td><td><img src='image/cat.png' width='50'></td><td>195</td></tr>";
echo "</table>";
?>
je to pouzitelne? :oops:

//autoeditácia príspevku (08 Aug 2012, 23:30)
ako by sa dalo zabezpecit, aby sa kazdy udaj zapisoval do txt suboru v novom riadku,

teraz sa mi to zapisuje do jedneho, aj to sa po refreshnuti stranky udaje z txt suboru vymazu
forfun
Light Expert
Light Expert
Príspevky: 77
Registrovaný: 03 jan 2010, 17:26

Re: upload obrazkov

Príspevok od používateľa forfun »

Velmi zjednodusene:

Kód: Vybrať všetko

<?php
if(isset($_POST['send']))
{
	$ext = pathinfo($_FILES['picture']['name']);
	$file_name = time('now').'.'.$ext['extension'];
	move_uploaded_file($_FILES['picture']['tmp_name'], 'images/'.$file_name);
	$file = fopen('db.txt', 'a');
	fwrite($file, "".$_POST['en'].";".$_POST['sk'].";".$file_name.";".$_POST['123']."\n");
	fclose($file);
	header('Location ./');
}
?>
<form action="<?=$_SERVER['PHP_SELF']?>" method="post" enctype="multipart/form-data">
	<input type="text" name="en" /><br/>
	<input type="text" name="sk" /><br/>
	<input type="file" name="picture" /><br/>
	<input type="text" name="123" /><br/>
	<input type="submit" name="send" value="Odosli"/>
</form><br/>
<table border="1">
	<tr>
		<td><strong>en</strong></td>
		<td><strong>sk</strong></td>
		<td><strong>picture</strong></td>
		<td><strong>123</strong></td>
	</tr>
<?php
	$file = fopen('db.txt', 'r');
	while(($line = fgets($file)) !== false)
	{
		$ex = explode(';', $line);
		echo "<tr>";
		echo "<td>".$ex[0]."</td><td>".$ex[1]."</td><td><img src=\"images/".$ex[2]."\" /></td><td>".$ex[3]."</td>";
		echo "</tr>";
	}
?>
</table>
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: upload obrazkov

Príspevok od používateľa audiotrack »

V celej téme nebola ani zmienka o jeho systéme, či beží na apache pod linuxom alebo na IIS pod windowsom. Tak podľa čoho si usúdil, že nový riadok má byť \n a nie \r\n ? ;)
Radšej sa naučte používať konštantu PHP_EOL ako všade trepať \n keď ani neviete čo to znamená
aughostino
Medium Professional
Medium Professional
Používateľov profilový obrázok
Príspevky: 1269
Registrovaný: 26 apr 2007, 16:05

Re: upload obrazkov

Príspevok od používateľa aughostino »

dakujem vam, funguje to :)

len teraz sa vyskytol dalsi problem, vzdy po refreshnuti stranky sa automaticky prida posledny riadok, da sa to osetrit? :)

este rozmyslam nad funkciou cutline, ale viem vymazat len posledny riadok a prvy riadok, ako by mal vyzerat script na vymazanie "aktualneho" riadku
forfun
Light Expert
Light Expert
Príspevky: 77
Registrovaný: 03 jan 2010, 17:26

Re: upload obrazkov

Príspevok od používateľa forfun »

skus tak ze spracovanie formulara bude vo zvlast subore z ktoreho spravis naspat redirect na povodnu stranku
aughostino
Medium Professional
Medium Professional
Používateľov profilový obrázok
Príspevky: 1269
Registrovaný: 26 apr 2007, 16:05

Re: upload obrazkov

Príspevok od používateľa aughostino »

este raz vam dakujem :) vyzera to nasledovne:

index.php

Kód: Vybrať všetko

<form action="upload.php" method="post" enctype="multipart/form-data">
   <input type="text" name="en" />
   <input type="text" name="sk" />
   <input type="file" name="picture" />
   <input type="text" name="123" />
   <input type="submit" name="send" value="Odosli" />
</form><br />
<table border="1">
   <tr style="text-align: center; margin: 0 auto;">
      <td><strong>en</strong></td>
      <td><strong>sk</strong></td>
      <td><strong>picture</strong></td>
      <td><strong>123</strong></td>
   </tr>
<?php
   $file = fopen('db.txt', 'r');
   while(($line = fgets($file)) !== false)
   {
      $ex = explode(';', $line);
      echo "<tr>";
      echo "<td width='170px'><center>".$ex[0]."</center></td><td width='170px'><center>".$ex[1]."</center></td><td><a href=\"stroj/".$ex[2]."\"><img src=\"stroj/".$ex[2]."\" width='170'/></a></td><td width='170px'><center>".$ex[3]."</center></td><td width='170px'><center><img src='img/delete.gif' alt='Vymazať kód'></center></td>";
      echo "</tr>";
   }
?>
</table>
upload.php

Kód: Vybrať všetko

<?php
if(isset($_POST['send']))
{
   $ext = pathinfo($_FILES['picture']['name']);
   $file_name = time('now').'.'.$ext['extension'];
   move_uploaded_file($_FILES['picture']['tmp_name'], 'stroj/'.$file_name);
   $file = fopen('db.txt', 'a');
   fwrite($file, "".$_POST['en'].";".$_POST['sk'].";".$file_name.";".$_POST['123']."\r\n");
   fclose($file);
   header('Location ./');
}

/* Redirect to a different page in the current directory that was requested */
$host  = $_SERVER['HTTP_HOST'];
$uri   = rtrim(dirname($_SERVER['PHP_SELF']), '/\\');
$extra = 'index.php';
header("Location: http://$host$uri/$extra");
exit;
?>
dalo by sa sfunkcnit to tlacitko na vymazanie aktualneho riadku? bohuzial viem iba odstranit riadok, ktoreho cislo poznam, spekuloval som tak, ze by som riadky ocisloval a do toho scriptu pridal tie cisla riadkov... slo by to?
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: upload obrazkov

Príspevok od používateľa audiotrack »

preboha, sprav to cez databázu a nie cez textový súbor. Takto budeš na každú drobnosť musieť robiť desiatky riadkov a zanášať si tam iba nové komplikácie
Viper
Medium Expert
Medium Expert
Používateľov profilový obrázok
Príspevky: 137
Registrovaný: 14 mar 2012, 13:19

Re: upload obrazkov

Príspevok od používateľa Viper »

audiotrack ty vieš vždy potešiť teraz bude 2 týždne zisťovať ako to má urobiť ale inač sa celkom s tebou v tomto stotožňujem.
Ale ak nevie pracovať s DB, chce to rýchlo mať a nebude tam mať 5000 tabuliek tak mu na začiatok stačí aj textový súbor a potom to môže ošetriť
metthal
Guru wannabe
Guru wannabe
Používateľov profilový obrázok
Príspevky: 2475
Registrovaný: 26 jan 2006, 18:32
Bydlisko: Nitra / Brno

Re: upload obrazkov

Príspevok od používateľa metthal »

2 tyzdne? Ked to zada do googlu tak mu vyhodi aj hotove riesenia, ako vytvorit pripojenie s MySQL databazou. Nechapem tiez preco by sa mal niekto ucit robit veci nespravne. To je hadam samozrejmost ze taketo veci sa ukladaju do DB a nie do textoveho suboru.

// nie som JS koder, robim C++, ASM popripade .NET
Viper
Medium Expert
Medium Expert
Používateľov profilový obrázok
Príspevky: 137
Registrovaný: 14 mar 2012, 13:19

Re: upload obrazkov

Príspevok od používateľa Viper »

Vieš nie všetci lúdia len kopčia z netu niektorý by to radi aj vedeli z hlavy napísať funkčný script :wink:
// nie si ty náhodou JS coder ???
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: upload obrazkov

Príspevok od používateľa audiotrack »

ale prosím ťa, tých 5 kľúčových slov sa chceš učiť 2 týždne? To je záležitosť na pol hodinu zvládnuť to na takej úrovni, aby vedel vkladať, hľadať a vypisovať, mazať a aj viac
Viper
Medium Expert
Medium Expert
Používateľov profilový obrázok
Príspevky: 137
Registrovaný: 14 mar 2012, 13:19

Re: upload obrazkov

Príspevok od používateľa Viper »

No veď hej ale myslel som to tak že by sa najskôr mal naučiť SQL a potom by mohol urobiť všetko podľa jeho predstáv bez googlenia blbostí
Napísať odpoveď