IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Email

V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
janci550
Člen
Avatar
janci550:13.4.2013 17:44

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 Hartinger
Vlastník
Avatar
Odpovídá na janci550
David Hartinger:13.4.2013 17:47

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

Nahoru Odpovědět
13.4.2013 17:47
New kid back on the block with a R.I.P
Avatar
Vojta Pšenák
Tvůrce
Avatar
Odpovídá na janci550
Vojta Pšenák:13.4.2013 17:51

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 Hartinger
janci550:13.4.2013 18:01

Nefunguje to ani s medzerami

 
Nahoru Odpovědět
13.4.2013 18:01
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na janci550
David Hartinger:13.4.2013 18:15

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
New kid back on the block with a R.I.P
Avatar
janci550
Člen
Avatar
Odpovídá na David Hartinger
janci550:13.4.2013 18:21

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 Hartinger
Vlastník
Avatar
Odpovídá na janci550
David Hartinger:13.4.2013 18:28

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
New kid back on the block with a R.I.P
Avatar
David Hynek
Tvůrce
Avatar
David Hynek:13.4.2013 18:29
<?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 Hartinger
janci550:13.4.2013 18:37

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
Tvůrce
Avatar
Mircosoft:15.4.2013 10:08

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
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.