Diskuze: Upozornění emailem při přidání do databáze
V předchozím kvízu, Online test znalostí SQL a databází, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 6 zpráv z 6.
V předchozím kvízu, Online test znalostí SQL a databází, jsme si ověřili nabyté zkušenosti z kurzu.
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
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ý
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 = 'nobody@example.com';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: webmaster@example.com' . "\r\n" .
'Reply-To: webmaster@example.com' . "\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"
Tak už se mi to povedlo celé zprovoznit moc děkuji za rady a ochotu
Jojo, nemáš vůbec zač .
Jsem rád, že jsem mohl pomoct
Zobrazeno 6 zpráv z 6.