Triko zdarma Triko zdarma
Pouze tento týden až 80 % sleva na vývoj webů v PHP.
Extra 10 % bodů navíc a tričko zdarma při zadání kódu "TRIKO10"

Diskuze: Problém s phpmailerem

PHP PHP Problém s phpmailerem American English version English version

Aktivity (1)
Avatar
Tomáš Martin Holub:1.7.2018 11:52

Na webhostingu mám phpmailer a tam když ho chci najít píše mi to class not found , ale na localhostu to jde . Stejná chyba se i již stala s mpdo , ale to jsem upravil sám nějak sesmolil a vložil do jiného souboru .

Zkusil jsem: Zkoušel jsem hledat odpověď na stackoverflow potom i někde na českých fórech , ale nenašel jsem to co jsem hledal .

Chci docílit: Chci aby tam nebyla chyba a nevyhazovalo to chybu class not found .

 
Odpovědět 1.7.2018 11:52
Avatar
Matěj Strnad:1.7.2018 19:48

Jestli hosting má podporu tak jim to tam napiš :)

Nahoru Odpovědět 1.7.2018 19:48
Ty vaše internety!
Avatar
Matěj Strnad:1.7.2018 19:58

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 :)

Editováno 1.7.2018 19:59
Nahoru Odpovědět 1.7.2018 19:58
Ty vaše internety!
Avatar
Odpovídá na Matěj Strnad
Tomáš Martin Holub:1.7.2018 22:31

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 .

 
Nahoru Odpovědět 1.7.2018 22:31
Avatar
Petr Čech
Redaktor
Avatar
Odpovídá na Tomáš Martin Holub
Petr Čech:1.7.2018 22:37

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.

Nahoru Odpovědět  +1 1.7.2018 22:37
the cake is a lie
Avatar
Petr Čech
Redaktor
Avatar
Odpovídá na Tomáš Martin Holub
Petr Čech:1.7.2018 22:39

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?

Nahoru Odpovědět  +1 1.7.2018 22:39
the cake is a lie
Avatar
Odpovídá na Petr Čech
Tomáš Martin Holub:1.7.2018 22:40

Mám složku a v ní phpmailer

 
Nahoru Odpovědět 1.7.2018 22:40
Avatar
Petr Čech
Redaktor
Avatar
Odpovídá na Tomáš Martin Holub
Petr Čech:1.7.2018 23:53

To je informace celkem k ničemu. PhpMailer má sekci pro instalaci - https://github.com/…er/PHPMailer#… . Co z toho používáš?

  • Máš composer a vždy přidáváš autoloader z vendor/autolo­ader.php?
  • Máš vlastní autoloader? Pokud ano, poděl se.
  • Máš nějaký framework? Očividně ale ne...
  • Nebo nemáš autoloader vůbec a prostě všechno přidáváš přes require (ewww..) ?
  • Přidal sis phpmailer do include_path? To vy vysvětlovalo, že to u tebe jde a na serveru ne.
Nahoru Odpovědět  +1 1.7.2018 23:53
the cake is a lie
Avatar
Odpovídá na Petr Čech
Tomáš Martin Holub:2.7.2018 7:44

Používám framework , ale dělám to přes workspace .

 
Nahoru Odpovědět 2.7.2018 7:44
Avatar
Petr Čech
Redaktor
Avatar
Odpovídá na Tomáš Martin Holub
Petr Čech:2.7.2018 9:02

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...

Nahoru Odpovědět  +1 2.7.2018 9:02
the cake is a lie
Avatar
Tomáš Martin Holub:2.7.2018 15:59
$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 :)

 
Nahoru Odpovědět 2.7.2018 15:59
Avatar
Petr Čech
Redaktor
Avatar
Odpovídá na Tomáš Martin Holub
Petr Čech:2.7.2018 16:02

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.

Nahoru Odpovědět 2.7.2018 16:02
the cake is a lie
Avatar
Odpovídá na Petr Čech
Tomáš Martin Holub:2.7.2018 16:08

