Autor Zpráva
tomas2245
Profil
zdravím potreboval by som bez databázy, spraviť kód ktorý by robil toto:

budem mať napríklad dva inputy:

<input type="text" name="meno"> <br>
<input type="text" name="priezvisko"> <br>
<input type="submit" value="ZAPÍSAŤ">

po kliknutí na tlačítko "ZAPÍSAŤ" potrebujem aby to, čo sa napísalo do týchto dvoch inputov (meno, priezvisko) aby sa to zapísalo do obsahu stránky ako Meno: (obsah inputu) , Priezvisko (obsah inputu).

a kto príde ďalší vyplniť tie inputy tak staré údaje sa zachovajú a pod to zase. Meno: obsah, Priezvisko: obsah.

a tak ďalej...

snáď ma chápete :)
Lonanek
Profil
Můžete využít ukládání dat do souboru a jeho obsah následně vypisovat.
Např. PHP - práce se soubory nebo Ukládání dat z formuláře do souboru
tomas2245
Profil
super, funguje to.

vedeli by ste mi ešte poradiť jednu vec? chcem docieliť toto:

inputy sa dávajú do jedného riadku to je v poriadku, ale chcem aby tam boli aj nejaké medzery čize nie MenoPriezvisko ale Meno Priezvisko, atď.
a každé nové odoslanie formulára sa dá na nový riadok

kód vyzerá takto:

<?php
if (isset($_POST['meno']) && isset($_POST['priezvisko'])) {
 
    if (get_magic_quotes_gpc()) {
        $_POST['meno'] = stripslashes($_POST['meno']);
        $_POST['priezvisko'] = stripslashes($_POST['priezvisko']);
    }
 
    // tady načtete původní obsah souboru, přilepíte před něj data z formuláře a uložíte zpátky.
    $novyObsah = $_POST['meno'] . $_POST['priezvisko'] . file_get_contents('data.html');
    if (file_put_contents('data.html', $novyObsah, LOCK_EX)) {
        echo 'data byla vlozena do <a href="stranka.php">stranka.php</a>';
    } else {
        echo 'chyba pri vkladani dat';
    }
}
Lonanek
Profil
stačí si podle potřeby upravit řádek 10, např.
    $novyObsah = $_POST['meno'] . " " . $_POST['priezvisko'] . file_get_contents('data.html');
I při vkládání do souboru doporučuji ošetřit vstupy. Viz.: www.itnetwork.cz/php/manual/retezce/funkce-htmlspecialchars-cesky-php-manual popř. www.koding.cz/popis.php?db=function&id_f=9
tomas2245
Profil
super vďaka, a ešte aby pri každom odoslaní formulára sa to meno priezvisko dalo do nového riadku?
staré ostalo a nové do ďalšieho riadku čiže nie takto:
Lonanek
Profil
zaměníte mezeru (označený text) za "\n" .
Zkuste si také něco málo nastudovat sám...
tomas2245
Profil
Lonanek:

vďaka, veľmi ste mi pomohli :)
tomas2245
Profil
no nakoniec som zistil že to nefunguje tak ako som chcel... prosím vás ešte o tú jednu radu, chcem aby to robilo toto:

pri každom odoslaní formulára sa to meno priezvisko dá do nového riadku:

Meno Priezvisko Meno Priezvisko (Nesprávne)
____________
Meno Priezvisko (Správne
Meno Priezvisko
Meno Priezvisko )
Lonanek
Profil
Zkoušel jste:
    $novyObsah = $_POST['meno'] . " " . $_POST['priezvisko'] . "\n" . file_get_contents('data.html');
tomas2245
Profil
áno nefunguje, furt to píše do jedného riadku
Lonanek
Profil
Pak už jen použít odřádkování pro windows:
    $novyObsah = $_POST['meno'] . " " . $_POST['priezvisko'] . " \r\n" . file_get_contents('data.html');
tomas2245
Profil
to funguje, ale iba v tom textovom dokumente to odriadkuje.
ako to spraviť aby odriadkovalo aj na stránke?
Tomáš123
Profil
tomas2245:
Chceš sa pýtať na každú somarinu? Verím, že keď si do Googlu napíšeš „zalomenie riadku v HTML“, nájdeš niečo použiteľné...
Lonanek
Profil
To si musíte nastavit programově, nebo přidat <br /> pře odřádkování.

    $novyObsah = $_POST['meno'] . " " . $_POST['priezvisko'] . "<br />\r\n" . file_get_contents('data.html');
nebo
    $novyObsah = $_POST['meno'] . " " . $_POST['priezvisko'] . "<br />" . PHP_EOL . file_get_contents('data.html');
Záleží také na tom, jak budete ošetřovat data.
tomas2245
Profil
Lonanek:

Ďakujem! :)

Tomáš123:

nebuď taký negativný, stačilo napísať "<br />\r\n" určite by ti to zabralo menej času ako tá nezmyselná tvoja veta.
Lonanek
Profil
Tomáš123 nejde o méně času, ale o princip.
I já jsem Vás na toto odkazoval.

Trochu vlastní aktivity a přemýšlení by rozhodně neškodilo.

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