Autor Zpráva
Tomaso
Profil *
Ahoj, mám tady jeden moc velký problém:

na stránce mám formulář, jeho kód je
<form action="./php/dotaznik_php.php" target="_top" method="post" enctype="multipart/form-data">
<input type="hidden" name="predmet" value="dotazník">
<input type="text" name="text" value="vaše jméno">
<input type="text" name="email" value="vaš email">
<input type="password" name="text">
<input type="radio" name="text" value="prvni">
<input type="radio" name="text" value="druha">
<textarea name="text"></textarea>
<input type="submit" value="odeslat do pryč">
</form>

a potřebuju, aby se mi tohle všechno odeslalo na email. To první má být jako předmět zprávy, to u čeho je name="text" tak má být v textu zprávy a to value="email" má být jako email odesílatele.
Můj skritp je
<? if ( Mail("karamola@seznam.cz", $predmet, $text, "From: " . $email) )
echo "Mail byl odeslán";
else echo "Mail se nepodařilo odeslat"; ?>


Jenomže ten problém v tom je ten, že mi na email vždycky příde jenom z celého toho textu jenom to co někdo zadá do
<textarea name="text">
a to ostatní to jméno, heslo, ty přepínací jedna a druhá, to zmizí někde v zapomění.

Mohli by jste mi někdo prosím poradit???
habendorf
Profil
No jistě, protože si $text neustále přepisuješ a textarea je poslední. Co tě nutí mít všude stejný name?
Tomaso
Profil *
Tak teď mám teda kód formu:
<form action="./php/dotaznik_php.php" target="_top" method="post" enctype="multipart/form-data">
<input type="hidden" name="predmet" value="dotazník">
<input type="text" name="jmeno" value="vaše jméno">
<input type="text" name="email" value="vaš email">
<input type="password" name="heslo">
<input type="radio" name="radio" value="prvni">
<input type="radio" name="radio" value="druha">
<textarea name="text"></textarea>
<input type="submit" value="odeslat do pryč">
</form>


a nevím jak udělat php skript na odesílání.
Poraďte prosím.
Davex
Profil
Viz DJPW: Nejčastější potíže s PHP (FAQ) - Problémy s e-maily - Odeslání více položek
Tomaso
Profil *
díky
HonzaKo
Profil
Davex,

Ahoj, omlouvám se, ale já tedy také moc nechápu to finální nastavení. Mám na svém webu také formulář, a myslím, že jsem udělal vše správně ale stále se mi žádná data neodesílají na mail. Poradíte mi prosím proc?? Moc prosím poradte, uz travim asi 4 hodiny na webu a stále si s tím nevím rady. Moc děkuji. Zde je kod:

<p align="center"><form action="posli.php" method="post">
<center>
<input name="akce" size="18" value="Typ poptávané akce"><br>
<input name="termin" size="18" value="Termín"><br>
<input name="ucastnici" size="18" value="Počet účastníků"><br>
<input name="ubytovani" size="18" value="Počet pokojů"><br>
<input name="rozpocet" size="18" value="Plánovaný rozpočet"><br>
<input name="jmeno" size="18" value="Jméno"><br>
<input name="firma" size="18" value="Firma"><br>
<input name="kontakt" size="18" value="Kontakt"><br>
<br>
<input type="submit" value="Odeslat">
</form></p>


a soubor posli.php:

<p align="center">
 <?
$akce = $_POST['akce'];
$termin = $_POST['termin'];
$ucastnici = $_POST['ucastnici'];
$ubytovani = $_POST['ubytovani'];
$rozpocet = $_POST['rozpocet'];
$jmeno = $_POST['jmeno'];
$firma = $_POST['firma'];
$kontakt = $_POST['kontakt'];

if ($akce!="" and $termin!="" and $ucastnici!="" and $ubytovani!="" and $rozpocet!="" and $jmeno!="" and $firma!="" and $kontakt!="")
{
Mail("zde@mujemail.cz", $akce, $termin, $ucastnici, $ubytovani, $rozpocet, $jmeno, $firma, "From: " . $kontakt);
echo "<p><strong>Vaše poptávka byla úspšně odeslána, děkujeme.</strong>.</p>";
}
else
{
echo "<p>Vaši poptávku se <strong>nepodařilo odeslat</strong>Pravděpodobně jste nevyplnili všechny údaje.</p>";
} 
?>
</p>
Alphard
Profil
Mail("zde@mujemail.cz", $akce, $termin, $ucastnici, $ubytovani, $rozpocet, $jmeno, $firma, "From: " . $kontakt);

Četl jste vůbec odkazované FAQ?
HonzaKo
Profil
Ještě doplním, že soubor posli.php mi vypíše, že poptávka byla úspěšně odeslána, takže skripty by měly být správně. Je chyba v řazení jednotlivých položek?
HonzaKo
Profil
Ano četl, moc jsem to nepochopil. Omlouvám se, ale v php nejsem ještě zběhlý
HonzaKo
Profil
Nevím, jak mám proměnné spojit do $zprava.
Alphard
Profil
Je tam ukázka
$zprava = "Jméno: {$_POST['jmeno']}\r\n";
$zprava .= "Příjmení: {$_POST['prijmeni']}\r\n";
$zprava .= "Telefon: {$_POST['telefon']}\r\n";
$zprava .= "Ulice: {$_POST['ulice']}\r\n";
$zprava .= "Žádost: {$_POST['zadost']}\r\n";
$zprava .= "Poznámka: {$_POST['poznamka']}\r\n";
HonzaKo
Profil
Alphard:
Nyní to mám takto a již se mi odešle mail, ale pouze kontakt, nikoliv telo zpravy. Co mam prosím špatně?

