Autor Zpráva
optimusxx123
Profil
Dobry den,
potreboval by som na svoju stranku vlozit formularove okno. viem pouzivat formularove okna na odosielanie emailov atd ale ja by som potreboval formular s jednym oknom, kde by navstevnik napr mal zadat svoj vek alebo nieco, bez svojho emailu bez nicoho, len anonymne jednu polozku a tato polozka by sa po odoslani ulozila niekde do databazy alebo sa poslala na moj email alebo nieco.. vie mi niekto pomoct? vopred dakujem za kazrdu radu :)
DarkMeni
Profil
Umíš pracovat s databází (třeba MySQL)? Další možnost je že by si to ukládal do souboru
Má to být něco jako odesílání komentářů nebo tak něco?
optimusxx123
Profil
ne ne s databazami to neviem, ale tiez ma napadlo ze by sa to mohlo ukladat do suboru... hej hej aj tak sa to da vziat, ze uzivatel by napisal anonymne svoj nazor na nieco odoslal by, a mne by sa do suboru ale niekam ulozila tato sprava...
Coompiik
Profil
optimusxx123:
Ukladani do souboru je pres file_put_content, sám sem to nedávno dělal, chceš to jakože se ti zpráva bude ukládat do tabulky(Otevřeš v prohlížeči) nebo pod sebe(v prohlížeči nebo v souboru). Kouknu se ti na obojí a ještě dneska ti to napíšu, už budu muset jít a tejden tu nebudu.


Vzkaz.php
<meta charset="UTF-8">
<form method="post">
Napište nám<br>
<textarea name="zprava" rows="5" cols="30" placeholder="Sem napište svůj vzkaz"></textarea><br><input type="submit" value="Odeslat vzkaz!"></form>
<?php
if($_POST['zprava'] != ''){
 $zprava = "\n" . $_POST['zprava'] . "\n";
 $ulozit = fopen("zpravy.txt", "a");
 fwrite($ulozit, $zprava);
 fclose($ulozit);
 echo "Váš vzkaz byl odeslán!";
}
?>
Všechno to nech v jednou souboru, vzkaz se bude ukládat do zpravy.txt, kdys nebudou existovat, vyrobej se, mezi kazdym vzkazem se vynechava radek. Pridava to do souboru, v prohlizeci by se ti ukazali vsechny zpravy bez radku namackli na sebe, na tabulce uz pracuju.


Pokdu chceš aby se ti to v prohlížeči ukazovalo stejně jako v souboru nahraď $zprava = "\n" . $_POST['zprava'] . "\n"; za $zprava = "<br>" . $_POST['zprava'] . "<br>";. TAbulka bude fungovat na podobnym principu.


------Do tabulky-----
Napiš do Vzkaz.php
<meta charset="UTF-8">
<form method="post">
Napište nám<br>
<textarea name="zprava" rows="5" cols="30" placeholder="Sem napište svůj vzkaz"></textarea><br><input type="submit" value="Odeslat vzkaz!"></form>
<?php
if($_POST['zprava'] != ''){
 $zprava = "<tr><td>" . $_POST['zprava'] . "</td></tr>\n";
 $ulozit = fopen("vzkazy.html", "a");
 fwrite($ulozit, $zprava);
 fclose($ulozit);
 echo "Váš vzkaz byl odeslán!";
}
?>
Napiš do vzkazy.html:
<head>
<meta charset="UTF-8">
<title>Tabulka|Vzkazy</title>
</head>
<body>
<table border="1px">
<tr><td style="background-color: yellow;">Vzkaz</td></tr>


Do tabulky si muzes podivat tady:
c.jecool.net/codes/tabulkavzkaz.php
vzkazy sou pak tady:
c.jecool.net/codes/vzkazy.html


Píše se to od nejstaršího, neumim to otočit.
DarkMeni
Profil
Coompiik:
Nebylo by špatný nejdřív zkontrolovat isset($_POST["zprava"]) a až potom $_POST["zprava"] != "", a pak ukázat buď formulář nebo zprávu že komentář byl úspěšně odeslán

Chtělo by to ten vstup ošetřit aspoň přes htmlSpecialChars(), aby si tam návštěvníci nemohli dávat třeba javascriptový kódy a dělat podobnej bordel
Možná by to taky chtělo nějakou ochranu před spamem

