Obrázek   
Přihlášení
Uživatelské jméno:

Heslo:

Pamatovat si mne



Zapomenuté heslo

Nová registrace
Kam dále?
Hledání
Vzhled

(3 vzhledů)
Kdo je Online
18 uživatel(ů) je online (2 uživatel(ů) si prohlíží Články a povídání)

Uživatelé: 0
Hosté: 18

více...
Noví uživatelé
POKEC
POKEC
21.03.2024
Luigi
Luigi
14.03.2024
zirafak
zirafak
26.02.2024
rorejs
rorejs
27.12.2023
maroš
maroš
07.11.2023
vlada
vlada
17.09.2023
VIKIRYCH
VIKIRYCH
28.12.2022
jiang
jiang
13.12.2022
panezi
panezi
08.09.2022
BigLadin
BigLadin
25.07.2022
Kdo za co může
Administrátorka
Žirafka
Žirafka
Žirafička
Žirafička
Redaktoři
bernard
bernard
IvanH
IvanH
 
Emeritní
KatyH
KatyH

Zápisník pojídačky koláčů pro Xoops - Problém s poštovním systémem XOOPSu

Napsal/a Žirafka v 18. 10. 2014 v 13:03 (přečtení 2083×) Další články tohoto autora
Zápisník pojídačky koláčů pro Xoops
     Před pár dny mi psal jeden člověk, že má problém s registrací, protože redakční systém říká, že se nedaří odeslat potvrzovací email. Tak jsem mu dokončila registraci ručně a problém si ověřila. Bohužel to byla pravda, ale netušila jsem, jak to vyřešit. Pár dní jsem měla jinou práci, ale dneska na to došlo. Dostala jsem prostě takovou „programovací“ náladu, ačkoli tu mám i jinou práci. Hlavně okolo pračky a žehličky

     Žirafoviny používají XOOPS 2.4.5 což je již hodně fousatá verze. Tušila jsem, že to může být trochu problém, a začala bádat. A vybádala jsem, že jeden z problémů je použití PHP funkce eregi, která je najednou fuj a má se nahradit funkcí novou, a totiž preg_match. Která je lepší, krémovější a já nevím co ještě. Ale hlavně používá trochu jinou syntaxi, což mi také chvilku trvalo. Nové funkce toho umí více a lepší určitě jsou, ale stejně si myslím, že i staré funkce mohly v klidu zůstat vedle těch nových.

     Chyba se ukázala být v souboru XOOPSROOT/class/mail/phpmailer/class.phpmailer.php. Funkce eregi je tam jen jedna jediná a tak se dá řádek snadno najít.

Je třeba najít tuto část:

if(eregi('^(.+):([0-9]+)$'$hosts[$index], $hostinfo))


a nahradit ji tímto:

if(preg_match('/^(.+):([0-9]+)$/i'$hosts[$index], $hostinfo))


Celý blok pak bude vypadat takto:

if(preg_match('/^(.+):([0-9]+)$/i'$hosts[$index], $hostinfo)) { 
        
$host $hostinfo[1]; 
        
$port $hostinfo[2]; 
      } else { 
        
$host $hosts[$index]; 
        
$port $this->Port
      }


     Tím mi zmizela hláška o zastaralé funkci, ale stejně posílání emailů nefungovalo. Systém stále hlásil chybu na serveru. To mne dosti štvalo, ale nevěděla jsem, kde je chyba. Ten zápis mohl být také špatně a tak bylo potřeba zjistit, kde je chyba. Jeden známý mi ověřil, že to je napsané dobře, takže zbývalo hledat dále.

     V dalším kroku jsem si do toho skripu napsala nějaké „informační výstupy“ a tím jsem zjistila, že parametry jsou v pořádku a, hlavně, že se v té části nekontroluje adresa, ale získává se adresa serveru a jeho port. Sláva. Tak jsem vložené řádky zase smazala a říkala jsem si, jaká jsem trubka, protože mi došlo, kde je ta hlavní chyba.

     Věřte či ne, ale byla ve špatně zadaném heslu k SMTP serveru. Před pár týdny jsem jej měnila a na Žirafoviny jsem úplně zapomněla, takže tak. Tohle si budu pamatovat ještě dlouho.

     Takže pokud máte podobný problém, zkuste se nejprve podívat na hesla a pak se teprve vrtat v souborech systému. Věřím, že moje anabáze někomu pomůže. A když ne, tak se alespoň pár lidí může pobavit

PS: Nejvíce mi pomohla tato stránka http://www.seitler.cz/jak-v-php-nahra ... rale-funkce-ereg-a-eregi/ a pak pan P.T. kterému tímto moc děkuji
Hodnocení: 0,00 (0 hlasů) - Ohodnotit -
Formátovat pro tisk Poslat známému Vytvořit z článku PDF
Komentář je vlastnictvím svého autora. Vyjadřuje jeho názory, ne názory redakce nebo provozovatele webu či serveru.
Napsal/a Vlákno
Obrázek Obrázek
ObrázekObrázekObrázekObrázekObrázek
Obrázek
Redakční systém XOOPS 2.5.10
Obsah © 2008-2020 Žirafoviny