Portál AbcLinuxu, 12. května 2025 02:23

Dotaz: Odeslání formuláře mailem

22.5.2010 11:11 Apophys
Odeslání formuláře mailem
Přečteno: 309×
Odpovědět | Admin
Příloha:
Zdravím!

Poradil by mi někdo, kde mám chybu v přiloženém kódu? Nejsem programátor a potřebuju rozchodit jenom tenhle formulář. Větší ambice nemám.Děkuju za pomoc.

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

MaFy avatar 22.5.2010 11:25 MaFy | skóre: 24 | blog: kecy | Praha
Rozbalit Rozbalit vše Re: Odeslání formuláře mailem
Odpovědět | | Sbalit | Link | Blokovat | Admin
Prosimte, nemas to v nejakem lespim formatu? CO takhle to sem hodit jako zdrojak ;-) Kazdopadne takto v kodu se hleda blbe. Spis napis, co to dela, nebo nedela :-)Nejaka chybova hlaska?

MaFy
Lidé se dělí do 10 skupin. Na ty, co rozumí binárnímu kódu a na ty ostatní...
22.5.2010 11:26 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Odeslání formuláře mailem
Odpovědět | | Sbalit | Link | Blokovat | Admin
Za prvé, je pěkné zvěrstvo sem ten kód dávat jako dokument ve Wordu, příště to prosím vložte jako normálnítextové soubory.

Za druhé, v PHP není funkce Mail(), jen funkce mail().

Za třetí, máte tam ve forulářu jakousi antispamovou kontrolu, ale není jasné, co tam má uživatel zapsat, a za druhé to pak nikde nekontrolujete.

Za čtvrté, když tam někdo vyplní cizí e-mail a do poznámky nabídku na nějakou viagru nebo bůhví co, odešle se to na ten cizí e-mail – ideální pro spamování. Proto se dělává registrace e-mailu, že nejprve musíte ověřit jeho pravost a není možné do toho ověřovacího e-mailu propašovat žádný svůj text.

Za páté, raději si na to najděte nějakého programátora, tohle není na „jenom rozchodit“.
22.5.2010 12:22 JirkaK | skóre: 15 | blog:
Rozbalit Rozbalit vše Re: Odeslání formuláře mailem
K tomu "za třetí" - je tam antispam "kontrola" ve smyslu 1+1=? a výsledek se kontroluje, asi jste to přehlédnul (nicméně o účinnosti něčeho takového, navíc staticky, by se asi dalo dost polemizovat). Jinak naprosto souhlasím, hlavně s bodem "za páté", minimálně by neuškodilo se třeba podívat na php.net na dokumentaci k funkci mail() a na diskuzi pod ní...
** Počítač bez window$, to je jako ryba bez bicyklu... ** echo 'Kdo neskáče, není Čech!'|sed s/Čech/cvičená\ opice/
22.5.2010 12:35 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Odeslání formuláře mailem
Máte pravdu, přehlédl jsem jak ty jedničky mezi   ve formuláři, tak výskyt klíče spam ve skriptu. Nicméně i tak je to pozvánka pro spammery.
26.5.2010 13:05 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Odeslání formuláře mailem
V zásadě souhlas, píšu jen protože:
Názvy funkcí a tříd nejsou „case sensitive“.
Tudíž máme sice interně fci mail(), ale Mail() i MAIL() bude totéž.
PS: Ochranu X + Y = Z v textu bych radši zaměnil za captcha.
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
22.5.2010 11:53 Apophys
Rozbalit Rozbalit vše Re: Odeslání formuláře mailem
Odpovědět | | Sbalit | Link | Blokovat | Admin
Příloha:
Když všechno vyplním, vypíše se hláška "Vaše objednávka byla úspěšně odeslána..." Ale na uvedený mail (daniel.fajmon...) nic nepřijde. Chyba bude asi v tom řetězci, kde se do zprávy mailu snažím dostat všechny proměnné:

$body = $jmeno .$ulice .$mesto .$psc .$doprava .$kusu ."\n".$tel .$text;

...

Mail("daniel.fajmon@volny.cz", $predmet,$body , "From: " . $email);
22.5.2010 12:03 JirkaK | skóre: 15 | blog:
Rozbalit Rozbalit vše Re: Odeslání formuláře mailem
Mno, to se ti klidně může vypsat, i když se nic neodešle (předpokládám, že Mail() jsi změnil na mail() ) - k tomu, aby to vypsalo hlášku o úspěšném odeslání stačí, aby byly splněny podmínky pro obsah jednotlivých proměnných, co se sypou do toho mailu. Nejsem zrovna moc PHP programátor, tak nevím, jestli tohle není blbost (jestli by se to chovalo zrovna takhle) - ale kde ten skript provozuješ? Jestli nemůže být chyba v tom, že tam zkrátka odesílání mailů není nastaveno/chybí SMTP server.
** Počítač bez window$, to je jako ryba bez bicyklu... ** echo 'Kdo neskáče, není Čech!'|sed s/Čech/cvičená\ opice/
MaFy avatar 26.5.2010 10:50 MaFy | skóre: 24 | blog: kecy | Praha
Rozbalit Rozbalit vše Re: Odeslání formuláře mailem
Presne tak... Muze byt chyba v serveru. Nenainstalovany/nenastaveny SMTP server. Je take dobre treba pomoci jednoduche podminky IF zkontrolovat, zda se funkce mail provedla...
Lidé se dělí do 10 skupin. Na ty, co rozumí binárnímu kódu a na ty ostatní...
Josef Kufner avatar 22.5.2010 13:12 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Odeslání formuláře mailem
Odpovědět | | Sbalit | Link | Blokovat | Admin
A pak si taky zapni vypisování E_NOTIFY a všech dalších, abys lépe mohl chytat bugy. (Nekoukal jsem, zda to tam už máš.)
Hello world ! Segmentation fault (core dumped)
26.5.2010 13:42 Messa | skóre: 39 | blog: Messa
Rozbalit Rozbalit vše Re: Odeslání formuláře mailem
Odpovědět | | Sbalit | Link | Blokovat | Admin
Cože, zdrojový kód v .docu? V tvém případě bude možná lepší uvést e-mailovou adresu a pokyn "prosím pošlete mi e-mail s Vaší adresou a počtem objednaných kusů."
Řešení 1× (MaFy)
27.5.2010 07:52 Apophys
Rozbalit Rozbalit vše Re: Odeslání formuláře mailem
No máte pravdu. Je lepší, když každý dělá to, co umí :-) Kámoš mi to nakonec udělal s javascriptem, takže to rovnou počítá cenu. Díky všem za rady ;-)
Marián Oravec avatar 27.5.2010 07:55 Marián Oravec | skóre: 22 | Nitra
Rozbalit Rozbalit vše Re: Odeslání formuláře mailem
Odpovědět | | Sbalit | Link | Blokovat | Admin
<form action="..//posli.php" method="post">
Prečo "..//posli.php" a nie "posli.php"?
if (mail("daniel.fajmon@volny.cz", $predmet,$body , "From: " . $email)) {
  echo "<p><strong>Vaše objednávka byla úspěšně odeslána. V nejbližší době Vás budeme kontaktovat.</strong>.</p>";
} else {
  echo "<p>E-mail sa nepodarilo odoslať.</p>";
}

Mám rád elektro, ale vypočujem si aj iné...

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.