ugrás a tartalomhoz

Pear Mail_Queue nincs hibaüzenet.

s_volenszki · 2007. Okt. 24. (Sze), 18.51
Sziasztok!

Elkezdtem ismerkedni a Pear csomagokkal és már az első lépésben megbuktam.

Szeretném használni a Mail_Queue csomagot. Mivel a phpinfo() a szerveremen azt mondja hogy with-pear és a php-m verziószáma 5-el kezdődik, ezért ftp-n felmásoltam a szükséges csomagokat.

Mindent megtettem ahogy a doksi mutatja, beállítottam a config.php-t, megcsináltam az adatbázisban a táblát, és a minta alkalmazás (pear doksi) hibaüzenet nélkül lefut.

Nincs hibabejegyzés az error logokba, nincs mysql hibaüzenet, de mégsem kerül be az adat a táblába!

Hogyan lehetne rávenni, hogy kiköhögjön valami hibaüzenetet? Mert, gondolom, ha a feladat nem megy végbe valami hiba csak van?

Tovább okfejtettem, és kipróbáltam simán a Mail::factory, tökéletesen működik.

Várom a gondolataitokat, üdv:

s_volenszki
 
1

Bizonyára ismét rosszul kérdeztem!

s_volenszki · 2007. Okt. 25. (Cs), 16.48
Azzal kapcsolatban szeretném a segítségeteket kérni, hogy ha a következő néhány soros program kimenet nélkül lezajlik, hogyan vahatném rá, hogy elmondja, miért nincs kimenet?

Az adatbázis létezik, érvényes a user és a pass, a tábla is létezik és vannak benne sorok.

ini_set("include_path", 'includes/' . PATH_SEPARATOR . ini_get("include_path"));
require_once 'DB/DB.php';

$dns = 'mysql://user:pass@localhost/dbname';
$DB = DB::connect( $dns, false );

$result = $DB->query( "SELECT * FROM `tabla` ORDER BY id DESC" );
while($row = $result->fetchrow(DB_FETCHMODE_ASSOC))
{
echo "title: $row[title]";
}

$DB->disconnect();
Azt észre vettem, hogy ha a 4-es 5-ös sor közé teszek egy echo-t, akkor az még megjelenik, de ha az 5-ös után, akkor már nem, ami annyit jelent számomra, hogy az már nem kerül feldolgozásra.

Léci, léci, léci :)

Köszönöm!

s_volenszki
2

hibák megjelenítése

zila · 2007. Okt. 25. (Cs), 17.22
Kapcsold be a hibák megjelenítését:

ini_set("error_reporting", E_ALL);
ini_set("display_errors", true);
Vagy:

try{
     $DB = DB::connect( $dns, false ); 
} catch(Exception $e) {
     echo $e->getMessage();
}
3

Hibák megjelenítése.

s_volenszki · 2007. Okt. 25. (Cs), 21.05
Szia!

Köszönöm, hogy foglakozol a kérdéssel! Megpróbáltam, amit írtál, de semmi eredmény.

Így néz ki a teljes kód:

<?php
ini_set("error_reporting", E_ALL);  
ini_set("display_errors", true);
ini_set("include_path", 'includes/' . PATH_SEPARATOR . ini_get("include_path"));

require_once 'DB/DB.php';
$dns = 'mysql://user:pass@localhost/dbname';

try{
    $DB = DB::connect( $dns, false );
}catch(Exception $e){
    echo $e->getMessage();  
}
?>
Leírom, hogy mit tettem azért hogy egyáltalán működjön a PEAR.

A doksi szerint megnéztem a phpinfo-mat és with-pear. Mivel nincs parancssori jogosultságom, ftp-n felöltöttem a DB csomagot. Ennyi.

Kellett volna még tennem valamit?

s_volenszki
4

Függőség

zila · 2007. Okt. 25. (Cs), 21.46
Lehet, hogy valamilyen függősége nincs fenn a szervereden. Én hasonló helyzetben letöltöttem a saját gépemre az alap peart, aztán felteszegettem a szükséges csomagokat (pear install csomag ez ugye a függőségeket is kiírja) majd ezek után a teljes pear könyvtárat feltoltam a tárhelyre...

Mondjuk ettől függetlenül furcsa, hogy semmilyen hibaüzenet nem jelenik meg... Apache logfileban nincs véletlenül Fatal error bejegyzés?
5

Azt nem tudom megnézni...

s_volenszki · 2007. Okt. 25. (Cs), 21.54
Szia!

Azt nem tudom megnézni, de én is megtudom tenni, hogy a localhost-on futó WAMP-omat with-pear-el indítom, és megnézem mit lép ugyanerre a kódra és csomagokra.

Mellesleg minden függőségben kapcsolt csomagot feltöltöttem! Úgy gondolom!

