Keresés

Új hozzászólás Aktív témák

  • adam_

    senior tag

    válasz Sk8erPeter #17120 üzenetére

    Itt reagálnék a html-es topicban adott válaszodra, amit mégegyszer köszönök.

    A PHPMailert lokálisan is tudod tesztelni, érdemes először így a postafiókod tömködése helyett, nyilvánvalóan kell hozzá egyrészt webszerver (teljesen mindegy, hogy ez IIS vagy Apache vagy más), de erre amúgy is szükséged van a fejlesztésekhez,

    Ehhez feltelepítettem a XAMPP-et, amivel létrehozok egy Apache szervert.

    másrészt kell hozzá SMTP-szerver is, de erre jó egy "fake SMTP server" is, pölö:
    http://smtp4dev.codeplex.com/
    https://nilhcem.github.io/FakeSMTP/

    Köszi, kipróbálom. :K

    Ehhez persze konfigurálnod kell a php.ini-t is.

    Ezt hogyan is kellene? :B

    A letöltés és kibontás után a szükséges helyen pl. require_once segítségével behúzod a PHPMailer működéséhez szükséges fájlokat (amiben az osztály található), majd használod a kódot.

    Nem elég ha pl. a honlapom gyökérkönyvtárába kicsomagolom a githubról letöltött phpmailer.zipet, majd pl. az index.html oldalának a legtetejére behúzom az PHPMailer example fájlt php tagek közé, és ott szépen módosítgatom? Vagy erre mindenképp hozzak létre egy külön php fájlt?

    Hogy hogyan tudod kiszedni az űrlapból az adatokat, az az alapvető PHP-ismeretek témakörébe tartozik, szóval ennek előbb nézz utána, aztán a másik topicban beszéljük meg, miután próbálkoztál vele.
    Ez alapján próbálkozom perpill..

    Most jött el az ideje, hogy a PHP-val is foglalkozzam, ezért ha hülyeséget is kérdeztem volna az imént, előre is elnézést. :) Viszont a levelezést etc. kontaktformhoz mindenképp kell a honlapomnál, más út nincs.

    Köszönöm a válaszokat,

    Ádám

    [ Szerkesztve ]

  • adam_

    senior tag

    válasz DNReNTi #17123 üzenetére

    Fake SMTP-nek én a PaperCut-ot használom, korábban már linkeltem a topikban, amilyen egyszerű annyira király.

    Köszi mentettem a linket.

    Először is: amíg az index.html, az HTML és nem PHP - tehát index.php - addig teljesen okafogyott bármit belehúzni. Magyarul, most, hogy webszervert használsz és PHP-t tanulsz, itt az ideje elfelejteni a html kiterjesztést.

    Tehát lementettem az eddig szerkesztett index.html fájlomat index.php-ra, és az összes mappájával együtt bemásoltam a xampp/htdocs könyvtárjába. XAMPP fut (Apache, MYSQL), viszont tesztelésképpen beírtam a header részbe példaként:

    <?php
    print "Hello world!"; ?>

    Viszont inspektorral ezt látom:

    Valami itt nekem nem kóser, és egyáltalán nem írja ki a header részbe a szöveget sem.

    Kérdésem, a XAMPP nem jó, vagy én bénáztam el valamit?

    Legelsőnek ugye a PHPMailer-t akartam meghívni, mondjuk a <!DOCTYPE html> tag elé, viszont annak kódját egy az egybe kivetítette a honlapra, mintha egyszerű szöveg lenne. :U

  • adam_

    senior tag

    válasz DNReNTi #17125 üzenetére

    Én bénáztam el, a XAMPP teljesen jól működik, viszont rosszul hivatkozhattam le az oldal címét, és az lehetett a gond, localhost/project/test.php. ilyen módon már tökéletesen megy. Köszi!

  • adam_

    senior tag

    válasz DNReNTi #17125 üzenetére

    Készítettem egy ilyen formot, (ennek az aljába is van egy kis php:
    <?php if(!empty($message)) echo $message; ?> ...és ugyanebben a php fájlban a legfelülre beírtam ezt az általam kreált php kódot a !DOCTYPE HTML> elé.

    <?php
    if(isset($_POST['submit']))
    {

    $message=
    'Name: '.$_POST['name'].'<br />
    Email '.$_POST['email'].'<br />
    Betreff '.$_POST['betreff'].'<br />
    Nachricht: '.$_POST['nachricht'].'
    ';
    require 'phpmailer/PHPMailerAutoload.php';

    $mail = new PHPMailer;

    $mail->isSMTP();
    $mail->SMTPAuth = true;
    $mail->SMTPSecure = "ssl";
    $mail->Host = "smtp.live.com";
    $mail->Port = 465;
    $mail->Enchoding = '7-bit';

    $mail->Username = "emailcímem";
    $mail->Password = "jelszavam";

    $mail->SetFrom($_POST['email'], $_POST['name'], $_POST['betreff'], $_POST['nachricht']);
    $mail->addReplyTo('info@example.com', 'Information');
    $mail->Subject = "New Contact Form Enquiry";
    $mail->MsgHTML($message);

    $mail->AddAddress("emailcímem", "nevem");
    $result = $mail->Send();
    $message = $result ? 'Successfully Sent!' : 'Sending Failed';
    unset($mail);
    }
    ?>

    A form validálását is majd egybekötöm a submit button lenyomásával (ezt majd később JS-el megoldom), viszont tesztelésképpen ráirányítottam a scriptet az egyik email címemre, és amikor kitöltöm a formot és rámegyek a submit gomba, kb. 5mp-ig tölt a böngészőm, látszólag mintha csinálna valamit (alul "Waiting for the localhost..." felirattal), majd visszaugrik az oldal elejére. Semmilyen egyéb üzenetet nem kapok vissza. .. És sajnos nem küldi el a tartalmat a megadott emailre sem.

    Hol lehet a hiba a gépezetben? Természetesen Apache fut szépen phpmailer mappa bemásolva a honlapom gyökérkönyvtárjaihoz, require 'phpmailer/PHPMailerAutoload.php'; -el szépen ráirányítva az autoloader.

    Előre is köszönöm a válaszokat!

    Ádám

    [ Szerkesztve ]

  • adam_

    senior tag

    válasz Sk8erPeter #17128 üzenetére

    "Ez alapján próbálkozom perpill.."
    Ez nagyon durva. :DDD És te ezt képes vagy hallgatni anélkül, hogy 1 perc után inkább le akarnád tépni a füledet? :D (én inkább azt választottam, hogy kilőttem a francba, egyébként még egy tákolmány is, amit összehoz)

    Engem is idegesített ;] , de "konkrétabb példa" csak ez volt, amit találtam. A kódhoz nem értek, próbáltam másolni párhuzamosan, meg értelmezni, most pedig működésre szeretném bírni.

    Ezt úgy illik, hogy a feldolgozás külön fájlban történik, nem ugyanott, ahol a megjelenítéshez tartozó dolgok.

    Tehát pl. hozzak létre egy contatform.php és külön csak abba legyen a kontaktformhoz tartozó php kód?
    És ezt "hogyan kössem össze" az index.php-val, nem kell úgy mint az external JS-nél, CSS-nél..?

    A validálást először SZERVEROLDALON írjuk meg, és csak UTÁNA kliensoldalon! A szerveroldali kódodban egy darab ellenőrzés sincsen, amíg ez nincs kész, addig tovább se lépj, először ezt oldd meg.

    Pl ez alapján megírhatom a validáláshoz szükséges php kódot mondjuk bele a kontaktformhoz tartozó php kódban?

    A PHP-s hibák kijelzése be van állítva a php.ini-ben a fejlesztői gépen? Fejlesztés során mindig a legtöbb hibát kiíró hibabeállítás legyen meg, élesben kell csak elrejteni a hibákat, és azokat inkább naplózni.

    Itt találtam egy pár funkciót ami a hibakijelzésekre vonatkozik, igazából vakvilágban tapogatódzom, segítenél, hogy pontosan mely fájlokat kell a php.ini-ben bekapcsolni ahhoz, hogy kijelezze a php-s hibákat is? Majd ezt követően a debuggolás történhet pl. etc. Firebuggal, konzolon keresztül? (Perpill ugye ott nem ír ki semmit sem).

    Előre is köszönöm a válaszodat,

    Ádám

    [ Szerkesztve ]

  • adam_

    senior tag

    válasz Sk8erPeter #17130 üzenetére

    Köszönöm szépen a válaszod! Bevallom őszintén, hogy amit a hibajelzés után írsz megoldásként, még abba igencsak beletörne a bicskám. Szerintem elsőkörben végigrágom magam ezen az oktatóanyagon, ha már a véháromszkúlszon zagyvaságok vannak, itt csak jobbak lehetnek, majd utána állok neki ezzel foglalkozni.

    Sajnos még csak nagyon az alapok vannak meg PHP-ban, bár ha később Frontend pozicióban gondolkozom, úgy vélem, egy ilyen validálás megoldás szerver oldalon elég alap skillekhez tartozik ugye? Szóval ezt amúgy sem árt, ha tudja az ember. Vagy hol az a határ, "amit még jó ha tud" az ember PHP-s alapskillként, ha Frontendbe képzeli el a jövőjét? És mi az ami már általánosságban a Backendes kollégákra vár?

  • adam_

    senior tag

    válasz DNReNTi #17132 üzenetére

    Sziasztok! Ma volt időm foglalkozni újfent a kontaktformommalk, a PHP-val való elküldésével. JSFiddleben bemásoltam a html form kódját, és a php kódokat is.. http://jsfiddle.net/azxatboa/

    Egy tutorial alapján létrehoztam egy security.php , ezenkívül mivel az egész oldal, ergo '1 oldalon van - onepagedesign', ezért az index.php elejére és a végére is illesztettem be erre vonatkozó PHP kódrészleteket, valamint külön létrehoztam contact.php fájlt is, amibe a validálás is benne van, és integrálva van a PHPMailer funkciónalitása. Ezeket mind mellékelem a JSFiddle példában.

    Validálás működik, viszont különböző SMTP-vel (privátommal, és fake-kel) is kipróbáltam, viszont mindig amikor a küldésre nyomok, tölt, és a végén "Sorry, could not send email. Try again later";". Ebből gondolom, hogy valahol a hiba a PHPMailer részen belül van, mivel nem a legszélső else ágban található error msg-t kapom vissza, miszerint "Something went wrong".

    Valamint egy kis apróság még. A $m - > Subject = 'Contact'; helyett hogyan tudnám belőni, hogy a betreff, etc. tárgy mezőt küldje el mailben, a sima 'Contact' felirat helyett? De ez tényleg apróság, elsőnek jó lenne, ha működne a küldés első körben.

    Kérlek megnéznétek, hogy hol lehet a hiba, miszerint a validálás után miért nem küldi el a formulárt a címre?

    Nagyon szépen köszönöm,

    Ádám

    [ Szerkesztve ]

  • adam_

    senior tag

    válasz DNReNTi #17176 üzenetére

    Ezt csak így a JSFiddle formázta át valamiért, nekem a valós phpban nincs sehol se szóköz az általad említett résznél.. :U De azért köszönöm.

  • adam_

    senior tag

    válasz fordfairlane #17180 üzenetére

    Port: 25 or 465 or 2525 mailtrapnél.
    Hotmailnél amikor teszteltem 25ös porttal szintén nem ment.

Új hozzászólás Aktív témák