To ukládání do tabulky, jak si udělal, udělá nedokončenej html kód, prohlížeče si s tim už dneska sice poradí, ale neni to hezký

optimusxx123:
Tak to se můžeš podívat na ten kód od Coompiika a upravit si některý bezpečnostní věci (přidat htmlspecialchars(), ochranu před spamem, kontrolu jestli uživatel odesílá platnou zprávu (jestli není prázdná) a ták...)

Pro přidávání na začátek souboru - aby se to četlo od nejnovějšího - asi budeš muset otevřít soubor přes fopen v "r+" módu a před fwrite přidat rewind()
$soubor = fopen("soubor.txt", "r+");
rewind($soubor); //Nastaví kurzor na začátek souboru
fwrite($soubor, $komentar);
fclose($soubor);
Coompiik
Profil
DarkMeni dk za opravu.
optimusxx123
Profil
Coompik jo diky moc rpesne toto som potreboval. len mozem sa este spytat? keby som chcel zmenit tlacitko za svoje urobim to tak ze namiesto submitu dam nazov suboru so svojim tlacitkom? a este jedna vec ze ked chcem tento formular presuvat napr pomocou paddingu, kde mam vkladat tento prikaz? alebo keby som chcel aby po zadani udajov a potvrdeni stisknutim tlacitka bol uzivatel presmerovany niekam inde, ako vlozim prelinkovaci prikaz?
DarkMeni
Profil
optimusxx123:
keby som chcel zmenit tlacitko za svoje
To můžeš myslim že nastylovat v css, ale nevim přesně, jak to myslíš

chcem tento formular presuvat napr pomocou paddingu, kde mam vkladat tento prikaz
buď do stylů nebo css souboru

stisknutim tlacitka bol uzivatel presmerovany niekam inde, ako vlozim prelinkovaci prikaz
JakPsátWeb - Přesměrování stránky
buď meta tagem refresh nebo přes php funkci header a odesláním přesměrovávací http hlavičky
<meta http-equiv="refresh" content="2;url=http://jina_adresa.cz/cokoliv">
<!-- ta dvojka je počet vteřin, než se stránka přesměruje -->
nebo přes php
header("Location: http://jina_adresa.cz/cokoliv");

Kombinovat html s php mi přijde takový složitější, když sem s php začínal, tak mi přišlo přehlednější čistý php (na začátku jedna otevírací značka <?php a na konci zavírací ?> a pak už jen php kód) s vypisováním html přes echo, ale tak někomu se to zase může zdát přehlednější takto
Coompiik
Profil
Jo dark meni, if($_POST['zprava'] != '') konttoluje jestli zprava neni prazdna


A vyborne si [#8] popsal, i ja bych to pochopil
DarkMeni
Profil
Coompiik:
A vyborne si [#8] popsal, i ja bych to pochopil
Dík :-D

if($_POST['zprava'] != '') konttoluje jestli zprava neni prazdna
To jo, ale nekontroluje jestli ta proměnná (v tomto případě $_POST s indxem 'zprava') už existuje, to řeší ten isset, nebo kdyžtak empty() snad řeší oboje

Kdyby neexistovala a ty bys to zkoušel porovnat, tak to v případě zapnutýho vypisování chyb vypíše varování, že proměnná neexistuje, i když si uživatel jen načte formulář a de ho teprve vyplňovat
Kubo2
Profil
DarkMeni:
Nevypíše varovanie, iba notice (poznámku) - úroveň E_NOTICE.
optimusxx123
Profil
diky moc za rady chalani :)
chcel by som sa ale ešte spýtať jednu vec, ak mam takýto zdroják na formulár

<form method="post" enctype="multipart/form-data" action="https://www.xxxx.com">
        <table cellspacing="0px" cellpadding="3" border="0px" style="margin:auto">
        
    
   <tr>
        <td style="text-align:right">Váš kód</td>
        <td><input type="password" name="password" style="padding:5px 5px;width:150px" class="uniform"></td>
    </tr>
            <tr>
        <td></td>
        <td align="left">
            <input type="submit" value="Odoslať" style="font-size:15px;" class="skinButton medium skinButton-style1">
                    </td>
    </tr>
    </table>
    </form>
dalo by sa s nim nejak sklbit spomínaný pírkaz z php?

Moderátor jenikkozak: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ).
jenikkozak
Profil
Nejspíš ano, ale lepší bude, když napíšeš, čeho vlastně chceš dosáhnout.

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: