Autor Zpráva
H.V.Pottar
Profil *
mám takový problém, nemůžu nejak dát do funkce, aby všechna polička z formuláře byla odeslána na můj email. Místo toho aby odeslalo všechna tři políčka do jednoho vzkazu (e-mailu) posíla 3 e mailyzvlašt, mlžete se nato podivat a poradit prosím?

<form action="http://www.esotuning.cz/upravyrj/posli.php" method="post">
<font color="red">*</font> Váš e-mail:<input name="email" size="25" value="">

<br>
<br>Předmět (pište bez diakritik):<input name="predmet" size="10" value="">

<br>
<br><font color="red">*</font> Vaše jméno a příjmení: <input name="jmeno" size="30" value="">

<br>
<br><font color="red">*</font> Značka vozů:<input name="znacka" size="15" value="">

<br>
<br><font color="red">*</font> rok výroby:<input name="rok" size="5" value="">

<br>
<br><font color="red">*</font> Výkon v kw:<input name="výkon" size="5" value="">

<br>
<br>Antispam: <strong>1 + 1 = </strong><input name="spam" size="5">

<br>
<br><textarea name="zprava" rows="6" cols="55">Vase zprava, piste bez diakritiky</textarea>

<br><input type="submit" value="Odeslat">

</form>



PHP:



<?
$predmet = $_POST['predmet'];
$email = $_POST['email'];
$jmeno = $_POST['jmeno'];
$znacka = $_POST['znacka'];
$rok = $_POST['rok'];
$vykon = $_POST['vykon'];
$spam = $_POST['spam'];
$zprava = $_POST['zprava'];

if ($predmet!="" and $email!="" and $jmeno!="" and $znacka!="" and $rok!="" and $vykon!="" and 

$zprava!="" and $spam=="2")
{
Mail("h.v.pottar@seznam.cz", $predmet, $jmeno, $znacka, $rok, $vykon, $zprava, "From: " . $email);
echo "<p><strong>Váš e-mail byl úspěšně odeslán, ozveme se vám co nejdříve to půjde.</strong></p>";
}
else
{
echo "<p>Váš e-mail se <strong>nepodařilo odeslat</strong> pravděpodobně jste nevyplnili všechny 

údaje, nebo nevíte kolik je 1 + 1.</p>";
} 
?>




AM_
Profil
funkce mail() má jen jeden parametr pro tělo zprávy, nemůžeš tam za sebou nasázet víc proměnných jako parametry.
sestav si jednu proměnnou (třeba
$body = "$jmeno\r\n$znacka\r\n$rok\r\n...";

a pak ji předej PHP.
H.V.Pottar
Profil *
a to body mám umistít kam? semka?


$predmet = $_POST['predmet'];
$email = $_POST['email'];
$body = "$jmeno\r\n$znacka\r\n$rok\r\n...";
$spam = $_POST['spam'];
$zprava = $_POST['zprava'];
AM_
Profil
To je jedno, kde tu proměnnou přiřazuješ... není to nic zvláštního, normální přiřazení do proměnné (samozřejmě všechny proměnné, ze kterých to sestavuješ, už v tu chvíli musí existovat)
H.V.Pottar
Profil *
to nefunguje, ale přišel jsem na něco jinýho:


<?
$predmet = $_POST['predmet'];
$email = $_POST['email'];
$znacka = $_POST['znacka'];
$spam = $_POST['spam'];
$zprava = $_POST['zprava'];

if ($predmet!="" and $email!="" and $zprava!="" and $spam=="2")
{
Mail("h.v.pottar@seznam.cz", $predmet, $zprava, $znacka, "From: " . $email);
echo "<p><strong>Váš e-mail byl úspěšně odeslán</strong>.</p>";
}
else
{
echo "<p>Váš e-mail se <strong>nepodařilo odeslat</strong> pravděpodobně jste nevyplnili všechny 

údaje, nebo nevíte kolik je 1 + 1.</p>";
} 
?>



takhlenc to funguje posíla i poličko "znacka", ale zas neukazuje email odesilatele, místo toho ukazuje email hostingu, z kterýho servru to bylo odesláno.
AM_
Profil
Doporučuji nějaký základ PHP, evidentně nemáš moc ponětí o tom, jak fungují základní konstrukce.
mail() má parametry (příjemce, předmět, tělo, hlavičky, další_parametry), nemůžeš si tam jen tak vecpat nějaký parametr navíc a myslet si, že to bude dělat to, co chceš. Takže něco jako
$zprava = "zprava: ".$_POST['zprava']."\r\nznacka: ".$_POST['znacka'];
mail($prijemce, $predmet, $zprava, "From: ".$odesilatel);

fungovat bude. Pochopitelně to tam nemůžeš vecpat takhle písmeno od písmene, uprav si to dle vlastních potřeb pro svůj kód, jen ukazuji, jak se taková věc dělá.
Mimochodem, psaní PHP mezi <? ?> je od PHP6 zavrženo a otázka času, kdy přestane být podporováno úplně, používej notaci <?php
H.V.Pottar
Profil *
no už jsem to nejak vyřešl:

<?php 
$to = $_REQUEST['sendto'] ; 
$from = $_REQUEST['Email'] ; 
$jmeno = $_REQUEST['jmeno'] ; 
$headers = "From: $from"; 
$subject = "ESO Tuning zprava"; 

$fields = array(); 
$fields{"jmeno"} = "Jméno a příjmení"; 
$fields{"Email"} = "Email"; 
$fields{"tel"} = "Telefon"; 
$fields{"znacka"} = "Značka vozů"; 
$fields{"rok"} = "Rok výroby";
$fields{"vykon"} = "Výkon motorů";  
$fields{"zprava"} = "Zpráva"; 

$body = "Z portálu ESO Tuning jste obdrzeli objednávácí zprávu:\n\n"; foreach($fields as $a => $b){ $body .= sprintf("%20s: %s\n",$b,$_REQUEST[$a]); } 



if($from == '') {print "Nezadali jste váš e-mail, vrat'te se a zkuste to prosím znova.";} 
else { 
if($jmeno == '') {print "Nezadali jste váše jméno, vrat'te se a zkuste to prosím znova.";} 
else { 
$send = mail($to, $subject, $body, $headers); 

if($send) 
{header( "Location: http://esotuning.cz/upravyrj/odeslano/"; );} 
else 
{print "chyba při odeslání, zkuste si zkontrolovat, jestli jste vše doplnil správně, nebo se obrat'te na webmastera h.v.pottar@seznam.cz"; } 
}
}
?> 



a plně to funguje =) jinak diki za pomoc

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: