mail func added, post route added, more css
This commit is contained in:
parent
b7721daa00
commit
8065ab134d
@ -18,6 +18,8 @@
|
||||
.card {
|
||||
display: flex;
|
||||
border: 1px solid red;
|
||||
border-radius: 15px;
|
||||
box-shadow: rgba(0, 0, 0, 0.1) 0px 4px 12px;
|
||||
width: min(40rem, calc(100% - 1rem));
|
||||
}
|
||||
|
||||
@ -40,7 +42,7 @@
|
||||
.technologies {
|
||||
display: flex;
|
||||
gap: 1rem;
|
||||
margin-right: auto;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.technologies span {
|
||||
|
@ -3,6 +3,7 @@ session_start();
|
||||
$prod = false;
|
||||
|
||||
require_once("./libraries/router.php");
|
||||
require_once("./libraries/console.php");
|
||||
|
||||
// Display Errors
|
||||
ini_set('display_startup_errors', 1);
|
||||
@ -70,9 +71,11 @@ if($prod) { ?>
|
||||
<section class="content">
|
||||
<?php
|
||||
$R = new Router();
|
||||
$R->route('/', 'home');
|
||||
$R->route('/home', 'home');
|
||||
$R->route('/domu', 'home');
|
||||
$R->route('GET', '/', 'home');
|
||||
$R->route('GET', '/home', 'home');
|
||||
$R->route('GET', '/domu', 'home');
|
||||
|
||||
$R->route('POST', '/contact/send', 'contact');
|
||||
|
||||
$R = null;
|
||||
?>
|
||||
|
9
libraries/console.php
Normal file
9
libraries/console.php
Normal file
@ -0,0 +1,9 @@
|
||||
<?php
|
||||
|
||||
function console_log($data) {
|
||||
$output = $data;
|
||||
if (is_array($output))
|
||||
$output = implode(',', $output);
|
||||
|
||||
echo "<script>console.log('Debug Objects: " . $output . "' );</script>";
|
||||
}
|
31
libraries/mail.php
Normal file
31
libraries/mail.php
Normal file
@ -0,0 +1,31 @@
|
||||
<?php
|
||||
class Mail {
|
||||
public $from;
|
||||
public $to;
|
||||
public $subject;
|
||||
public $message;
|
||||
public $headers;
|
||||
|
||||
function __construct($from, $to, $subject, $message, $headers=null) {
|
||||
$this->from = $from;
|
||||
$this->to = $to;
|
||||
$this->subject = $subject;
|
||||
$this->headers = $headers;
|
||||
}
|
||||
|
||||
public function send() {
|
||||
// odeslání e-mailu
|
||||
$headers = 'From: noreply@fofrweb.com' . "\r\n" .
|
||||
'Reply-To: support@fofrweb.com' . "\r\n" .
|
||||
'X-Mailer: PHP/' . phpversion();
|
||||
$this->headers = $headers;
|
||||
|
||||
if (gettype($this->message) == 'string') {
|
||||
if(mail($this->to, $this->subject, $this->message, $this->headers)) {
|
||||
return 0;
|
||||
} else {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -2,8 +2,10 @@
|
||||
class Router {
|
||||
public $returned = false;
|
||||
|
||||
function route($url, $filename) {
|
||||
if($_SERVER['REQUEST_METHOD'] == 'GET') {
|
||||
function route($method, $url, $filename) {
|
||||
$methods = ['GET', 'POST'];
|
||||
if(in_array($method, $methods)) {
|
||||
if($_SERVER['REQUEST_METHOD'] == $method) {
|
||||
if ($_SERVER['REQUEST_URI'] == $url) {
|
||||
require_once("./pages/$filename/$filename.php");
|
||||
$this->returned = true;
|
||||
@ -11,6 +13,7 @@ class Router {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function __destruct() {
|
||||
if($_SERVER['REQUEST_METHOD'] == 'GET') {
|
||||
|
@ -1,7 +1,7 @@
|
||||
<link rel="stylesheet" href="/css/contact.css">
|
||||
<h1>Kontaktujte mě</h1>
|
||||
|
||||
<form class="form_contact" action="#" method="post" name="contact">
|
||||
<form class="form_contact" action="/contact/send" method="post" name="contact">
|
||||
<label for="name">Vaše jméno:</label>
|
||||
<input id="name" type="text" placeholder="Petr Novák" required autocomplete="on" />
|
||||
|
||||
@ -11,6 +11,45 @@
|
||||
<label for="message">Zpráva:</label>
|
||||
<textarea id="message" placeholder="Napište zprávu..." required></textarea>
|
||||
|
||||
<button type="submit">Odeslat zprávu</button>
|
||||
<button type="button" id="submit">Odeslat zprávu</button>
|
||||
</form>
|
||||
|
||||
<script>
|
||||
const submit = document.querySelector("#submit")
|
||||
submit.addEventListener("click", (e) => {
|
||||
e.preventDefault()
|
||||
|
||||
const formData = new FormData();
|
||||
formData.append('name', document.querySelector("#name").value);
|
||||
formData.append('email', document.querySelector("#email").value);
|
||||
formData.append('message', document.querySelector("#message").value);
|
||||
|
||||
try {
|
||||
fetch('/contact/send', {
|
||||
method: 'POST',
|
||||
body: formData
|
||||
});
|
||||
console.log('Message sent successfully.')
|
||||
} catch (err) {
|
||||
console.error('Error:', error)
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<?php
|
||||
if(isset($_POST['email']) && isset($_POST['message'])) {
|
||||
$email = $_POST['email'];
|
||||
$message = $_POST['message'];
|
||||
$name = $_POST['name'];
|
||||
|
||||
require_once(__DIR__ . "/../../libraries/mail.php");
|
||||
$message = "Nová zpráva z webu Fofrweb.com\n\nOdesílatel: $email\nZpráva:\n$message";
|
||||
$m = new Mail($_POST['email'], 'tym@fofrweb.com', 'Nová zpráva z webu Fofrweb', $message);
|
||||
|
||||
if($m->send()) {
|
||||
header('Location: /?sent=true');
|
||||
} else {
|
||||
echo "<p>Něco se nepovedlo, zkuste to znovu... :(</p>";
|
||||
echo "<a href='/'>Zpět</a>";
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user