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: Upozornění emailem při přidání do databáze

Aktivity
Avatar
david-mares
Člen
Avatar
david-mares:31.3.2018 20:00

Ahoj, chtěl bych se zeptat jestli je nějak možné aby mi při přidání obsahu do databáze přišel email s upozorněním? (objednávky mi chodí do databáze, tak abych věděl když přijde) jinak databázi mám na: sql2.webzdarma.cz
Děkuji za případné rady ;)

 
Odpovědět
31.3.2018 20:00
Avatar
albertpatera
Tvůrce
Avatar
Odpovídá na david-mares
albertpatera:31.3.2018 20:26

Ahoj, můžeš to udělat pomocí PHP knihovny mb_send_mail();

Můžeš to usdělat nějak takto:

  class Formular
  {
    public $jmeno;
    public $prijmeni;
    public $email;
    public $predmet;
    public $zprava;
    public $hlavicka;
    private $tlacitko;



    public function __construct($jmeno, $prijmeni, $email, $zprava)
    {
      $this->jmeno = $jmeno;
      $this->prijmeni = $prijmeni;
      $this->email = $email;
      $this->zprava = $zprava;
      $this->predmet = $predmet;
      $this->hlavicka = $hlavicka;
    }

    public function vypisProm()
    {
      $this->jmeno = $_POST["jmeno"];
      $this->prijmeni = $_POST["prijmeni"];
      $this->zprava = $_POST["zprava"];
      $this->email = $_POST["email"];
      $this->predmet = $_POST["predmet"];
      $this->tlacitko = $_POST["submit"];
      $this->hlavicka = "<img src='http://blogs.hants.gov.uk/libraries/wp-content/uploads/sites/2/2016/02/code-1076536_960_720.jpg' title='LOGO'>";
    }

    public function vypisFormular()
    {
      echo('<fieldset style="width:25%">');
      echo('<form action="index.php" method="POST">');
      echo('<input type="text" name="jmeno" placeholder="Zadejte jmeno"><br>');
      echo('<input type="text" name="prijmeni" placeholder="Vaše příjmení"><br>');
      echo('<input type="text" name="predmet" placeholder="Předmět zprávy"><br>');
      echo('<textarea name="zprava" placeholder="napiště zprávu..."></textarea><br>');
      echo('<input type="text" name="email" placeholder="Zadejte jmeno"><br>');
      echo('<input type="submit" name="submit">');
      echo('</fielset>');
    }

    public function posliEmail()
    {
      mb_internal_encoding("utf-8");

      $hlavicka = 'From:' . $this->email;
      $hlavicka .= "\nMIME-Version: 1.0\n";
      $hlavicka .= "Content-Type: text/html; charset=\"utf-8\"\n";
      $hlavicka .= "<img src='http://blogs.hants.gov.uk/libraries/wp-content/uploads/sites/2/2016/02/code-1076536_960_720.jpg' title='LOGO'>";
      $zprava = '<b>' . $this->email. ':</b><i>' . $this->zprava. '</i>';
      $date = date('Y-m-d h:i:s');
       $message = "<html>
  <body bgcolor=\"#DCEEFC\">
    <center>
        <table border='0'>
        <tr><td><h1>Zpráva z webu</h1></td><hr> <br> <br><br>
        <td><b>From:</b><i>" . $this->jmeno  . " ". $this->prijmeni . "</i></td>
        <td><b>Subject:</b><i> " . $this->predmet. "</i></td>
        <tr><td style='color: #0073f7; font-size:25px; font-family: Verdana'>
        " . $this->zprava ."</td>
        <i>Send day: <b>" . $date . "</b></i>
        <img src='http://blogs.hants.gov.uk/libraries/wp-content/uploads/sites/2/2016/02/code-1076536_960_720.jpg'>
        <font color=\"red\">Thanks Mohammed!</font> <br>
        <a href=\"http://www.maaking.com/\">* maaking.com</a>
    </center>
      <br><br>*** Now you Can send HTML Email <br> Regards<br>MOhammed Ahmed - Palestine
      </table>
  </body>

</html>";
      return mail($this->email, $this->predmet, $message, $headers);
      //return mb_send_mail($this->email, $this->predmet, $zprava, $hlavicka);
    }

    public function vypisData()
    {
      echo('<b>Jméno:</b><br> ' . $this->jmeno . '<br>');
      echo('<b>Příjmení:</b><br> ' . $this->prijmeni . '<br>');
      echo('<b>Předmět:</b><br> ' . $this->predmet . '<br>');
      echo('<b>Zprava:</b><br> ' . $this->zprava . '<br>');
      echo('<b>E-mail:</b><br> ' . $this->email);
      echo($this->hlavicka);
      echo('cela zprava' . $zprava);
    }
  }

Výše je emailový formulář, který se posílá na můj mail.

Můžeš to udělat nějak takto:

<?php

if($stmt->execute()) //jestli byl SQL dotaz vykonán (v tvém případě INSERT
     $f = new Formular() // vytvoří se nová instance třídy Formulař
     $->posliMail() //- mnou vytvořená metody pro poslání emalů. Vytvoříš si instanci a pak přistupuješ k jednotlivým metodám.

Snad jsem Ti pomohl .-). Kdyby něco, tak se ptej :-) ;-)

 
Nahoru Odpovědět
31.3.2018 20:26
Avatar
david-mares
Člen
Avatar
david-mares:31.3.2018 20:47

Děkuji moc za radu ;) ale pořád mi není jasné jak to mám propojit s mou databázi a jak zjistím na jaký email se to pošle.. Je to na mě asi moc složitě, omlouvám se v PHP nejsem tak zběhlý ;)

 
Nahoru Odpovědět
31.3.2018 20:47
Avatar
albertpatera
Tvůrce
Avatar
Odpovídá na david-mares
albertpatera:31.3.2018 21:06

No v podstatě je to tak, že ověříš, jestli byla všechna pole ve formuláři vyplněná

//zde bude nějaká validace
//následně ověření, zda byl formulář odeslán
   if($_POST["submit"]) {
           //když se formulář odeslal
           //pošle se e-mail

Nejdříve se připojíš k db nejak takto:

$mysqli = new mysqli = (''sql2.webzdarma.cz", "uzivatel", "heslo", "nazev db");

if($mysqli->connect_errno) {

echo "db failed" . $mysqli->connect_error();

samotné sql:

//když uživatel odešle formulář (novou objednávku)
$stmt = $mysqli->prepare("INSERT INTO table (sl1, sl2...,sln) VALUES($jmeno, $prijmeni, $objednavka)")
$stmt->execute();

V podstatě Ti stačí jen funkce MB_SEND_MAIL();

Můžeš využít tento článek: https://www.itnetwork.cz/…ovy-formular

Zde je ještě live verze toho formuláře: http://test.albertpatera.cz/Formular/

Kdyby sis nevěděl rady, tak se můžeš inspirovat stažením kódu.

Stěžejní je funkce mb_send_mail :-) (popř. mail()

Zde je ještě ukázka přímo z PHP oficiální dokumentace

<?php
$to      = '[email protected]';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: [email protected]' . "\r\n" .
    'Reply-To: [email protected]' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();

mail($to, $subject, $message, $headers);
?>

Snad jsem Ti to alespoň trochu objasnil :-)

Popř. apk pošli svůj kód jestli nějaký máš :-), abychom se mohli od něčeho "odpíchnout" ;-)

Editováno 31.3.2018 21:07
Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
31.3.2018 21:06
Avatar
david-mares
Člen
Avatar
david-mares:31.3.2018 21:35

Tak už se mi to povedlo celé zprovoznit moc děkuji za rady a ochotu ;)

 
Nahoru Odpovědět
31.3.2018 21:35
Avatar
albertpatera
Tvůrce
Avatar
Odpovídá na david-mares
albertpatera:31.3.2018 21:37

Jojo, nemáš vůbec zač :-). Jsem rád, že jsem mohl pomoct ;-)

 
Nahoru Odpovědět
31.3.2018 21:37
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 6 zpráv z 6.