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: Kontaktní formulář PHP

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

Aktivity
Avatar
Kamil
Člen
Avatar
Kamil:28.12.2013 21:47

Ahoj,

mohl by mi někdo poradit s tímto problémem? Kontaktní formulář se neodešle. Neudělá vůbec nic..

Kontaktní formulář je použit tady odsud a je zmíněná adresa.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  <meta charset="utf-8">
  <title>Dacia Logan</title>
  <link href="ikona/ikona.ico" rel="shortcut icon" type="image/x-icon" />
  <style>
      *{margin:0px;padding:0px;font-family:century gothic;}
      .header{background:#1b2466;height:18%;}
      .menu{float:right;}
      .menu li{list-style:none;display:inline;}
      a{color:white;padding-left:8px;text-decoration:none;text-shadow:10px 10px 10px black;}
      a:hover{text-decoration:underline;}
      .napis{color:white;}
      img{position:relative;top:-23%;}
      .odsazeni{padding-right:10px;}
      .napis{position:relative;top:-60%;font-size:40px;text-shadow:10px 10px 10px black;}
      .main{margin:0px auto;border:solid white 1px;width:70%;height:100%;overflow:auto;}
      .footer{background:#1b2466;height:9%;color:white;text-align:center;}
      .devbook a{color:black;}

  </style>
  </head>
  <body>
      <div class="header">

               <br>
               <br>
               <img src="obrazky/logo.png" width="100px" height="100px" alt="Dacia logo" title="Dacia logo">

               <span class="napis"> Dacia Logan</span>



                <ul class="menu">
                   <li><a href="index.html">Úvodní</a></li>
                   <li><a href="technicka.html">Technická data</a></li>
                   <li><a href="">Logan Pick-up</a></li>
                   <li><a href="">Fotogalerie</a></li>
                   <li><a href="">Vaše názory</a></li>
                   <li><a href="kontakt.php" class="odsazeni">Kontakt</a></li>
                </ul>
      </div>
      </div>
      <br>
      <div class="main">


      <center>
      <p>Můžete mne kontaktovat pomocí formuláře níže.</p><br><br>
      <form action="kontakt.php" method="POST">
      <?
      $hlaska = '';
      if ($_POST) // V poli _POST něco je, odeslal se formulář
      {
      if (isset($_POST['jmeno']) && $_POST['jmeno'] &&
                        isset($_POST['email']) && $_POST['email'] &&
                        isset($_POST['zprava']) && $_POST['zprava'] &&
        {
            $hlavicka = 'From:' . $_POST['email'];
            $adresa = '[email protected]';
            $predmet = 'Nová zpráva z webu';
            $uspech = mb_send_mail($adresa, $predmet, $_POST['zprava'], $hlavicka);
            if ($uspech)
            {
                $hlaska = 'Email byl úspěšně odeslán, brzy vám odpovíme.';
            }
            else
                $hlaska = 'Email se nepodařilo odeslat. Zkontrolujte adresu.';
        }
        else
            $hlaska = 'Formulář není správně vyplněný!';
    }

        ?>


      <table>
          <tr><td>Váše jméno:&nbsp&nbsp</td><td><input type="text" name="jmeno"></td></tr>
          <tr><td>Váš email:</td><td><input type="text" name="email"></td></tr>
          <tr><td>Zpráva:</td><td><textarea name="zprava" cols="70" rows="15"></textarea></td></tr>
          <tr><td><input type="submit" value="Odeslat"></td></tr>
      </table>





      </form>

      <br>
      Tento formulář je použit ze serveru <a href="devbook.cz" class="devbook">devbook.</a>
      </center>

      </div>


      <div class="footer">

         <!----Počítadlo---->

         <!----------------->
      </div>

  </body>
</html>
 
Odpovědět
28.12.2013 21:47
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Kamil
Kit:28.12.2013 21:50

Ten PHP skript musí být v souboru kontakt.php a musí začínat na 1. řádku souboru.

Nahoru Odpovědět
28.12.2013 21:50
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kamil
Člen
Avatar
Odpovídá na Kit
Kamil:29.12.2013 16:43

Je v souboru kontakt.php, dal jsem to na začátek a stejně nic.

 
Nahoru Odpovědět
29.12.2013 16:43
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Kamil
David Hartinger:29.12.2013 16:47

Vždyť tu hlášku nikde nevypisuješ. Jen jsi to bezmyšlenkovitě zkopíroval z tutoriálu.

Nahoru Odpovědět
29.12.2013 16:47
New kid back on the block with a R.I.P
Avatar
Kamil
Člen
Avatar
Odpovídá na David Hartinger
Kamil:29.12.2013 17:24

I když hlášku uvedu, tak nic se nestane.

    <?
    mb_internal_encoding("UTF-8");

    $hlaska = '';
    if ($_POST) // V poli _POST něco je, odeslal se formulář
    {
        if (isset($_POST['jmeno']) && $_POST['jmeno'] &&
                        isset($_POST['email']) && $_POST['email'] &&
                        isset($_POST['zprava']) && $_POST['zprava'] &&
                        isset($_POST['rok']) && $_POST['rok'] == date('Y'))
        {
            $hlavicka = 'From:' . $_POST['email'];
            $hlavicka .= "\nMIME-Version: 1.0\n";
            $hlavicka .= "Content-Type: text/html; charset=\"utf-8\"\n";
            $adresa = '[email protected]';
            $predmet = 'Nová zpráva z mailformu';
            $uspech = mb_send_mail($adresa, $predmet, $_POST['zprava'], $hlavicka);
            if ($uspech)
            {
                $hlaska = 'Email byl úspěšně odeslán, brzy vám odpovíme.';
            }
            else
                $hlaska = 'Email se nepodařilo odeslat. Zkontrolujte adresu.';
        }
        else
            $hlaska = 'Formulář není správně vyplněný!';
    }

?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  <meta charset="utf-8">
  <title>Dacia Logan</title>
  <link href="ikona/ikona.ico" rel="shortcut icon" type="image/x-icon" />
  <style>
      *{margin:0px;padding:0px;font-family:century gothic;}
      .header{background:#1b2466;height:18%;}
      .menu{float:right;}
      .menu li{list-style:none;display:inline;}
      a{color:white;padding-left:8px;text-decoration:none;text-shadow:10px 10px 10px black;}
      a:hover{text-decoration:underline;}
      .napis{color:white;}
      img{position:relative;top:-23%;}
      .odsazeni{padding-right:10px;}
      .napis{position:relative;top:-60%;font-size:40px;text-shadow:10px 10px 10px black;}
      .main{margin:0px auto;border:solid white 1px;width:70%;height:100%;overflow:auto;}
      .footer{background:#1b2466;height:9%;color:white;text-align:center;}
      .devbook a{color:blue;}

  </style>
  </head>
  <body>
      <div class="header">

               <br>
               <br>
               <img src="obrazky/logo.png" width="100px" height="100px" alt="Dacia logo" title="Dacia logo">

               <span class="napis"> Dacia Logan</span>



                <ul class="menu">
                   <li><a href="index.html">Úvodní</a></li>
                   <li><a href="technicka.html">Technická data</a></li>
                   <li><a href="">Logan Pick-up</a></li>
                   <li><a href="">Fotogalerie</a></li>
                   <li><a href="">Vaše názory</a></li>
                   <li><a href="kontakt.php" class="odsazeni">Kontakt</a></li>
                </ul>
      </div>
      </div>
      <br>
      <div class="main">


      <center>
      <p>Můžete mne kontaktovat pomocí formuláře níže.</p><br><br>
      <?php
            if (isset($hlaska)){
                echo('<p>' . $hlaska . '</p>');
                                 }
        ?>

      <form action="kontakt.php" method="POST">


      <table>
          <tr><td>Váše jméno:&nbsp&nbsp</td><td><input type="text" name="jmeno"></td></tr>
          <tr><td>Váš email:</td><td><input type="text" name="email"></td></tr>
          <tr><td>Aktuální rok</td>
          <td><input name="rok" type="number" /></td></tr>
          <tr><td>Zpráva:</td><td><textarea name="zprava" cols="70" rows="15"></textarea></td></tr>
          <tr><td><input type="submit" value="Odeslat"></td></tr>
      </table>



      </form>

      <br>
      Tento formulář je použit ze serveru <a href="devbook.cz" class="devbook">devbook.</a>
      </center>

      </div>


      <div class="footer">
         <br>
         <!----Počítadlo---->

         <!----------------->
      </div>

  </body>
</html>
Editováno 29.12.2013 17:24
 
Nahoru Odpovědět
29.12.2013 17:24
Avatar
done
Člen
Avatar
Odpovídá na Kamil
done:29.12.2013 17:32

Nebude problém, že ten script ti začíná na <?, měl by začínat na <?php nebo <?= .

 
Nahoru Odpovědět
29.12.2013 17:32
Avatar
Pavel Mareš
Tvůrce
Avatar
Pavel Mareš:29.12.2013 17:39

Může mi někdo vysvětlit proč proboha používá toto:

if ($_POST) // V poli _POST něco je, odeslal se formulář
{
    if (isset($_POST['jmeno']) && $_POST['jmeno'] &&
        isset($_POST['email']) && $_POST['email'] &&
        isset($_POST['zprava']) && $_POST['zprava']
    {...

Nejsem v php nováček (expert taky ne),
ale zapsal bych to nějak takto:

<input type='submit' name='odeslat' value='Odeslat'>
if(isset($_POST['odeslat']))
{
    if($_POST['jmeno'] != "") // popřípadě !empty($_POST['jmeno'])
    {
        // nějaký kód
    }
}

Pokud já vím tak

if($_POST['jmeno'])

ti zjišťuje jestli je T/F ne jestli je plná. Tím pádem
bude false ne? Možná se pletu a něco jsem přehlédl.

Editováno 29.12.2013 17:39
Nahoru Odpovědět
29.12.2013 17:39
Však ono půjde ...
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Pavel Mareš
Kit:29.12.2013 17:41

Co tam pohledává ten HTML input?

Nahoru Odpovědět
29.12.2013 17:41
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Pavel Mareš
Tvůrce
Avatar
Odpovídá na Kit
Pavel Mareš:29.12.2013 17:44

On ho tam nemá, chtěl jsem ho tam připsat,
aby bylo vidět co tím myslím.

Nahoru Odpovědět
29.12.2013 17:44
Však ono půjde ...
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Pavel Mareš
Kit:29.12.2013 17:48

Jenom mateš lidi. Pak si budu myslet, že se to píše před skript.

V té podmínce bude víc problémů. Bez řádného testu se můžeme jen dohadovat, co bude výsledkem této podmínky - ať původní či opravené.

Nahoru Odpovědět
29.12.2013 17:48
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
done
Člen
Avatar
Odpovídá na Pavel Mareš
done:29.12.2013 17:49

Proč by mělo být

if(isset($_POST['odeslat']))

?
Na tlačítko se volá událost ale nemá mít zadanou hodnotu od uživatele. Možná kdyby byly 2 tlačítka a rozeznávalo by se např. mezi Odeslat a Smazat. Potom by to bylo na místě, ale takhle to nemá smysl.

 
Nahoru Odpovědět
29.12.2013 17:49
Avatar
ano95
Člen
Avatar
ano95:29.12.2013 17:51

Skus na začiatok dať príkaz ini_set('DISPLA­Y_ERRORS','1');
malo by to vypísať chyby v kóde.
A ako písal done:
Skús tam dať <?php miesto <?

Editováno 29.12.2013 17:52
 
Nahoru Odpovědět
29.12.2013 17:51
Avatar
ano95
Člen
Avatar
ano95:29.12.2013 17:53

Jasne!!! Ved ten submit nema name tak ako ho mozes testovat?

Urcite to je v tom :)

Editováno 29.12.2013 17:54
 
Nahoru Odpovědět
29.12.2013 17:53
Avatar
done
Člen
Avatar
Odpovídá na ano95
done:29.12.2013 17:57

Tlačítko má hodnotu a to Odeslat.

 
Nahoru Odpovědět
29.12.2013 17:57
Avatar
ano95
Člen
Avatar
Odpovídá na done
ano95:29.12.2013 17:58

Ale nema definovane name teda nic neposiela -> skript skonci pri prvom ife

 
Nahoru Odpovědět
29.12.2013 17:58
Avatar
done
Člen
Avatar
Odpovídá na ano95
done:29.12.2013 17:59

Má smysl ho testovat, pokud by tam byly např. 2 tlačítka a měli by hodnotu např. Odeslat a Smazat aby se odlišilo, jaká část scriptu se provede.

 
Nahoru Odpovědět
29.12.2013 17:59
Avatar
ano95
Člen
Avatar
Odpovídá na done
ano95:29.12.2013 18:03

Ale POST cita obsah inputu podla name. Lenže teraz je prázdny lebo ten button nema name.

 
Nahoru Odpovědět
29.12.2013 18:03
Avatar
Kamil
Člen
Avatar
Odpovídá na ano95
Kamil:29.12.2013 18:03

Tlačítko s hodnotou submit má mít i name? to si myslim,že ten problém neni ;)

 
Nahoru Odpovědět
29.12.2013 18:03
Avatar
ano95
Člen
Avatar
ano95:29.12.2013 18:05

Nemusi ale ked sa testuje v PHP tak ano.
Lebo POST ho hlada podla name.

Editováno 29.12.2013 18:07
 
Nahoru Odpovědět
29.12.2013 18:05
Avatar
done
Člen
Avatar
Odpovídá na ano95
done:29.12.2013 18:08

Pokud myslíš ten původní kód od Salieriho, ale já myslím ten od Pavla Mareše.

 
Nahoru Odpovědět
29.12.2013 18:08
Avatar
ano95
Člen
Avatar
Odpovídá na done
ano95:29.12.2013 18:10

Ano, myslím ten od Salieriho.
Keby to tam bolo tak by to išlo.

 
Nahoru Odpovědět
29.12.2013 18:10
Avatar
ano95
Člen
Avatar
Odpovídá na Kamil
ano95:29.12.2013 18:13

Daj na ten submit name="odeslat" a pojde to.

EDIT: Vastne nie, tam je nieco ine. Pomýlil ma kód od Pavel Mareš

Editováno 29.12.2013 18:16
 
Nahoru Odpovědět
29.12.2013 18:13
Avatar
ano95
Člen
Avatar
ano95:29.12.2013 18:21

Asi to mam :)
Podla mna to nema byt toto:
else
$hlaska = 'Formulář není správně vyplněný!';

ale toto:
else{
$hlaska = 'Formulář není správně vyplněný!';
}

 
Nahoru Odpovědět
29.12.2013 18:21
Avatar
Kit
Tvůrce
Avatar
Odpovídá na ano95
Kit:29.12.2013 18:26

To je přece jedno a to samé.

Nahoru Odpovědět
29.12.2013 18:26
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
ano95
Člen
Avatar
Odpovídá na Kit
ano95:29.12.2013 18:27

Aha tak nic. PHP až tak neovládam :)

 
Nahoru Odpovědět
29.12.2013 18:27
Avatar
Matúš Petrofčík:29.12.2013 18:31

nebolo by lepšie naučiť sa HTML5 ???
vymazal som niekoľko zbytočností ako
<br/> alebo </div> ktoré s ničím nesúviseli
taktiež &nbsp by malo končiť ; tj.   ale bolo by lepšie používať css štýl na zarovnanie.

môžeš to rozdeliť na 2 súbory, html súbor v ktorom budeš mať formulár, a php súbor ktorý ti formulár spracuje
toto je napr. kontakt.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <html>
   <head>
   <meta charset="utf-8">
   <title>Dacia Logan</title>
   <link href="ikona/ikona.ico" rel="shortcut icon" type="image/x-icon" />
   <style>
       <!-- tvoj CSS štýl -->
   </style>
   </head>
   <body>
       <div class="header">
           <!-- nejaky kod v hlavičke -->
       </div>

       <div class="main">

          <center>
          <p>Můžete mne kontaktovat pomocí formuláře níže.</p><br><br>


          <form action="kontakt.php" method="POST">
          <!-- action="kontakt.php" preto, lebo práve jemu budeme odosielať dáta z formuláru  -->

       <table>
           <tr><td>Váše jméno:&nbsp&nbsp</td><td><input type="text" name="jmeno"></td></tr>
           <tr><td>Váš email:</td><td><input type="text" name="email"></td></tr>
           <tr><td>Zpráva:</td><td><textarea name="zprava" cols="70" rows="15"></textarea></td></tr>
           <tr><td><input type="submit" value="Odeslat"></td></tr>
       </table>





       </form>

       <br>
       Tento formulář je použit ze serveru <a href="devbook.cz" class="devbook">devbook.</a>
       </center>

       </div>


       <div class="footer">
          <!-- nejaky kod v pätičke -->
       </div>

   </body>
 </html>

a toto je napr. kontakt.php na ktorý sa budú posielať dáta

<?php
       $hlaska = '';
       if ($_POST) // V poli _POST něco je, odeslal se formulář
       {
       if (isset($_POST['jmeno']) && $_POST['jmeno'] &&
           isset($_POST['email']) && $_POST['email'] &&
           isset($_POST['zprava']) && $_POST['zprava'])
//tu bola chyba, nebola ukončená if() podmienka znakom )
         {
             $hlavicka = 'From:' . $_POST['email'];
             $adresa = '[email protected]';
             $predmet = 'Nová zpráva z webu';
             $uspech = mb_send_mail($adresa, $predmet, $_POST['zprava'], $hlavicka);
             if ($uspech)
             {
                 $hlaska = 'Email byl úspěšně odeslán, brzy vám odpovíme.';
             }
             else
                 $hlaska = 'Email se nepodařilo odeslat. Zkontrolujte adresu.';
         }
         else
             $hlaska = 'Formulář není správně vyplněný!';
     }

?>

je dobré začínať <?php namiesto <? ;)

ak by si to chcel dať všetko do jednoho súboru:
súbor musí mať koncovku .php! ale to snáď viete

<?php
       $hlaska = ''; //hlaska ak by sa nič nespravilo, aby nám pri výpise premennej $hlaska nevypísalo chybu že nie je definovaná premenná
       if ($_POST) // V poli _POST něco je, odeslal se formulář
       {
       if (isset($_POST['jmeno']) && $_POST['jmeno'] &&
           isset($_POST['email']) && $_POST['email'] &&
           isset($_POST['zprava']) && $_POST['zprava'])
//tu bola chyba, nebola ukončená if() podmienka znakom )
         {
             $hlavicka = 'From:' . $_POST['email'];
             $adresa = '[email protected]';
             $predmet = 'Nová zpráva z webu';
             $uspech = mb_send_mail($adresa, $predmet, $_POST['zprava'], $hlavicka);
             if ($uspech)
             {
                 $hlaska = 'Email byl úspěšně odeslán, brzy vám odpovíme.';
             }
             else
                 $hlaska = 'Email se nepodařilo odeslat. Zkontrolujte adresu.';
         }
         else
             $hlaska = 'Formulář není správně vyplněný!';
     }

?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <html>
   <head>
   <meta charset="utf-8">
   <title>Dacia Logan</title>
   <link href="ikona/ikona.ico" rel="shortcut icon" type="image/x-icon" />
   <style>
       <!-- tvoj CSS štýl -->
   </style>
   </head>
   <body>
       <div class="header">
           <!-- nejaky kod v hlavičke -->
       </div>

       <div class="main">

          <center>
          <p>Můžete mne kontaktovat pomocí formuláře níže.</p><br><br>


          <form method="POST">
          <!-- action="" nedávame preto, lebo práve budeme odosielať dáta z formuláru na rovnakú stránku z akej sme to odoslali -->

       <table>
           <tr><td>Váše jméno:&nbsp&nbsp</td><td><input type="text" name="jmeno"></td></tr>
           <tr><td>Váš email:</td><td><input type="text" name="email"></td></tr>
           <tr><td>Zpráva:</td><td><textarea name="zprava" cols="70" rows="15"></textarea></td></tr>
           <tr><td><input type="submit" value="Odeslat"></td></tr>
       </table>

       </form>

<!-- napr. tu vypíšeme hlášku o odoslaní mailu -->
<?php echo $hlaska; ?>

       <br>
       Tento formulář je použit ze serveru <a href="devbook.cz" class="devbook">devbook.</a>
       </center>

       </div>


       <div class="footer">
          <!-- nejaky kod v pätičke -->
       </div>

   </body>
 </html>

snad som pomohol a snad nie som odveci a snad som nevytvoril nejaké dezinformácie

Nahoru Odpovědět
29.12.2013 18:31
obsah kocky = r^2 ... a preto vlak drnká
Avatar
ano95
Člen
Avatar
ano95:29.12.2013 18:31

Na php.net sa píše že tie additional_headers (v tomto prípade $hlavicka) majú byť oddelené pomocou \n\r ale tu je to oddelené pomocou \n

 
Nahoru Odpovědět
29.12.2013 18:31
Avatar
done
Člen
Avatar
Odpovídá na Matúš Petrofčík
done:29.12.2013 18:34

Myslím, že pokud by to měl ve 2 souborech, čili v externím php souboru logiku a výstup v HTML, tak by $hlaska musela být SESSION, např. $_SESSION['hlaska'] = "Odesláno".

 
Nahoru Odpovědět
29.12.2013 18:34
Avatar
ano95
Člen
Avatar
Odpovídá na Matúš Petrofčík
ano95:29.12.2013 18:34

Inač tam kam si napísal že tam bola chyba, tak tam už ) bola. kukni si počet zátvoriek :)

 
Nahoru Odpovědět
29.12.2013 18:34
Avatar
Odpovídá na ano95
Matúš Petrofčík:29.12.2013 18:43

ano95: ja som skopíroval ten prvý kód, nie ten druhý :)

quill: na to som zabudol :[

Salieri: ja som to na svojej stránke vyriešil takto:

<?php
if((isset($_POST['email']))&&(isset($_POST['message']))&&(!isset($_POST['robot']))){
        if(isset($_POST['name'])){$name = $_POST['name'];}else{$name = 'Unknown';}
        $email = $_POST['email'];
        $message = $_POST['message'];

        $mail_to = '[email protected]';
        $subject = 'Message from a site visitor: '.$name;

        $body_message = 'From: '.$name."\n";
        $body_message .= 'E-mail: '.$email."\n";
        $body_message .= 'Message: '.$message;

        $headers = 'From: '.$email."\r\n";
        $headers .= 'Reply-To: '.$email."\r\n";

        $mail_status=mail($mail_to,$subject,$body_message,$headers);

        if($mail_status){
                echo('<script language="javascript" type="text/javascript">alert(\'Thank you for the message!\');</script>');
        }else{
                echo('<script language="javascript" type="text/javascript">alert(\'Message sending failed.\');</script>');
        }
}
?>
Nahoru Odpovědět
29.12.2013 18:43
obsah kocky = r^2 ... a preto vlak drnká
Avatar
ano95
Člen
Avatar
Odpovídá na Matúš Petrofčík
ano95:29.12.2013 18:47

OK,
Ten kód čo tam máš je dobrý.

 
Nahoru Odpovědět
29.12.2013 18:47
Avatar
ano95
Člen
Avatar
Odpovídá na Kamil
ano95:29.12.2013 18:49

Zdroj: http://www.php.net/…end-mail.php
Oddelenie headerov sa robí pomocou \r\n ale ty tam máš \n:

<code>$hlavicka = 'From:' . $_POST['email'];
$hlavicka .= "\nMIME-Version: 1.0\n";
$hlavicka .= "Content-Type: text/html; charset=\"utf-8\"\n";</code>

Malo by to byť takto:
<code>$hlavicka = 'From:' . $_POST['email'];
$hlavicka .= "\r\nMIME-Version: 1.0\r\n";
$hlavicka .= "Content-Type: text/html; charset=\"utf-8\"\r\n";</code>

Editováno 29.12.2013 18:51
 
Nahoru Odpovědět
29.12.2013 18:49
Avatar
Kit
Tvůrce
Avatar
Odpovídá na ano95
Kit:29.12.2013 18:56

Chybí ti tam mezera za From:

Nahoru Odpovědět
29.12.2013 18:56
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
ano95
Člen
Avatar
Odpovídá na Kit
ano95:29.12.2013 19:00

Díky. Ale to tam už bolo. Našiel si dalšiu chybu. Škoda že to už nemôžem upraviť :)

 
Nahoru Odpovědět
29.12.2013 19:00
Avatar
Kamil
Člen
Avatar
Kamil:31.12.2013 17:05

Zdravím,

omlouvám se za malé zdržení....

Nyní mi to hlásí hlášku tuto a to opravdu nevím co s tím....

) Warning: mb_send_mail() [<a href='function.mb-send-mail'>function.mb-send-mail</a>]: Failed to connect to mailserver at &quot;localhost&quot; port 25, verify your &quot;SMTP&quot; and &quot;smtp_port&quot; setting in php.ini or use ini_set() in C:\wamp\www\Dacia - xxx\kontakt.php on line 16
$uspech = mb_send_mail($adresa, $predmet, $_POST['zprava'], $hlavicka);
 
Nahoru Odpovědět
31.12.2013 17:05
Avatar
Odpovídá na Kamil
Matúš Petrofčík:31.12.2013 17:11

ak to skusas na localhoste, tak ti to nemusí fungovať, skús to dať na hosting a tak vyskúšať

mne na localhoste maily posielat nejde, ale na hostingu je vsetko v pohode. predpokladám že nie je nainštalovaný mail server, ale týmto tvrdením si nie som istý

Nahoru Odpovědět
31.12.2013 17:11
obsah kocky = r^2 ... a preto vlak drnká
Avatar
Kamil
Člen
Avatar
Odpovídá na Matúš Petrofčík
Kamil:31.12.2013 20:29

Měl si pravdu, díky

 
Nahoru Odpovědět
31.12.2013 20:29
Avatar
mkub
Tvůrce
Avatar
Odpovídá na Matúš Petrofčík
mkub:31.12.2013 20:55

PHP odosiela maily pomocou mailing serveru, aj preto niektore funkcie PHP nefunguju, ale teoreticky by sa dal z PHP urobit aj mail server, ked sa pouziju funkcie na pracu s protokolmi smtp a pop (resp. pop3) a potom uz ten mail server asi nebude potrebny

 
Nahoru Odpovědět
31.12.2013 20:55
Avatar
Nahoru Odpovědět
1.1.2014 0:10
obsah kocky = r^2 ... a preto vlak drnká
Avatar
Odpovídá na mkub
Matúš Petrofčík:1.1.2014 0:12

ako tak pozerám, všetko robíš zložitejším :D

Nahoru Odpovědět
1.1.2014 0:12
obsah kocky = r^2 ... a preto vlak drnká
Avatar
mkub
Tvůrce
Avatar
Odpovídá na Matúš Petrofčík
mkub:1.1.2014 0:23

niekedy treba robit aj zlozitejsim, lebo jednoduhsie veci nie vzdy funguju spolahlivo...
pokial napr. vytvaras portal, kde by si potreboval aj mail server a nemal by si ho v PC nainstalovany, musel by si ho bud doinstalovat a nastavit, alebo posielat maily pomocou SMTP a POP (resp. POP3) funkcii, inak to nejde

a dalsia moznost je vyvijat web na hostingu, kde maju aj mail server, ale s obmedzenym mail adries a aliasov (casto iba jednu adresu a k nej niekolko aliasov), ale na zakladny kontakt to staci

 
Nahoru Odpovědět
1.1.2014 0:23
Avatar
Matúš Petrofčík:1.1.2014 3:16

zaujimalo by ma za čo som dostal i-- ;)

Nahoru Odpovědět
1.1.2014 3:16
obsah kocky = r^2 ... a preto vlak drnká
Avatar
mkub
Tvůrce
Avatar
mkub:1.1.2014 14:48

minuskari, nainstalujte si na lokalhost LAMP, resp. WAMP, ci XAMPP a skuste bez nastaveneho mailservera posielat maily tymito funkciami,ako je napr. mail(), ci mb_send_mail() a uvidite, realitu posielania pomocou tychto funkcii...

neodoslete nic, aj keby ste neviem co robili! tieto funkcie totiz pripravuju spravu pre skutocny SMTP server, ktory odosle spravu

 
Nahoru Odpovědět
1.1.2014 14:48
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 43 zpráv z 43.