Jak to myslíš ? Já přídám

$x = new \x\x;
 
Nahoru Odpovědět 2.7.2018 16:08
Avatar
Tomáš Martin Holub:2.7.2018 16:08

A funguje to

 
Nahoru Odpovědět 2.7.2018 16:08
Avatar
Petr Čech
Redaktor
Avatar
Odpovídá na Tomáš Martin Holub
Petr Čech:2.7.2018 20:18

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í.

Nahoru Odpovědět 2.7.2018 20:18
the cake is a lie
Avatar
Odpovídá na Petr Čech
Tomáš Martin Holub:2.7.2018 20:19

A to nefunguje i když využívám workspace ?

 
Nahoru Odpovědět 2.7.2018 20:19
Avatar
Odpovídá na Petr Čech
Tomáš Martin Holub:2.7.2018 20:25

Dobře zítra pošlu .

 
Nahoru Odpovědět 2.7.2018 20:25
Avatar
Odpovídá na Petr Čech
Tomáš Martin Holub:2.7.2018 20:29

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;
    }
}
 
Nahoru Odpovědět 2.7.2018 20:29
Avatar
Petr Čech
Redaktor
Avatar
Odpovídá na Tomáš Martin Holub
Petr Čech:2.7.2018 20:44

netuším, co je workspace

Nahoru Odpovědět 2.7.2018 20:44
the cake is a lie
Avatar
Odpovídá na Petr Čech
Tomáš Martin Holub:2.7.2018 20:45

Sry , já jsem chvíli nechápal . Autoloader jsem sem už poslal .

 
Nahoru Odpovědět 2.7.2018 20:45
Avatar
David Hynek
Redaktor
Avatar
Odpovídá na Tomáš Martin Holub
David Hynek:3.7.2018 18:42

Otazka znela, mas nactenou tridu? Viz treba:

require 'PHPMailerAutoload.php';
$mail = new PHPMailer;
Editováno 3.7.2018 18:44
Nahoru Odpovědět 3.7.2018 18:42
Čím víc vím, tím víc věcí nevím.
Avatar
Odpovídá na David Hynek
Tomáš Martin Holub:3.7.2018 18:45

Jak to myslíš? ( Já nejsem moc v php pokročilý takže nějaké věci nemusím vědět )

 
Nahoru Odpovědět 3.7.2018 18:45
Avatar
David Hynek
Redaktor
Avatar
Odpovídá na Tomáš Martin Holub
David Hynek:3.7.2018 18:49

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.

Nahoru Odpovědět 3.7.2018 18:49
Čím víc vím, tím víc věcí nevím.
Avatar
Odpovídá na David Hynek
Tomáš Martin Holub:3.7.2018 18:50

Spustit ? A jak jí spustím ?

 
Nahoru Odpovědět 3.7.2018 18:50
Avatar
David Hynek
Redaktor
Avatar
Odpovídá na Tomáš Martin Holub
David Hynek:3.7.2018 19:02

Ale to ti psal uz Petr Cech. Kdyz se ptas, tak zkus cist i odpovedi...

Jinak se spousti tak, jak jsem ti psal...

Nahoru Odpovědět 3.7.2018 19:02
Čím víc vím, tím víc věcí nevím.
Avatar
Odpovídá na David Hynek
Tomáš Martin Holub:3.7.2018 19:08

Já to zkusím podle toho tvého

 
Nahoru Odpovědět 3.7.2018 19:08
Avatar
Tomáš Martin Holub:3.7.2018 19:31

Ale , stává se mi tato chyba jen u importovaných scriptů ( které jsem nenapsal já )

 
Nahoru Odpovědět 3.7.2018 19:31
Avatar
Tomáš Martin Holub:16.7.2018 23:54

Už je to opraveno.

Akceptované řešení
+5 Zkušeností
Řešení problému
 
Nahoru Odpovědět 16.7.2018 23:54
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 28 zpráv z 28.