Autor | Zpráva | ||
---|---|---|---|
Káčer Profil |
Potřebuji pomoci s formulářem a jehoho posíláním na email. Nevím si s tím již rady, tak hledám někoho, kdo by mě pomohl. Zdrojový html kód pošlu. Pomůže mě někdo udělat php zdrojový kód aby mě to odcházelo na firemní email. Na webhostingu je php podporováno.
Děkuji ! Moderátor Davex: Titulek „Potřebuji pomoci“ nevystihuje podstatu dotazu. Příště zkus prosím vymyslet lepší.
|
||
Davex Profil |
#2 · Zasláno: 31. 7. 2011, 19:58:09
Káčer:
Pokud hledáš někoho šikovného, kdo to za tebe udělá, tak na sebe doplň kontakt a téma přesunu do kategorie Práce a zakázky. Pokud si nevíš rady s nějakou dílčí částí, tak sem vlož podstatnou část kódu, která se ti nedaří zprovoznit a někdo ti poradí jak to opravit. |
||
Káčer Profil |
Nevím zda to mám dobře napsané. Jak to vložím na stránky, vyplním a odešlu, tak mě to napíše, že formulář na těchto stránkách není k dispozici a odeslání selhalo. Proto přidávám začátek kódu a kontakt na mě je napakorto@seznam.cz
Kód: <?php $to="zadost@pujcky-lf.cz"; $extra = "From: $email\r\nReply-To: $email\r\n"; $subject = "Zadost od ".$mail_odesilatele.""; $mess = "Jméno: ".$jmeno."\nEmail: ".$email."\n Web: ".$web."\nText:\n".$text.""; mail ($mailodes, $jmeno, $prijmeni, $datum, $rodne, $trbyd, $korad, $tel, $mprijem, $zam, $prijemd, $vyse, $delka, $spl, $nzni, $nekdz, $exe, $podm, $vypln,); ?> <html> <head> <meta http-equiv="content-type" content="text/html; charset=windows-1250"> <title>Půjčky LF - formulář žádosti s odesláním</title> <style> body{color:rgb(0,0,51); font-size:18px; background-color:rgb(0,221,255);} #fiel{border:dashed black 4px;} </style> </head> <body> <div align="center"><h1><u>Žádost o půjčku</u></h1> </div> <br> <br> <form action="fzadost" method="post" enctype="text/plain"> <fieldset id="fiel"> <legend><big><b>Žádost o půjčku</b></big></legend><br><br> Váš email:<input type="text" name="mailodes" size="30" value="@"><br> Jméno: <input type="text" name="jmeno" size="20"><br> |
||
Tori Profil |
#4 · Zasláno: 1. 8. 2011, 12:14:19 · Upravil/a: Tori
Dáváte funkci mail() strašně moc parametrů - celé tělo e-mailu dejte jen do jedné proměnné (vizte např. PHP FAQ).
edit: A jestli to je všechno v jednom skriptu (formulář i odesílání), mělo by to vypadat spíš takhle: <?php if ($_POST) { // byl odeslaný formulář? $to = "zadost@pujcky-lf.cz"; $email = $_POST['mailodes']; $extra = "From: $email\r\nReply-To: $email\r\n"; $subject = "Zadost od $email"; $mess = "Jméno: ".$_POST['jmeno']."\nEmail: ".$email."\n Web: ".$_POST['web']; // .... doplňte si další pole mail ($to, $subject, $mess, $extra); } ?> <html> ... <form>... |
||
Časová prodleva: 5 dní
|
|||
Káčer Profil |
#5 · Zasláno: 6. 8. 2011, 23:27:07
Udělal jsem to jak je to výše napsáno a vyhodí mě to při odeslání toto:
The requested URL /fzadost was not found on this server. Co dělám špatně? Co s tím? Poradí někdo prosím? |
||
radas Profil * |
#6 · Zasláno: 7. 8. 2011, 00:00:51
protože tady action="fzadost" ma byt nazev skriptu kam se maji data poslat..
čili action="soubor.php" |
||
Káčer Profil |
Změnil jsem action jak jste mě napsal, ale je to pořád to samé. Posílám také část upraveného kódu. Nemám ten formulář vložit jako odkaz přez stránky (ftp). Když dám do stránek odkaz na fzadost.html tak se zobrazí ale nejdou odeslat. A když dám fzadost.php tak se nezobrazí vůbec a napíše to, že vůbec neexistují.
Prosím poraďte. Kód: <?php if ($_POST) { // byl odeslaný formulář? $to = "zadost@pujcky-lf.cz"; $email = $_POST['mailodes']; $extra = "From: $email\r\nReply-To: $email\r\n"; $subject = "Zadost od $email"; $mess = "Jméno: ".$_POST['jmeno']."\nEmail: ".$email."\n Web: ".$_POST['web']; "Příjmení ".$_POST['prijmeni']."\nEmail: ".$email"\n Web: ".$_POST['web']; "Datum narození ".$_POST['datum]."\nEmail: ".$email"\n Web ".$_POST['web']; "Rodné číslo ".$_POST['rodne']."\nEmail: ".$email"\n Web ".$_POST['web']; "Trvalé bydliště ".$_POST['trbyd']."\nEmail: ".$email"\n Web "$_POST['web']; "Korenspondenční adresa ".$_POST['korad']."\nEmail: ".$email"\n Web "$_POST['web']; //.....dál to pokračuje ještě 14 položkami mail ($to, $subject, $mess, $extra); } ?> <html> <head> <meta http-equiv="content-type" content="text/html; charset=windows-1250"> <title>Půjčky LF - formulář žádosti s odesláním</title> <style> body{color:rgb(0,0,51); font-size:18px; background-color:rgb(0,221,255);} #fiel{border:dashed black 4px;} </style> </head> <body> <div align="center"><h1><u>Žádost o půjčku</u></h1> </div> <br> <br> <form action="soubor.php" method="Post" enctype="text/plain"> <fieldset id="fiel"> <legend><big><b>Žádost o půjčku</b></big></legend><br><br> Váš email:<input type="text" name="mailodes" size="30" value="@"><br><br> Jméno: <input type="text" name="jmeno" size="20"><br><br> Příjmení: <input type="text" name="prijmeni" size="25"><br><br> Datum narození: <input type="text" name="datum" size="9"> (den. měsíc. rok) <br><br> Rodné číslo: <input type="text" name="rodne" size="11" value="/"> (ve tvaru xxxxxx/xxxx) <br><br> Trvalé bydliště: <input type="text" name="trbyd" size="50"> (ulice, čp., PSČ, město)<br><br> Korenspondenční adresa: <input type="text" name="korad" size="50"> (ulice, čp., PSČ, město) <br><br> Moderátor Davex: Vkládej prosím kódy mezi značky [>pre] a [>/pre] (stačí kliknout na ).
|
||
Davex Profil |
#8 · Zasláno: 7. 8. 2011, 11:07:25 · Upravil/a: Davex
Kód, který si sem vložil je PHP skript, a aby se spustil, tak musí být uložen v souboru s libovolným názvem a příponou .php. Může se jmenovat třeba zadost.php. Toto jméno by pak mělo být v hodnotě atributu
action="zadost.php" formuláře. Také může být hodnota prázdná, ale tím se pro začátek netrap. Když pak v prohlížeči otevřeš URL h>ttp://w>ww.tvuj-web.cz/zadost.php, tak by se měl formulář správně odeslat.
... ale ve skriptu máš syntaktické chyby, takže to fungovat nebude. Řádky číslo sedm až dvanáct nemají končit středníkem, ale tečkou, nebo radějí nekončit středníkem a následující řádky začínat tečkou. ... a předpokládám, že e-mailovou adresu a URL webu budeš chtít jen jednou. $mess = "Jméno: ".$_POST['jmeno'] . "Příjmení ".$_POST['prijmeni']."\nEmail: ".$email."\n Web: ".$_POST['web'] . "Datum narození ".$_POST['datum'] . "Rodné číslo ".$_POST['rodne'] . "Trvalé bydliště ".$_POST['trbyd'] . "Korenspondenční adresa ".$_POST['korad'] //.....dál to pokračuje ještě 14 položkami . "\n";// poslední řádek bude končit středníkem |
||
Časová prodleva: 3 dny
|
|||
Káčer Profil |
Formulář se mě již zobrazuje, ale ikdyž ho vyplním a kliknu na ODESLAT tak se mě zobrazí formulář znova - prázdný, ale na email, který tam mám uvedený mě nic nedoletí. Proč??
Podí mě někdo? Přikládám začátek kódu: <?php if ($_POST) { // byl odeslaný formulář? $to = "zadost@pujcky-lf.cz"; $email = $_POST['mailodes']; $extra = "From: $email\r\nReply-To: $email\r\n"; $subject = "Zadost od $email"; $mess = "Jméno: ".$_POST['jmeno'] . "Příjmení ".$_POST['prijmeni']."\nEmail: ".$email."\n Web: ".$_POST['web'] . "Datum narození ".$_POST['datum'] . "Rodné číslo ".$_POST['rodne'] . "Trvalé bydliště ".$_POST['trbyd'] . "Korenspondenční adresa ".$_POST['korad'] . "Telefon ".$_POST['tel'] . "Čistý měsíční příjem ".$_POST['mprijem'] . "Zaměstnání ".$_POST['zam'] . "Měsíční příjem domácnosti ".$_POST['prijemd'] . "Výše půjčky ".$_POST['vyse'] . "Délka splácení ".$_POST['delka'] . "Číslo účtu ".$_POST['ucet'] . "Kód banky ".$_POST['kod'] . "Poštou ".$_POST['post'] . "Máte v tuto chvíli půjčku u fi LF? ".$_POST['nzni'] . "Měl jste někdy půjčku u fi LF? ".$_POST['nekdz'] . "Máte jinde půjčku či exekuci? ".$_POST['exe'] . "Souhlasím s všeob. podmínkami ".$_POST['podm'] . "Datum vyplnění ".$_POST['vypln']; mail ($to, $subject, $mess, $extra); } ?> <html> Moderátor Alphard: Vkládej prosím kódy mezi značky [>pre] a [>/pre] (stačí kliknout na ).
|
||
Adrifinel Profil * |
#10 · Zasláno: 10. 8. 2011, 12:00:31
Nechci nic říkat, ale já bych osobně formulář, kde musím zadávat rodné číslo nevyplnila ani omylem.
|
||
Joker Profil |
#11 · Zasláno: 10. 8. 2011, 17:12:30
Káčer:
„V čem může být chyba?“ Je to rozbitý. Dostane se to k tomu kódu? Vleze to do té větve? Neskončí to nějakou chybou? |
||
Káčer Profil |
#12 · Zasláno: 10. 8. 2011, 17:30:11
ikdyž ho vypíši a dám odeslat tak se mě zobrazí znova ten formulář ale prázdný a email nic nepřijde
|
||
o_O Profil |
#13 · Zasláno: 10. 8. 2011, 17:51:34
Káčer:
Zkoušíte to na hostingu, nebo na svém PC? |
||
Káčer Profil |
#14 · Zasláno: 10. 8. 2011, 17:54:49
Mám to na webu. Na webhostingu je to povolený a když sem se ptal na tento problém tak mě bylo řečeno že je to vše nastaveno a povoleno.
|
||
o_O Profil |
#15 · Zasláno: 10. 8. 2011, 18:03:32 · Upravil/a: o_O
Káčer:
E-mail se neodešle, nebo nedorazí? To je velmi důležitá otázka. Přepište řádek 27 na: if(!mail ($to, $subject, $mess, $extra)) die("Nelze odeslat e-mail"); |
||
Káčer Profil |
#16 · Zasláno: 10. 8. 2011, 18:10:45
Je to to samé nic to nepíše. Mám zaslat kompletně celý kód?
|
||
o_O Profil |
#17 · Zasláno: 10. 8. 2011, 18:15:41 · Upravil/a: o_O
Káčer:
„Je to to samé nic to nepíše“ To znamená 2 možnosti: 1) Script je ukončen dříve a k odeslání e-mailu nedojde 2) E-mail je odeslán ale není doručen adresátovi. Pro vyloučení první možnosti lze jednoduše přepsat podmínku (zrušit vykřičník, přepsat hlášku), u druhé možnosti to například může blokovat antispam, aj. |
||
Joker Profil |
#18 · Zasláno: 10. 8. 2011, 18:16:28
Káčer:
„Mám zaslat kompletně celý kód?“ Ne. Ale identifikovat místo, kde vzniká problém. |
||
Káčer Profil |
#19 · Zasláno: 10. 8. 2011, 18:20:41 · Upravil/a: Káčer
Část scriptu is HTML scriptem zasílám. Kde může být chyba netuším. Vypíšu a nedojde. Co změnit nevím.
<?php if ($_POST) { $to = "zadost@pujcky-lf.cz"; $email = $_POST['mailodes']; $extra = "From: $email\r\nReply-To: $email\r\n"; $subject = "Zadost od $email"; $mess = "Jméno: ".$_POST['jmeno'] . "Příjmení ".$_POST['prijmeni']."\nEmail: ".$email."\n Web: ".$_POST['web'] . "Datum narození ".$_POST['datum'] . "Rodné číslo ".$_POST['rodne'] . "Trvalé bydliště ".$_POST['trbyd'] . "Korenspondenční adresa ".$_POST['korad'] . "Telefon ".$_POST['tel'] . "Čistý měsíční příjem ".$_POST['mprijem'] . "Zaměstnání ".$_POST['zam'] . "Měsíční příjem domácnosti ".$_POST['prijemd'] . "Výše půjčky ".$_POST['vyse'] . "Délka splácení ".$_POST['delka'] . "Číslo účtu ".$_POST['ucet'] . "Kód banky ".$_POST['kod'] . "Poštou ".$_POST['post'] . "Máte v tuto chvíli půjčku u fi LF? ".$_POST['nzni'] . "Měl jste někdy půjčku u fi LF? ".$_POST['nekdz'] . "Máte jinde půjčku či exekuci? ".$_POST['exe'] . "Souhlasím s všeob. podmínkami ".$_POST['podm'] . "Datum vyplnění ".$_POST['vypln']; mail ($to, $subject, $mess, $extra); die("Nelze odeslat e-mail"); } ?> <html> <head> <meta http-equiv="content-type" content="text/html; charset=windows-1250"> <title>Půjčky LF - formulář žádosti s odesláním</title> <style> body{color:rgb(0,0,51); font-size:18px; background-color:rgb(0,221,255);} #fiel{border:dashed black 4px;} </style> </head> <body> <div align="center"><h1><u>Žádost o půjčku</u></h1> </div> <br> <br> <form action="zadost.php" method="Post" enctype="text/plain"> |
||
o_O Profil |
#20 · Zasláno: 10. 8. 2011, 18:25:07
Káčer:
> mail ($to, $subject, $mess, $extra); > die("Nelze odeslat e-mail"); Vypíše se ta hláška, nebo ne? |
||
Káčer Profil |
#21 · Zasláno: 10. 8. 2011, 18:30:06
Hláška se nevypíše.
|
||
o_O Profil |
#22 · Zasláno: 10. 8. 2011, 18:41:27 · Upravil/a: o_O
Káčer:
Z <form> zrušte enctype a přepište mail() na: if(!mail ($to, $subject, $mess, $extra)) die("Nelze odeslat e-mail"); die("E-mail byl odeslán"); |
||
Káčer Profil |
#23 · Zasláno: 10. 8. 2011, 19:04:17
teď mě to napsalo Nelze odeslat e-mail
|
||
o_O Profil |
#24 · Zasláno: 10. 8. 2011, 19:14:30
Zkuste
<?php if ($_POST) { $to = "zadost@pujcky-lf.cz"; $email = $_POST['mailodes']; $extra = "From: $email\r\nReply-To: $email\r\n"; $subject = "Zadost od $email"; $mess = "Jméno: ".$_POST['jmeno'] . "\nPříjmení ".$_POST['prijmeni']."\nEmail: ".$email."\n Web: ".$_POST['web'] . "\nDatum narození ".$_POST['datum'] . "\nRodné číslo ".$_POST['rodne'] . "\nTrvalé bydliště ".$_POST['trbyd'] . "\nKorenspondenční adresa ".$_POST['korad'] . "\nTelefon ".$_POST['tel'] . "\nČistý měsíční příjem ".$_POST['mprijem'] . "\nZaměstnání ".$_POST['zam'] . "\nMěsíční příjem domácnosti ".$_POST['prijemd'] . "\nVýše půjčky ".$_POST['vyse'] . "\nDélka splácení ".$_POST['delka'] . "\nČíslo účtu ".$_POST['ucet'] . "\nKód banky ".$_POST['kod'] . "\nPoštou ".$_POST['post'] . "\nMáte v tuto chvíli půjčku u fi LF? ".$_POST['nzni'] . "\nMěl jste někdy půjčku u fi LF? ".$_POST['nekdz'] . "\nMáte jinde půjčku či exekuci? ".$_POST['exe'] . "\nSouhlasím s všeob. podmínkami ".$_POST['podm'] . "\nDatum vyplnění ".$_POST['vypln']; if(!mail ($to, $subject, $mess, $extra)) die("Nelze odeslat e-mail"); die("E-mail byl odeslán"); } ?> |
||
Káčer Profil |
#25 · Zasláno: 10. 8. 2011, 19:22:32
Teď to napsalo že email byl odeslán ale zatím na email nic nedošlo. Nevíš jaký scriptem nebo podle čeho by se dalo zabezpečit aby mě neposlali prázdný nebo poloprázdný tento formulář
|
||
Káčer Profil |
#26 · Zasláno: 10. 8. 2011, 19:25:25
mohlo by to být pomocí tohoto?
Část zasílám. <script> function form(){ if(document.form.form2.value=="") window.alert("nevyplnil(a) jste jméno!"); else if(document.form.form3.value=="") window.alert("nevyplnil(a) jste přijmení!"); else if(document.form.form4.value=="") window.alert("nevyplnil(a) jste datum narození!"); else if(document.form.form5.value=="") window.alert("nevyplnil(a) jste rodné číslo!"); else if(document.form.form6.value=="") |
||
o_O Profil |
#27 · Zasláno: 10. 8. 2011, 19:38:18 · Upravil/a: o_O
Káčer:
„mohlo by to být pomocí tohoto?“ Ne, toto se ověřuje na straně návštěvníka (při vypnutém javasciptu se ani nezobrazí), tudíž to nijak nepomůže. Použil bych spojení funkcí trim() a empty(), pro tak velký formulář bych asi všechny údaje projel, ručně by to bylo příliš zdlouhavé. :-) Nějak takto: function jePrazdny($name){ $_POST[$name]=trim($_POST[$name]); // Zbavíme se zbytečných mezer na začátku, konci atd. if(!empty($_POST[$name])) // Je vyplněn? return true; // Ano return false; // Ne } if($_POST){ foreach($_POST AS $key=>$value) // Projedeme všechny odeslané hodnoty - v $key je name prvku formuláře a v $value je jeho hodnota if(!jePrazdny($key)) exit(header("Location: zadost.php")); // Není vyplněn, přesměrujeme zpátky ... // zbytek scriptu |
||
Káčer Profil |
A šlo by podle toho scriptu co jsem zaslal, aby to lidem co ho vyplňují řeklo když něco nevyplní aby to doplnili a když to nedoplní aby to nešlo odeslat? Podle mého by to tím mojim scriptem šlo. Co ty na to?
Zatím mě ten formulář co jsem odeslal nepřišel na email. Dá se to nějak zjistit jak to s ním vypadá? Promiň již jsem to našel ve spemech. Jak to udělat aby to tam nechodilo? Ale mám u něho ještě velký problém. Špatně jsou vypsané otázky (formuláře) a odpovědi - některé nejdou přečíst vůbec. Hlavně kde jsou čárky či háčky tak to tam chybí úplně. Prosím o radu co s tím? Moderátor Davex: Sloučeny příspěvky do jednoho. Registrovaní členové mohou příspěvky upravovat, tak toho prosím příště využij, ať zbytečně nenatahuješ téma.
|
||
radas Profil * |
Moderátor Davex: Přesunuto z duplicity.
Myslim, že tohle Vám bude stačit http://diskuse.jakpsatweb.cz/?action=vthread&forum=9&topic=2111#3 |
||
Káčer Profil |
Moderátor Davex: Přesunuto z duplicity.
Nevím zda to mám správně ale zatím to nefunguje. Zasílám úpravu. <?php function autoUTF($s) { if (preg_match('#[\x80-\x{1FF}\x{2000}-\x{3FFF}]#u', $s)) // detect UTF-8 { return $s; } elseif (preg_match('#[\x7F-\x9F\xBC]#', $s)) // detect WINDOWS-1250 { return iconv('WINDOWS-1250', 'UTF-8', $s); } else // assume ISO-8859-2 { return iconv('ISO-8859-2', 'UTF-8', $s); } } function cs_mail($to, $subject, $mess, $extra = "") { $subject = "=?utf-8?B?".base64_encode(autoUTF($predmet))."?="; $extra .= "MIME-Version: 1.0\r\n"; $extra .= "Content-Type: text/plain; charset=\"utf-8\"\r\n"; $extra .= "Content-Transfer-Encoding: base64\r\n"; $mess = base64_encode(autoUTF($zprava)); return mail($to, $subject, $mess, $extra); } if ($_POST) { $to = "zadost@pujcky-lf.cz"; $email = $_POST['mailodes']; $extra = "From: $email\r\nReply-To: $email\r\n"; $subject = "Zadost od $email"; $mess = "Jméno: ".$_POST['jmeno'] . "\nPříjmení ".$_POST['prijmeni']."\nEmail: ".$email."\n Web: ".$_POST['web'] . "\nDatum narození ".$_POST['datum'] . "\nRodné číslo ".$_POST['rodne'] . "\nTrvalé bydliště ".$_POST['trbyd'] . "\nKorenspondenční adresa ".$_POST['korad'] . "\nTelefon ".$_POST['tel'] . "\nČistý měsíční příjem ".$_POST['mprijem'] . "\nZaměstnání ".$_POST['zam'] . "\nMěsíční příjem domácnosti ".$_POST['prijemd'] . "\nVýše půjčky ".$_POST['vyse'] . "\nDélka splácení ".$_POST['delka'] . "\nČíslo účtu ".$_POST['ucet'] . "\nKód banky ".$_POST['kod'] . "\nPoštou ".$_POST['post'] . "\nMáte v tuto chvíli půjčku u fi LF? ".$_POST['nzni'] . "\nMěl jste někdy půjčku u fi LF? ".$_POST['nekdz'] . "\nMáte jinde půjčku či exekuci? ".$_POST['exe'] . "\nSouhlasím s všeob. podmínkami ".$_POST['podm'] . "\nDatum vyplnění ".$_POST['vypln']; if(!mail ($to, $subject, $mess, $extra)) die("Nelze odeslat e-mail"); die("E-mail byl odeslán"); } ?> <html> <head> <meta http-equiv="content-type" content="text/html; charset=windows-1250"> <title>Půjčky LF - formulář žádosti s odesláním</title> <style> body{color:rgb(0,0,51); font-size:18px; background-color:rgb(0,221,255);} #fiel{border:dashed black 4px;} </style> </head> <body> <div align="center"><h1><u>Žádost o půjčku</u></h1> </div> <br> <br> <form action="zadost.php" method="Post"> |
||
Téma pokračuje na další straně.
|
0