Stránka 1 z 3

Formulář - neodesílá na e-mail

Napsal: 30 led 2012 21:59
od Roscow
ahoj, vytvářím objednávkový formulář s tím, že objednávka se mi má odeslat na můj e-mail. Jenže se tak neděje a já nevím, v čem mám problém. Mohl by mi někdo poradit?

HTML kód
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1250">
<meta name="generator" content="PSPad editor, http://www.pspad.com">

<link href="styly.css" rel="stylesheet" type="text/css" />


<title>Objednávka</title>
</head>

<body>

<div id="header">

<div id="hlNadpis">

</div>

</div>

<body background="Pozadi.jpg" bgcolor="black">



<div id="podklad">
</div>

<div id="menu">
<p><img src="MenuM.jpg" alt="menu"></p>
<p><a href="info.html"><img src="InfoM.jpg" alt="info"></a></p>
<p><a href="rekreace.html"><img src="RekreaceM.jpg" alt="rekreace"></a></p>
<p><a href="foto.html"><img src="FotogalerieM.jpg" alt="foto"></a></p>
<p><a href="kontakt.html"><img src="KontaktM.jpg" alt="kontakt"></a></p>
<p><a href="cenik.html"><img src="CenikM.jpg" alt="cenik"></a></p>
<p><a href="objednat.html"><img src="Objednat.jpg" alt="objednat"></a></p>

</div>

<div id="nadpis">
<p><img src="Objednavka.jpg" alt="objednavka"></a></p>
</div>





<style>
label{
width:150px;
float:left;
}
</style>

<div id="text">

<form action="objednavka.php" method="post">

<p><label>Jméno: </label><input type="text" name="jmeno"><br>
<label>Příjmení: </label><input type="text" name="prijmeni"><br>
<label>Bydliště: </label><input type="text" name="bydliste"><br>
<label>PSČ: </label><input type="text" name="psc"><br>
<label>Telefon: </label><input type="text" name="telefon"><br>
<label>E-mail: </label><input type="text" name="email"><br>
<label>Datum příjezdu: </label><input type="text" name="prijezd"><br>
<label>Datum odjezdu: </label><input type="text" name="odjezd"><br></p>


<label>Zvolená služba: </label><select name="sluzba">
<option value="fotbal">Fotbal</option>
<option value="tenis">Tenis</option>
<option value="volejbal">Volejbal</option>
<option value="sauna">Sauna</option>
</select>

<p><label>Doba pobytu: </label><select name="pobyt">
<option value="hodina">1 hodina</option>
<option value="2 hodiny">2 hodiny</option>
<option value="3 hodiny">3 hodiny</option>
</select></p>

<label>Kontrola: </label><input name="kontrola" size="25"> <strong>= 2+2</strong><br>

<input type="submit" value="Potvrdit objednávku">
<input type="reset" value="Vymazat objednávku">


</form>
</div>




</body>
</html>


PHP kód odeslání
<Title>Objednávka</Title>
<?php
$jmeno = $_POST['jmeno'];
$prijmeni = $_POST['prijmeni'];
$bydliste = $_POST['bydliste'];
$psc = $_POST['psc'];
$telefon = $_POST['telefon'];
$email = $_POST['email'];
$prijezd = $_POST['prijezd'];
$odjezd = $_POST['odjezd'];
$sluzba = $_POST['sluzba'];
$pobyt = $_POST['pobyt'];

$spam = $_POST['kontrola'];


if ($jmeno!="" and $prijmeni!="" and $bydliste!="" and $psc!="" and $telefon!="" and $email!="" and $prijezd!="" and $odjezd!="" and $sluzba!="" and $pobyt!="" and $kontrola=="4")
{
Mail("stritecky.mara@centrum.cz", $jmeno, $prijmeni, $bydliste, $psc, $telefon, $email, $prijezd, $odjezd, $sluzba, $pobyt, "From: " . $email);
echo "<p><strong>E-mail byl úspěšně odeslán.</strong></p>"; }
else
{
echo "<p>E-mail se <strong>nepodařilo poslat</strong> možná kvůli <strong>nevyplnění všech údajů</strong> nebo <strong>špatně zadaného výsledku.</strong></p>";
}
?>

<p><a href="objednat.html"> Zpět na stránku s objednávkou...


Budu rád za každou pomoc :))

Mimochodem jedná se o stránku: http://www.striteckymarek.ic.cz/projekt/objednat.html

Re: Formulář - neodesílá na e-mail

Napsal: 30 led 2012 22:49
od krystof.nov
hoj, jenom drobná poznámka- co to tam máš za šílené fonty?! napočítal jsem jich asi pět a přečíst nápis MENU mi dalo hodně zabrat :-)

PS: http://www.linuxsoft.cz/article.php?id_article=444
snad tam něco najdeš

Re: Formulář - neodesílá na e-mail

Napsal: 31 led 2012 00:26
od Ellrohir
a vypíše to aspoň "mail se nepodařilo poslat"? nebo to pošle, že mail se úspěšně odeslal, ale nepřijde ti?

Re: Formulář - neodesílá na e-mail

Napsal: 31 led 2012 09:40
od CZechBoY
máš nastavený SMTP server?

Re: Formulář - neodesílá na e-mail

Napsal: 01 úno 2012 21:43
od Roscow
můžete to vyzkoušet sami..při vyplnění všech kolonek a odeslání objednávky se vypíše, že mail byl v pořádku odeslán, ale nepříjde mi na zadanou adresu...

Co se týče SMTP serveru, tak jak se to nastavuje? O tom jsem nikde nečetl, že by to někde muselo být a to jsem prolezl hafo návodů, jak toto zprovoznit...

Re: Formulář - neodesílá na e-mail

Napsal: 01 úno 2012 22:08
od pikaso.andreas
Dej si na stránky na zkoušku tento kód, s tímto jsem kdysi začínal a funguje. Máš chybu nejspíš v počtu parametrů u mail() ..

Re: Formulář - neodesílá na e-mail

Napsal: 02 úno 2012 11:25
od CZechBoY
pikaso.andreas: ano kápnul si na to ;) má tam 12 parametrů
Roscow: používej dokumentaci

napíšu ti, jak má vypadat kod, který ošetřuje funkci Mail proti chybám

Kód: Vybrat vše

if ($jmeno!="" and $prijmeni!="" and $bydliste!="" and $psc!="" and $telefon!="" and $email!="" and $prijezd!="" and $odjezd!="" and $sluzba!="" and $pobyt!="" and $kontrola=="4")
{
   If(      Mail("jmeno@domena.tld", $jmeno, $prijmeni, $bydliste, $psc, $telefon, $email, $prijezd, $odjezd, $sluzba, $pobyt, "From: " . $email)      )
      echo "<p><strong>E-mail byl úspěšně odeslán.</strong></p>";
   Else
      echo "Při odesílání došlo k chybě ve funkci Mail<br>";
}
else
{
   echo "<p>E-mail se <strong>nepodařilo poslat</strong> možná kvůli <strong>nevyplnění všech údajů</strong> nebo <strong>špatně zadaného výsledku.</strong></p>";
}


a doporučuju do parametrů funkce Mail naházet jenom proměnné
asi takhle:
PHP píše:If( Mail($prijemce, $predmet, $zprava, $headers) )

Re: Formulář - neodesílá na e-mail

Napsal: 03 úno 2012 17:00
od Roscow
stejně to nefunguje..já nevím, jestli rozumíte co po vás chci, funkce Mail() může mít 5 parametrů..jenže já chci, aby mi to na mail došlo takto:

např. Jan Novák
Praha
110 00
111111111
jan@novak.cz
"prijezd"
"odjezd"
sluzba
pobyt

No, a aby mi to takto došlo na mail, tak potřebuju všechny parametry napsat do funce Mail() pokud se nepletu..vážně nevím co s tím..

Re: Formulář - neodesílá na e-mail

Napsal: 03 úno 2012 17:18
od CZechBoY
$zprava="Jan Novák
Praha
110 00
1111111
jan@novak.cz
\"prijezd\"
\"odjezd\"
sluzba
pobyt";
Mail($prijemce,$predmet,$zprava,$headers);

Re: Formulář - neodesílá na e-mail

Napsal: 03 úno 2012 17:35
od Roscow
nakonec jsem to nějak udělal a konečně se mi to posílá na mail..jenže mám ještě 2 problémy...

1.) Zadané údaje se mi vypisují do řádku, ne pod sebe
2.) Mail nebere háčky a čárky, přitom jsem zkoušel kódování UTF8 i Windows 1250...


Bod 1 vyřešen !

Re: Formulář - neodesílá na e-mail

Napsal: 03 úno 2012 20:07
od Ellrohir
tak tam mezi proměnný nastrkej html zalomení řádku (tagy br) a přidej do hlavičky 'Content-type: text/html'

Re: Formulář - neodesílá na e-mail

Napsal: 03 úno 2012 22:15
od Roscow
píšu, že ten bod jsem již vyřešil tímto
\n
..potřebuju ještě to kódování..na stránce je všechno v pořádku, vše je česky normálně, ale jakmile mi to přijde na mail, tak mám z toho hieroglyfy :D