Diskuze: Chyba v odeslání emailu (jQuery & PHP)
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 8 zpráv z 8.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Nezkoušel jsem to, ale... víš, že ti chybí apostrof u
$errors['price'] = Cenu je nutné vyplnit.';, že ano? 
Funkci mail() bych vůbec nedoporučoval používat a použil bych PHPMailer,
který se dá dost rozumně použít na prakticky cokoliv a je
user-friendly.
Nepíše to nějaké chyby? Kde se to pokoušíš spustit? Na localu to nebude
fungovat, pokud jsi si nezprovoznil mailserver (a i stejně tak to bude fungovat
jen pro lokální mail, pokud nebudeš mít něco jako SMTP relay).
Spouštím to na doméně.
Píše to jen chybu která se má napsat pokud nebude empty($errors). Apostrof u sebe v kódu mám.
Používej tlačítko odpovědět!
No a co error log na hostingu? Nebo použij PHPmailer a on ti tu chybu řekne...
(myslím)
A nepřišlo ti to do spamu? To se často stává, třeba na můj Gmail se už
ani nepokouším nic posílat automaticky, protože ze všech těch testů si
můj server blacklistnul a já s tím nemuzu nic udělat
. Takže si to zkus poslat na
něco hloupějšího, třeba nějaký temp mail nebo seznam, co buď filtry
nemají vůbec nebo jsou nejsou tak vychytralé.
BTW, je to normální hosting, nebo si to spravuješ sám na nějakém VPS?
Bez chyby ti tezko nekdo poradi.
Tak jsem použil PHPMailer ale moc jsem nepochodil. Aspoň že to ukazuje ty chyby.
Fatal error: Uncaught Error: Class 'PHPMailer' not found in /data/web/virtuals/xxxxx/virtual/www/index.php:7 Stack trace: #0 {main} thrown in /data/web/virtuals/xxxxx/virtual/www/index.php on line 7
Kód mám:
if(isset($_POST['odeslat'])){
require "PHPmailer/src/PHPMailer.php";
require "PHPmailer/src/SMTP.php";
$mail = new PHPMailer(true); // Passing `true` enables exceptions
try {
//Server settings
$mail->SMTPDebug = 2; // Enable verbose debug output
$mail->isSMTP(); // Set mailer to use SMTP
$mail->Host = 'smtp-xx.mxx.wedos.net'; // Specify main and backup SMTP servers
$mail->SMTPAuth = true; // Enable SMTP authentication
$mail->Username = '[email protected]'; // SMTP username
$mail->Password = 'xx'; // SMTP password
$mail->SMTPSecure = 'tls'; // Enable TLS encryption, `ssl` also accepted
$mail->Port = 587; // TCP port to connect to
//Recipients
$mail->setFrom('[email protected]', 'Mailer');
$mail->addAddress('[email protected]', 'Někdo'); // Add a recipient
//Content
$mail->isHTML(true); // Set email format to HTML
$mail->Subject = 'Here is the subject';
$mail->Body = 'This is the HTML message body <b>in bold!</b>';
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';
$mail->send();
echo 'Message has been sent';
} catch (Exception $e) {
echo 'Message could not be sent. Mailer Error: ', $mail->ErrorInfo;
}
}
Použil jsem kód přímo z gitu tam bylo přidáno ještě toto ale nemůžu se dobádat co je "vendor/autload.php" a řádek s use mi vyhazuje chybu:
use PHPMailer\PHPMailer\PHPMailer;
require '../vendor/autoload.php';
chyba s use
Parse error: syntax error, unexpected 'use' (T_USE) in /data/web/virtuals/xxx/virtual/www/index.php on line 3
Vendor je složka, kam se ukládají knihovny třetí stran typicky je tam
dává composer.
Doporučil bych ti to nainstalovat přes composer; jestli ho neumíš
používat, nauč se ho, je to extrémně užitečná věc. A je úplně ok mít
composer jen pro jednu dependency.
Dobře. Hosting mám u wedosu takže tam stačí když do root složky (/) dám composer.json a composer.lock ?
Zobrazeno 8 zpráv z 8.
