Avatar
janci550
Člen
Avatar
janci550:

Ahoj, mám taký problém, neviem čím to je postupoval som podľa tohoto tutoriálu a moja funkcia na odosielanie mailu je: mail('moj_mail',$_POS­T['predmet'],$_POS­T['od'].': '.$_POST['zpra­va'],'Content-Type: text/plain; charset="windows-1250"');
tak ako je to v článku, problém je v tom, že keď skript vykonám, tak mi príde mail bez správy v tele.
Keď v správe nechám len $_POST['zprava'] príde mi normálna správa, ale akoby bol problém s tým spájaním stringov...

 
Odpovědět 13.4.2013 17:44
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na janci550
David Čápka:

Zkus udělat okolo těch teček mezery.

Nahoru Odpovědět 13.4.2013 17:47
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Vojta Pšenák
Redaktor
Avatar
Odpovídá na janci550
Vojta Pšenák:

Používej prosím tlačítko code - nedá se to číst

 
Nahoru Odpovědět 13.4.2013 17:51
Avatar
janci550
Člen
Avatar
Odpovídá na David Čápka
janci550:

Nefunguje to ani s medzerami

 
Nahoru Odpovědět 13.4.2013 18:01
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na janci550
David Čápka:

A máš zadané to od? Nech si vypsat co je v od a co je v zprava. Tohle tam někam vlož a napiš nám sem co ti to vrací:

echo $_POST['od'] . '<br />';
echo $_POST['zprava'] . '<br />';
echo $_POST['od'] . ' : ' . $_POST['zprava'] . '<br />';
Nahoru Odpovědět 13.4.2013 18:15
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
janci550
Člen
Avatar
Odpovídá na David Čápka
janci550:

No vrátilo mi toto:
test_adr
test_správa
test_adr : test_správa
Ale na maili len správa s predmetom bez tela...

 
Nahoru Odpovědět 13.4.2013 18:21
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na janci550
David Čápka:

Tak to je nějaké divné :D Ještě zkus prosím tohle:

$zprava = $_POST['od'] . ' : ' . $_POST['zprava'];
echo 'Odeslalo se toto: ' . $zprava;
mail('moj_mail', $_POST['predmet'], $zprava, 'Content-Type: text/plain; charset="windows-1250"');

Pokud ti to nepřijde, je problém u tvého emailového providera. Můžeš to zkusit nechat poslat ještě na nějakou jinou adresu.

Editováno 13.4.2013 18:28
Nahoru Odpovědět 13.4.2013 18:28
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
David Hynek
Redaktor
Avatar
David Hynek:
<?php
header('Content-type: text/html; charset=utf-8');

if(isset($_POST['form_ok']))
{
if($_POST['obsah'] != "" and $_POST['predmet'] != "" and filter_var($_POST['email'], FILTER_VALIDATE_EMAIL))
{
if(mail($_POST['email'], htmlspecialchars($_POST['predmet']), htmlspecialchars($_POST['obsah'])))
$formular = "<p><strong>Formulář byl úspěšně odeslán!</strong></p>";
}
else $formular = "<p><strong>Formulář byl špatně vyplněn!</strong></p>";
}
else
{
$formular = "<form method='post'>
Vaše adresa: <input type='text' name='email' /><br />
Předmět: <input type='text' name='predmet' /><br />
<textarea name='obsah'></textarea><br />
<input type='submit' name='form_ok' value='Odeslat' />
</form>";
}

?>
<html>
  <head>
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
  <title>Stranka</title>
  </head>
  <body>
  <p>obsah stránky</p>
  <?php echo $formular; ?>
  <p>zbytek stranky</p>
  </body>
</html>
Nahoru Odpovědět 13.4.2013 18:29
Čím víc vím, tím víc věcí nevím.
Avatar
janci550
Člen
Avatar
Odpovídá na David Čápka
janci550:

Tak som to skúsil a výsledok je:
Odeslalo se toto: test_adr : test_správa
A skúsil som to odoslať aj na inú adresu, ale výsledok je rovnaký. Ak je problém u providera, prečo keď dám odoslať len $_POST['zprava'] príde aj samotná správa?

 
Nahoru Odpovědět 13.4.2013 18:37
Avatar
Mircosoft
Redaktor
Avatar
Mircosoft:

Zásadní otázka: co máš za hosting?
Zkontroluj:

  • Jestli na serveru není posílání mailů nějak omezené.
  • Jestli to nedělá diakritika ve zprávě. Zkus ji napsat bez háčků a čárek a odeslat. Jestli projde celá, je to specifikací charsetu. Nedávno jsem měl podobný problém (na Endoře), funkce htmlspecialchars nečekaně změnila default z ISO-něco na UTF-8 a začala vracet prázdný řetězec.
  • Dej si print_r($_POST), ať vidíš, co v těch proměnných přesně máš.
Editováno 15.4.2013 10:11
 
Nahoru Odpovědět  +1 15.4.2013 10:08
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 10.