<?

$zprava = "Typ akce: {$_POST['akce']}\r\n";
$zprava = "Termín akce: {$_POST['termin']}\r\n";
$zprava = "Počet účastníků: {$_POST['ucastnici']}\r\n";
$zprava = "Počet pokojů: {$_POST['ubytovani']}\r\n";
$zprava = "Plánovaný rozpočet: {$_POST['rozpocet']}\r\n";
$zprava = "Jméno: {$_POST['jmeno']}\r\n";
$zprava = "Firma: {$_POST['firma']}\r\n";
$zprava = "Kontakt: {$_POST['kontakt']}\r\n";


if ($zprava!="")
{
Mail("info@konferencniakce.cz", $zprava, "From: " . $kontakt);
echo "<p><strong>Vaše poptávka byla úspšně odeslána, děkujeme.</strong>.</p>";
}
else
{
echo "<p>Vaši poptávku se <strong>nepodařilo odeslat</strong>Pravděpodobně jste nevyplnili všechny údaje.</p>";
}
?>
HonzaKo
Profil
doplnil jsem ješte tečky před = a nyní se mi vypíší všechny data, ale do předmětu emailu. Jak je dostanu do těla zprávy?
HonzaKo
Profil
Tak nyní mám kód takto a již momentálně se zobrazuje výpis z formuláře správně v těle zprávy. Navíc ale je stále v předmětu. Jak mám prosím zadat předmět zprávy jiný než výpis všech polí z formuláře??

<?
		
$zprava = "Typ akce: {$_POST['akce']}\r\n";	
$zprava .= "Termín akce: {$_POST['termin']}\r\n";	
$zprava .= "Počet účastníků: {$_POST['ucastnici']}\r\n";	
$zprava .= "Počet pokojů: {$_POST['ubytovani']}\r\n";	
$zprava .= "Plánovaný rozpočet: {$_POST['rozpocet']}\r\n";	
$zprava .= "Jméno: {$_POST['jmeno']}\r\n";	
$zprava .= "Firma: {$_POST['firma']}\r\n";	
$zprava .= "Kontakt: {$_POST['kontakt']}\r\n";
$zprava .= "Podrobnosti: {$_POST['podrobnosti']}\r\n";	


if ($zprava!="")
{
Mail("info@konferencniakce.cz", $zprava, "Výpis formuláře:\r\n ".$zprava);
echo "<p><strong>Vaše poptávka byla úspšně odeslána, děkujeme.</strong>.</p>";
}
else
{
echo "<p>Vaši poptávku se <strong>nepodařilo odeslat</strong>Pravděpodobně jste nevyplnili všechny údaje.</p>";
} 
?>
Alphard
Profil
Mail("info@konferencniakce.cz", $zprava, "Výpis formuláře:\r\n ".$zprava);

O předmětu rozhoduje druhý parametr, takže tam nedávejte $zprava, ale něco jiného.
HonzaKo
Profil
Výborně, moc děkuji, nyní již vše funguje bez problémů. Mohu ještě požádat o radu, jak mohu po odeslání nebo neodeslání přesměrovat zpět na stránku s formulářem? Ideální případ by byl, aby po vypsání zprávy po stavu odeslání se mi stránka po určitém čase (např. 5 sec) přesměrovala. Našel jsem několik možností, ale pomocí meta tagu mi to z nějakého důvodu nejde a přes php nevím jak řešit ten čas, navíc, aby se mi to netlouklo s echem. Javaskriptem se mi to příliš řešit nechce. Moc děkuji.
HonzaKo
Profil
Tak jsem se to pokusil vyřešit jinak a přívětivěji, aby se výpis o úspěšném odeslání otevřel v malém okoně. Bohužel po zadání tohoto kódu se mi opět neodešle tělo zprávy. Mám to snad vložené na špatném místě?

<p align="center"><form action="/posli.php" method="post">
<center>
<input name="subjekt" size="18" value="Preferovaný subjekt"><br>
<input name="akce" size="18" value="Typ poptávané akce"><br>
<input name="termin" size="18" value="Termín"><br>
<input name="ucastnici" size="18" value="Počet účastníků"><br>
<input name="ubytovani" size="18" value="Počet pokojů"><br>
<input name="rozpocet" size="18" value="Plánovaný rozpočet"><br>
<input name="jmeno" size="18" value="Jméno"><br>
<input name="firma" size="18" value="Firma"><br>
<input name="kontakt" size="18" value="Kontakt"><br>
<textarea name="podrobnosti" rows="6" cols="15">Ostatní specifikace</textarea><br>
<br>
<a href="" onclick="window.open('/posli.php', '_blank', 'width=400,height=400')"><input type="submit" value="Odeslat"></a>
</form></p>

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: