Autor | Zpráva | ||
---|---|---|---|
zdestr Profil |
#1 · Zasláno: 6. 2. 2013, 13:24:17
ahoj,
pro účely maleho bazárku potřebuji vytvořit stránku s jednoduchým formulářem, který návštěvník stránky vyplní, připojí soubor (obrázek) a odešle. Jeho nabídka ze zařadí k ostaním tak, aby všichni tyto nabídky viděli. Na webu jsem našel tento kód v PHP: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <meta name="generator" content="PSPad editor, www.pspad.com"> <title>Komentáře</title> </head> <body> <?php $delimeter=" ∎ "; // delimeter můžeš ponechat $cesta_souboru="koment.txt"; // cesta k souboru TXT, do kterého se budou daný komentáře ukládat $umisteni_scriptu=""; //umístění tohoto souboru if(!file_exists($cesta_souboru)){ // pokud neexistuje soubor do kterého se má zapisovat, tak ho vytvoří file_put_contents($cesta_souboru,""); } if(isset($_POST['komentar'])){ //pokud kliknou na odeslat tak se to začne zpracovávat if(!in_array("",array($_POST['jmeno'],$_POST['email'],$_POST['text']))){ //zkontroluje, zda vyplnili všechny položky $soubor=file_get_contents($cesta_souboru); // načtu si soubor s předchozíma komentářema $zapis=$soubor." ⦿ ".$_POST['jmeno'].$delimeter.$_POST['email'].$delimeter.$_POST['text']; //přidám starý text + si dám delimetr mezi jednotlivé nové stringy file_put_contents($cesta_souboru, $zapis); //přepíšu soubor } else { echo "<b>Nemáte zadané všechny hodnoty.</b><br>"; // pokud nejsou zadané všechny hodnoty, vypíše to tuto hlášku } } $komentare=file_get_contents($cesta_souboru); // načtení souboru do proměnné $rozdeleni_radky=explode(" ⦿ ",$komentare); // rozdělení dle řádků => na jednotlivé příspěvky if(count($rozdeleni_radky)!=0){ // pokud je v něm víc jak jeden komentář for($i=0;$i<count($rozdeleni_radky);$i++){ // cyklus, pro všechny komentáře if($rozdeleni_radky[$i]!=""){ $roztrzeni=explode($delimeter,$rozdeleni_radky[$i]); // roztržení dle delimetru $koment=array("jmeno" => $roztrzeni[0] , "email" => $roztrzeni[1], "text" => $roztrzeni[2]); // pro hezčí vypisování přidáno do array echo "<b>Jmeno:</b> ".$koment['jmeno']."<br>"; // jednoduché vypsání echo "<b>Email:</b> ".$koment['email']."<br>"; echo "<b>Text:</b> ".$koment['text']."<br>"; echo "<hr><br>"; } } } else { echo "Nebyl zatím zadán žádný komentář<br>"; // vypsání hlášky, že zatím nebyl zadán žádný komentář } ?> <form method="POST"> Jmeno:<input type="text" name="jmeno"><br> Email:<input type="email" name="email"><br> Text:<textarea name="text"></textarea><br> <input type="submit" value="Odeslat" name="komentar"> </form> </body> </html> který funguje takto: http://zdestr.cz/pokus/index1.php Takto by mi to i stačilo, ale potřebuji ještě přidat tlačíto na přiložení souboru (obrázku) a tento se uložil v nějakém adresáři a zobrazil u příslušného příspěvku. Popřípadě by ještě nebylo špatné tlačítko "Odpovědět", pomocí kterého by zájemce odeslal e-mail na adresu zadanou v příslušném příspěvku. Programovat ani PHP neumím, tudíž nevím jak na to a zda to vůbec jde. Poradí mi, prosím, někdo s řešením a dopíše příslušnou část kódu? děkuji |
||
scheras Profil * |
#2 · Zasláno: 6. 2. 2013, 13:59:59
1. Přidání tlačítka na upload souboru
<form method="POST" enctype="multipart/form-data"> Jmeno:<input type="text" name="jmeno"><br> Email:<input type="email" name="email"><br> Obrazek:<input type="file" name="soubor" accept="image/*"> Text:<textarea name="text"></textarea><br> <input type="submit" value="Odeslat" name="komentar"> </form> Například Zde 3.Zobrazení obrázku Podobně jako ve vašem kódu echo "<img src='"$cestakobrazku"' alt='foto'>; 4.V uvedeném příkladu není ani za mák řešená bezpečnost! |
||
zdestr Profil |
#3 · Zasláno: 6. 2. 2013, 19:38:19
scheras:
děkuji moc za radu, zkusím se s tím nějak poprat :-) .... co se týka bodu č. 4: jakousi obecnou představu o bezpečnosti mám, ale v tomto případě opravdu vůbec netuším, co může být ohroženo, s jakými následky by se to projevilo, co to může způsobit ...... a hlavně nevím, jak to případně vyřešit a zabezpečit .... jak jsem již poznamenal, nejsem programátor a této oblasti nerozumím :-( ... no uvídíme, snad tím nerozpoutám 3. světovou válku :-D ještě jednou díky |
||
scheras Profil * |
#4 · Zasláno: 6. 2. 2013, 21:06:48
zdestr:
v tomto případě může dojít k tzv. XSS (viz stránka s příkladem) nebo například k nahrání vlastního php scriptu do vašeho souboru. Je tedy potřeba ošetřit vkládané znaky. |
||
zdestr Profil |
#5 · Zasláno: 6. 2. 2013, 21:30:15
scheras:
díky, pídil jsem se, co pro to mohu udělat ... a už jsem tuto stránku taky objevil, již jsem ošetření do pokusné stránky zakomponoval .... zdá se, že to funguje :-) |
||
Časová prodleva: 11 let
|
0