Autor | Zpráva | ||
---|---|---|---|
Walwiadera Profil |
#1 · Zasláno: 23. 6. 2012, 00:50:51
Index.php: <table style="height:100%;" width="100%" cellSpacing="0" cellPadding="0" border="0"> <tr><td align="center" valign="top"> <form action="odeslat.php" method="post"> <table width="250" border="0" class="text"> <tr><td width="50"><b>Příjemce</b></td><td><input value="mladezprotidrogam@gmail.com"name="prijemce" size="40" type="text"/></td></tr> <tr><td width="50"><b>Váš e-mail:</b></td><td><input name="email" size="40" type="text"/></td></tr> <tr><td width="50"><b>Jméno a Příjmení:</b></td><td><input name="predmet" size="40" type="text"/></td></tr> <tr><td width="50"><b>Ulice a číslo:</b></td><td><input name="uliceacislo" size="40" type="text"/></td></tr> <tr><td width="50"><b>PSČ:</b></td><td><input name="psc" size="40" type="text"/></td></tr> <tr><td width="50"><b>Město:</b></td><td><input name="mesto" size="40" type="text"/></td></tr> <tr><td width="50"><b>Vypočítej:</b></td><td><input name="spam" size="3" type="text"/><strong>= 1 + 1</strong></td></tr> <tr><td width="50" valign="top"><b>Poznámka:</b></td><td><textarea name="zprava" rows="3" cols="30"></textarea></td></tr> <tr><td colspan="2" align="center"><input type="submit" class="button" value="Odeslat e-mail"/></td></tr> </table> </form> </td></tr> </table> odeslat.php <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1250"> <meta http-equiv="Refresh" content="4;url=index.php"> <title>Doručování e-mailu ...</title> </head> <body> <? $prijemce = $_POST['prijemce']; $predmet = $_POST['predmet']; $email = $_POST['email']; $spam = $_POST['spam']; $uliceacislo = $_POST['uliceacislo']; $psc = $_POST['psc']; $mesto = $_POST['mesto']; $zprava = $_POST['zprava']; if ($prijemce!="" and $predmet!="" and $email!="" and $uliceacislo!="" and $psc!="" and $mesto!="" and $zprava!="" and $spam=="2") { Mail($prijemce, $predmet , $uliceacislo , $psc , $mesto , $zprava, "From: " . $email); echo "<p>Vas e-mail byl uspesne odeslan na adresu <strong>$prijemce</strong>."; } else { echo "<p>Vas e-mail se <strong>nepodarilo odeslat</strong> pravdepodobne jste nevyplnili vsechny udaje, nebo nevite kolik je 1 a 1.</p>"; } ?> </body> </html> V čem je problém, když po vyplnění všech tabulek mi vyjede toto : Warning: mail() expects at most 5 parameters, 7 given in /data/web/virtuals/22354/virtual/www/Mladez_proti_drogam/O_nas_files/odeslat.php on line 20 Vas e-mail byl uspesne odeslan na adresu mladezprotidrogam@gmail.com. Co s tím mám dělat, poraďte mi prosím, nebo upravte script. Děkuji za pomoc. |
||
Alphard Profil |
#2 · Zasláno: 23. 6. 2012, 00:55:57
Po přečtení chybové hlášky byste zjistil, že funkce mail() očekává maximálně 5 parametrů, dal jste jí 7.
Jak vás vůbec napadlo prostě tam naskládat parametry? :-) Viz mail(). Nejčastější potíže s PHP (FAQ) » Odeslání více položek |
||
Walwiadera Profil |
#3 · Zasláno: 23. 6. 2012, 01:01:37
Takže jakou alternativu mi doporučujete?
|
||
Hando Profil |
#4 · Zasláno: 23. 6. 2012, 02:33:36
Alternativu k čemu?
Vždyť v tom FAQ je to napsané celkem jasně - zpracovat data z formuláře tak, aby odpovídala požadavkům té funkce, tedy vše krom příjemce (ten je volitelný, že je taky součástí formuláře?), předmětu a možná mailu odesilatele (nevím, jestli má cenu mu tvořit zvlášť hlavičku) spojit do jedné proměnné, vhodně předat funkci mail() a pak to vše odeslat. |
||
Walwiadera Profil |
#5 · Zasláno: 23. 6. 2012, 11:22:14 · Upravil/a: Moderátor (editace znemožněna) 23. 6. 2012, 15:52:16
Takže by měl skrip vypadat takto ?:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1250"> <meta http-equiv="Refresh" content="4;url=index.php"> <title>Doručování e-mailu ...</title> </head> <body> <? $prijemce = $_POST['prijemce']; $predmet = $_POST['predmet']; $email = $_POST['email']; $spam = $_POST['spam']; $zprava = $_POST['uliceacislo']; $zprava = $_POST['psc']; $zprava = $_POST['mesto']; $zprava = $_POST['zprava']; if ($prijemce!="" and $predmet!="" and $email!="" and $zprava!="" and $spam=="2") { Mail($prijemce, $predmet , $zprava, "From: " . $email); echo "<p>Vas e-mail byl uspesne odeslan na adresu <strong>$prijemce</strong>."; } else { echo "<p>Vas e-mail se <strong>nepodarilo odeslat</strong> pravdepodobne jste nevyplnili vsechny udaje, nebo nevite kolik je 1 a 1.</p>"; } ?> </body> </html> Při zadání tohoto skriptu mi na email odešle pouze předmět, email odesílatele a pouze poslední zprávu. Moderátor Majkl578: Vkládej prosím kódy mezi značky [>pre] a [>/pre] (stačí kliknout na ).
|
||
Tori Profil |
Walwiadera:
Ty tečky před rovnítkem (ve FAQ) nejsou překlepy, ale spojování řetězců. $zprava = $_POST['uliceacislo'].PHP_EOL; // tady definujete proměnnou $zprava .= $_POST['psc'].PHP_EOL; // v dalších řádcích k ní připojujete další text + zalomení řádku $zprava .= $_POST['mesto'].PHP_EOL; $zprava .= $_POST['zprava'].PHP_EOL; |
||
Časová prodleva: 12 let
|
0