php zjištění aktuální stránky
Nemůžu přijít na to jak udělat na web tlačítko (nahlásit nefunkční hru) . Prostě aby se po kliknutí na odkaz odeslal email s aktuální stránkou. Poradíte pls?
Nemůžu přijít na to jak udělat na web tlačítko (nahlásit nefunkční hru) . Prostě aby se po kliknutí na odkaz odeslal email s aktuální stránkou. Poradíte pls?
Zpět do poradny Odpovědět na původní otázku Nahoru
Tlačidlo spravíš buď použitím klasického HTML formulára, alebo použiješ odkaz, alebo spravíš nejaké JavaScriptové tlačidlo.
Formulár je lepší, pretože ho bude používať menej botov ako odkaz a je dostupný pre všetky prehliadače. Aktuálnu stránku si pošleš buď v URL alebo ak použiješ formulár, tak môžeš aj v hidden poli. Pri JavaScripte môžeš použiť napr. JSON.
Namiesto aktuálnej URL adresy stránky (ktorú v PHP zistíš z $_SERVER['REQUEST_URI']) ti stačí poslať identifikátor hry. Ak by si si posielal URL adresu, tak ti tam môže trochu skúsenejší používateľ podvrhnúť ľubovoľný odkaz.
Odoslanie mailu budeš musieť riešiť na serveri, napr. pomocou funkcie mail.
Mám dva soubory. V prvním je jenom formulář namířený na druhý php skript:
<form action="druhy.php">
Váš mail: <input name="mail_odesilatele"><br>
Předmět: <input name="predmet"><br>
Zpráva: <textarea name="zprava"></textarea><br>
<input type=submit value="Odeslat">
</form>
Soubor druhy.php vypadá takto:
<? if ( Mail("bradac.KO@seznam.cz", $predmet, $zprava, "From: " . $mail_odesilatele) )
echo "Mail byl odeslán";
else echo "Mail se nepodařilo odeslat"; ?>
Email se mi v pohodě odešle, i přijde, jak ale udělat aby mě vyplněno jako předmět adresu stránky ze které byl odeslanej?
Nechápu kam přidat toto http://webcheatsheet.com/php/get_current_page_url. php ?
Děkuji za trpělivost se mnou
Tú funkciu môžeš pridať napr. na začiatok stránky prvni.php. Do formulára pridáš input type="hidden" s name nastaveným napr. na "url", ktorého value nastavíš pomocou tej funkcie. Nezabudni použit htmlspecialchars na ošetrenie vstupu.
V druhy.php budeš mať potom nastavenú premennú $url s adresou stránky, ktorú môžeš pripojiť k predmetu. Skúsenejší používateľ tam samozrejme bude vedieť podvrhnúť ľubovoľnú URL, ale to nemusí byť problém. Ak by si to chcel ošetriť, tak môžeš aspoň overiť to, že tá URL je z tvojej domény.
Na tvojom mieste by som ešte kontroloval, či predmet a mail_odesilatele neobsahuje znak \n. Ak áno, tak by som to orezal alebo skončil s chybou.
Díky za odpověď, ale mě to pořád nefunguje . Nemůžeš prosím spojit ty kódy dohromady? Nechápu co kam mám vložit. Abych měl prvni.php a druhy.php kompletní, já tomu nerozumím, prosím , prosím
Prepáč, ale písať ti to celé zadarmo nebudem (v dobrom, samozrejme). Postup som napísal myslím vcelku pochopiteľne. Ak máš problém s niektorým krokom, tak sa môžeš spýtať. Ale na konkrétny problém, nie len, že to nefunguje.
Já nechápu toto:
"type="hidden" s name nastaveným napr. na "url", ktorého value nastavíš pomocou tej funkcie"
skouším to dneska už od rána a pořád nic, nevím kam vložit tu url.
Takže už máš URL uloženou v nějaké proměnné? Tak tu proměnnou přiřadíš skrytému prvku formuláře (inputu), tedy pomocí parametru value, jak psal los. Víc polopatě to fakt říct už nejde.
Máš tam formulár form action="druhy.php". V ňom máš 2 textové inputy a 1 submit tlačidlo. Tak tam ešte pridáš (napr. úplne hneď za otvárací form tag):
Ak si bol schopný nakódiť ten formulár, tak toto musí byť predsa pre teba hračka.
Udělal jsem to, přijde mi email, ale neni tam napsané z jaké stránky je odeslaný.
V prvom rade skontroluj v prehliadači, či máš v tom input type=hidden správnu URL adresu. Potom pokračuj ďalšími krokmi.
Já nevím jak to myslíš. Nic vzdávám to. Dík za snahu, ale já to prostě nechápu. Prdim na to , nemá to cenu.
Myslel som tým to, že si otvoríš prehliadač so stránkou prvni.php, dáš si zobraziť zdrojový kód stránky (vo väčšine prehliadačov je na to klávesová skratka Ctrl+U) a skontroluješ, či v tom input type=hidden máš očakávanú hodnotu. Ak nie, nemá ešte zmysel riešiť to, že nefunguje stránka druhy.php.
Ak tam máš očakávanú hodnotu, môžeme sa posunúť ďalej.
Jo, ve zdrojovim kódu je vypsaná celá adresa stránky, ale po poslání v mejlu neni
Dobre, takže prvú polovicu riešenia máš za sebou. Teraz daj na začiatok druhy.php:
Čo to vypíše? Pripojil si tú URL k predmetu?
Btw, vo forme v prvni.php nemáš uvedenú metódu, takže sa používa GET metóda. Lepšie by bolo použiť POST metódu (method="POST"), ale to si môžeš nechať na neskôr ako bonus.