Köszönöm a tippet, költöztetem localhostra!

s_volenszki
6

Még egy ötlet

zila · 2007. Okt. 25. (Cs), 22.55
Régen használtam pear DB-t, ezért belekukkantottam a manualba :)

$options = array(
    'debug'       => 2
);

$db =& DB::connect($dsn, $options);
if (PEAR::isError($db)) {
    die($db->getMessage());
}
7

Nem írt semmit az error log-okba!

s_volenszki · 2007. Okt. 25. (Cs), 22.55
Nem írt semmit az error log-okba, de nem adtam fel!

Olvasgattam a manualt, és láttam egy másik adatbázis absztrakciós réteg csomagot, a MDB2-t.
Feltöltöttem az a csomagokat függőség szerint és tökéletesen működik!

Először kétségbe estem, amikor az ő,ű helyett kérdőjeleket olvasott ki, de tudtam, hogy ha simán php-ből kapcsolódok adatbázishoz, akkor kell a set names latin2, ezért beletettem a lekérdezésbe, és tök jó!

Aztán olvasgattam továb és dobtam egy hátast! Milyen finom tranzakció kezelés!

Hálásan köszönöm az ösztönzést, és magamnak a kitartást! :)

s_volenszki
8

Na ja

zila · 2007. Okt. 25. (Cs), 22.57
Hát igen, a DB modul oldalán írja is, hogy túlhaladott lett szegény és helyette van az MDB2...
9

De igazad van!

s_volenszki · 2007. Okt. 25. (Cs), 23.01
Valóban, a $option debug => 2-re mingyárt kiköhögte, hogy a common.php egy könyvtárral beljebb van mint kellene!
Igy hát már ez is működik!

Hálás köszönet!

Szia!
10

Még egy kérdés!

s_volenszki · 2007. Okt. 26. (P), 10.46
Szia!

Lenne még egy kérdésem! Hogyan kell ezeket a könyvtárakat összemásolni? Van valahol egy full directory list?
Én már másoltam mindent mindenhova! :)

Igazábol helyem van a szerveren, le lehet valahonnan tölteni a komplet include könyvtárat? És akkor nem kellene variálni, hogy mit hova!

s_volenszki
11

A pear egy helyre telepít...

zila · 2007. Okt. 26. (P), 14.05
Nem biztos, hogy jól értelek... Ha a pear saját telepítőjével telepítesz akkor az mindent e megfelelő helyre pakol. A pear config-show megmutatja, hogy hová...

A következő beállítások a relevánsak:
gimli:~ zila$ pear config-show
Configuration (channel pear.php.net):
=====================================
...
PHP extension directory        ext_dir          /Applications/MAMP/bin/php5/lib/php/extensions/no-debug-non-zts-20050922
PEAR directory                 php_dir          /Applications/MAMP/bin/php5/lib/php
...
PEAR data directory            data_dir         /Applications/MAMP/bin/php5/lib/php/data
...
PEAR test directory            test_dir         /Applications/MAMP/bin/php5/lib/php/test
A php_dir könyvtár tartalmát kell feltöltened, az ezen belüli könyvtárstruktúrát meg kell tartanod!
12

Én konkrétan a csomagokra gondoltam!

s_volenszki · 2007. Okt. 26. (P), 18.28
Mivel nekem nincs parancssori hozzáférésem, ezért ftp-n tudom feltölteni a csomagokat.

Elkezdtem úgy feltölteni, hogy a letöltött és kicsomagolt csomag könyvtárából (pl. MDB-1.3.0/) feltöltöttem mindent a www/include/ könyvtáramba.

Ezek után a Mail_Queue-1.2.1/ tartalmát is feltöltöttem az include könyvtárba és így tovább...

Csak voltak függőségi problémák, mert az ilyen módob feltöltött csomagok közül, ha a Queue-t használom, akkor a MDB.php-t a Queue/Container/ könyvtárban keresi, nem a DBM könyvtárban! Miután bemásoltam jó lett.

Ezért nem értettem, hogyan is ál össze a csomagok könyvtárainak struktúrája!

Számomra az lett volna a leg egyszerűbb, ha valahonnan le tudnék tölteni egy ilyen include könyvtárat minden csomaggal a helyén, és azt feltölteném magamnak!

s_volenszki
13

töltsd le magadhoz

zila · 2007. Okt. 26. (P), 21.30
A könyvtárstruktúrát jobb ha megtartod, máskülönben nem fogják megtalálni egymást a modulok. Ezért javasoltam, hogy töltsd le magadhoz a pear csomagokat a pear saját telepítőjével (úgyis kellenek a fejlesztéshez/teszteléshez) majd a saját gépedről a pear eredeti könytárstrukturáját megtartva töltsd fel a szerveredre.