Autor Zpráva
Walwiadera
Profil
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
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
Takže jakou alternativu mi doporučujete?
Hando
Profil
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
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;

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: