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

Tvůrce

Zobrazeno 28 zpráv z 28.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Jestli hosting má podporu tak jim to tam napiš
Nebo zkus např. toto:
<?php
$to = "[email protected]";
$subject = 'PHP mail test';
$message = 'Hello';
$headers = 'From: [email protected]' . "\r\n" .
'Reply-To: [email protected]' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);
?>
Když to nebude fungovat tak sem napiš co ti to napíše
Ale to je funkce mail . Tahle funkce se už moc nepoužívá a e-maily už ji někdy ani nezobrazí , protože můžuš prakticky z kohokoliv účtu poslat komukoliv , jakoukoliv zprávu .
To není úplně pravda, mail() je spíš neohrabaná než zastaralá. Kdybys poslal mail se správnými hlavičkami, nebude s tím mít žádný klient problém.
Class not found znamená, že není načtený ten soubor s třídou. Jakým
způsobem máš ten phpmailer nainstalovaný? Přes composer? Prostě sis stáhl
zip?
Jaký máš autoloader?
To je informace celkem k ničemu. PhpMailer má sekci pro instalaci - https://github.com/…er/PHPMailer#… . Co z toho používáš?
require
(ewww..) ?Používám framework , ale dělám to přes workspace .
Ok, ale pořád jsi nám prakticky nic neřekl. Jestli chceš, aby ti bylo
pomoženo, musíš tomu jít naproti - ideálně tím, že řekneš třeba co to
je za framework a jak načítáš třídy. Načítání tříd je naprosto
klíčová informace, bez které nemá smysl pokračovat. Pokud nemáš zdání,
co po tobě vlastně chci, přihoď sem ukázku nějaké stránky (vyhaž z toho
konkrétní obsah, zajímavý je většinou především PHP začátek
souborů.
PS: jaký workspace? Neznám to a google vyhodil akorát SW pro management času
v týmu...
$mail = new \PHPMailer\PHPMailer\PHPMailer
To používám a taky
namespace PHPMailer\PHPMailer;
/**
* PHPMailer - PHP email creation and transport class.
*
* @author Marcus Bointon (Synchro/coolbru) <[email protected]>
* @author Jim Jagielski (jimjag) <[email protected]>
* @author Andy Prevost (codeworxtech) <[email protected]>
* @author Brent R. Matzelle (original founder)
*/
class PHPMailer
To je na phpmaileru
Rozuměj, že ti nemohu poradit, když nám neřekneš, jak načítáš třídy. Zbytek jen jen omáčka, která může a nemusí pomoct.
A funguje to
Ano, ale ne samo od sebe, PHP tak nefunguje. Něco to musí načítat, proto buď musíš psát pro každou třídu require a zbláznit se z toho, nebo máš autoloader - ten buď zajišťuje framework, composer, nebo máš vlastní řešení.
Toto používám -
function __autoload($class) {
$pathUpperCase = str_replace('\\', '/', $class);
$pathArray = explode("/", $pathUpperCase);
$className = array_pop($pathArray) . '.php';
foreach ($pathArray as &$value) {
$value = strtolower($value);
}
$path = implode("/", $pathArray);
if (file_exists($path . "/" . $className)) {
require $path . "/" . $className;
return true;
} else {
return false;
}
}
Sry , já jsem chvíli nechápal . Autoloader jsem sem už poslal .
Otazka znela, mas nactenou tridu? Viz treba:
require 'PHPMailerAutoload.php';
$mail = new PHPMailer;
Jak to myslíš? ( Já nejsem moc v php pokročilý takže nějaké věci nemusím vědět )
Ja toho nevim...
V phpinfo() se koukni, zda mas tridu co chces pouzivat spustenou uz pri startu serveru. Na localhostu ji muzes mit spustenou, ale treba na freehostingu muze byt zakazana, nebo jen nespustena. Pak tu tridu musit umistit do slozky stranek a pred pouzitim ji spustit. Trebas tak jak jsem psal.
Ale to ti psal uz Petr Cech. Kdyz se ptas, tak zkus cist i odpovedi...
Jinak se spousti tak, jak jsem ti psal...
Ale , stává se mi tato chyba jen u importovaných scriptů ( které jsem nenapsal já )
Zobrazeno 28 zpráv z 28.