Keresés

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

  • Sk8erPeter

    nagyúr

    válasz zzolika #5375 üzenetére

    Hát igen, JavaScripttel nem igazán fogsz e-mailt küldeni.
    Egy form elküldése hatására szeretnéd elküldeni azt az e-mailt? Vagy hogyan, mi a cél?

    Sk8erPeter

  • Sk8erPeter

    nagyúr

    válasz zzolika #5383 üzenetére

    Ha úgyis újrafrissül az oldal, akkor indokolatlan, hogy JavaScripttel akarod elküldözgetni az adatokat. Bár kérdés, hogy egyáltalán hogy frissíted. A felhasználó mondjuk megnyom egy gombot, és így eljut egy másik oldalra?
    Ha a locationt változtatod, vagy window.open-nel nyitsz egy oldalt, nem csoda, hogy másik lapot is fogsz látni.
    Még mindenféle kimenet megjelenítése előtt megvizsgálhatnád PHP-vel az adott oldalon, hogy be van-e állítva a form adott mezője ( isset($_POST['xyz']) ), és attól függően küldenél e-mailt vagy sem.
    Erről bővebben a PHP topicban.

    Sk8erPeter

  • Sk8erPeter

    nagyúr

    válasz zzolika #5387 üzenetére

    Szerintem Te nem Java-ra, hanem JavaScriptre gondolsz, nagyon nem ugyanaz a kettő.

    Vegyük azt, hogy van egy formod.
    Legegyszerűbb eset:
    Pl.:
    <form action="" method="post">
    <input name="blabla" type="text" />
    <input type="submit" name="op" id="edit-submit" value="Save" class="form-submit" />
    </form>

    Felhasználó beír valamit a "blabla" textmezőbe, megnyomja a Save gombot, az üres action miatt a form adatai ugyanerre az oldalra fognak elmenni, nem kell a JavaScript.
    Legyen a fájl neve itt most index.php, ebben van a form is.
    PHP-s feldolgozás ugyanitt, az index.php-ben (fontos a PHP-s kiterjesztés!) - most direkt a legegyszerűbb esetet veszem, hogy ugyanabban a fájlban dolgozod fel:
    <?php
    function send_mail($from, $to, $subject, $body){
    //.... elküldöd a levelet, ellenőrzöd, sikeres volt-e, ha igen, TRUE-val térsz vissza, ha nem, FALSE-szal
    }

    if(!empty($_POST['blabla']){
    // ... beállítod a változókat
    if( send_mail($from, $to, $subject, $body) ){
    // sikeres volt a levélküldés
    }
    else {
    // nem volt sikeres a levélküldés
    }
    }
    ?>
    <!DOCTYPE ....>
    <html>
    <head>
    ....
    <form action="" method="post">
    <input name="blabla" type="text" />
    <input type="submit" name="op" id="edit-submit" value="Save" class="form-submit" />
    </form>
    </head>
    <body>
    </body>
    </html>

    Most ez szándékosan nagyon egyszerű példa volt, de hátha ebből már ki tudsz indulni.
    A konkrétabb PHP-s dolgok már a PHP topicba tartoznak.
    Arra viszont figyelj, hogy ebben az esetben minden egyes termék-kiválasztásnál el fog menni egy e-mail, nem tudom, az jó lesz-e neked, nem lenne-e inkább jobb logolni egy adatbázisban (persze az már haladóbb dolog).

    Sk8erPeter

  • Sk8erPeter

    nagyúr

    válasz zzolika #5389 üzenetére

    "1302 Ft/MB/hó pluszpénzért engedi a MySQL-t"
    :Y Akkor válts tárhelyet. :D
    Példa: 1, 2.

    Na, ha van az index.php-d, akkor még a HTML-kódok kiíratása előtt betehetnél egy kódrészletet, úgy, hogy az e-mail elküldésére vonatkozó kódot függvénybe teszed!
    Esetleg megmutathatnád, hogy néz ki a mostani kódod a mail_kuld_szamol.php fájlban (persze helyettesítsd blablával a konkrét mailcímeket, stb.).
    A példád alapján:

    <?php
    if( !empty($_POST['szoveg']) ){
    require_once('mail_kuld_szamol.php');

    // .... változók beállítása
    mail_kuldes($kitol, $kinek, $targy, $torzs);
    }

    ?>
    <!DOCTYPE ......>
    <html>
    ......
    </html>

    A lényeg, hogy itt a HTML-kód kiíratása előtt megvizsgálod, létezik-e az adott változó a $_POST tömbben ("szoveg" index alatt), tehát az el lett-e küldve a formmal, ha igen, akkor include-olod a mail_kuld_szamol.php fájlt, így az abban lévő tartalom elérhető lesz, majd a mail_kuldes() függvényt meghívod, amiben a konkrét levélküldés történik. Tehát a háttérben elküldöd végül is a levelet, a felhasználó tudta nélkül. Aztán jöhet a kiíratás.
    A konkrét eddigi kódodat esetleg bemásolhatnád, hogy még egyértelműbb segítséget tudjunk nyújtani. :K

    Sk8erPeter

  • Sk8erPeter

    nagyúr

    válasz zzolika #5393 üzenetére

    Az eleve nem jó, hogy a PHP-kódodat körbeveszik a szokásos HTML-tagek - felesleges, ez háttérben zajló folyamat kell, hogy legyen, mert itt most nem akarsz semmit kiíratni.

    Az eddigi JavaScriptes cuccot is úgy, ahogy van, kihagyhatod, elég, ha ezt rábízod a PHP-re. Az is feleslegesnek tűnik, hogy a kiszámolt értéket egy readonly text mezőbe bemásold (vagy nem tudom, mi a célod ezzel).
    Ez pedig nem jó:
    <SCRIPT LANGUAGE="JavaScript">
    mert a language attribútum régóta deprecated.
    Inkább így:
    <script type="text/javascript">
    De mondom, jelen esetben ezt a JavaScriptes kódot úgy, ahogy van, ki lehet hagyni.

    Pont a lényeget, tehát a radio buttonöket nem másoltad be, de gondolom valami ilyesmi:

    <input type="radio" name="blabla" value="Első" />
    <input type="radio" name="blabla" value="Második" />

    Ezt PHP-oldalról is látod:
    if( isset($_POST['blabla']) ){
    //...
    }

    De most látom, hogy az eddigi formod GET metódussal működik, nem POST-tal, ez nem tudom, esetedben indokolt-e, de ebben az esetben így éred el:

    if( isset($_GET['blabla']) ){
    //...
    }

    A kódodban van egy ilyen: if(isset($uzenet)) , de az $uzenet változó nincs sehol beállítva. Gondolom ehelyett $email_message akart ott szerepelni. (Remélem a register_globals nincs bekapcsolva...)

    Tehát akkor vegyük azt, hogy így néz ki a formod:

    <form method="get" action="">
    <div>
    Első: <input type="radio" name="blabla" value="Első" />
    Második: <input type="radio" name="blabla" value="Második" />
    </div>
    </form>

    (legegyszerűbb példával)

    A mail_kuld_szamol.php fájlodat ez alapján átalakíthatnád így is (ez szintén nem a legszebb, inkább legegyszerűbb megoldás):

    <?php
    function mail_kuld_szamol($selected_value){
    // ha nincs beállítva, vagy üres a változó, akkor egyből visszatérünk
    if( empty($selected_value) ){
    return false;
    }
    $email_to = "cimzett@cimzett.hu";
    $email_subject = "uzenet temaja";

    $price = 0;


    if($selected_value == 'tökömtudja'){
    $price = 123123;
    }
    else{
    $price = 654;
    }

    $email_message = 'Kiválasztott: '.$selected_value.', ár: '.$price;
    $headers = 'From: '.'automata_felado@cimzett.hu'."\r\n".
    'Reply-To: '.'automata_felado'."\r\n" .
    'X-Mailer: PHP/' . phpversion();
    $email_message = str_replace("__","\n",$email_message);

    return @mail($email_to, $email_subject, $email_message, $headers);
    }

    Az, hogy itt nem tettem záró PHP-taget, az teljesen szándékos! Erről bővebb infót olvashatsz a PHP hivatalos oldalán is, ez egy megszokott dolog, ha egy fájlban kizárólag PHP-kódok vannak, és nem akarod, hogy esetleges whitespace-ek gondot okozzanak.

    A kód persze csak példajellegű, de láthatod, hogy PHP-oldalon is kiszámolhatók a szükséges értékek, nem JavaScripttel, ami már csak azért is jó, mert így a felhasználó még a forrásódból sem láthatja, hogy számolod az értékeket (nem mintha nehéz lenne kitalálni, hogyan számolsz nettóból bruttó árat :D). Persze a függvénybe ennél jóval értelmesebb ellenőrzések lennének szükségesek.

    Aztán az index.php-be pl. így:

    <?php
    if(!empty($_GET['blabla'])){
    require_once('mail_kuld_szamol.php');
    mail_kuld_szamol($_GET['blabla']);
    }
    ?>
    <!DOCTYPE ......>
    <html>
    ......
    </html>

    De tényleg átmehetnénk a PHP topicba. :D
    Írd le, ha valamelyik rész nem világos.

    Sk8erPeter

  • Sk8erPeter

    nagyúr

    válasz zzolika #5395 üzenetére

    "A kiszámolt értéket azért rakom egy readonly text mezőbe, hogy a látogató lássa a végleges árat."
    Én úgy vagyok vele, hogy ami kiszámolt érték, és amit a felhasználó úgysem fog tudni módosítani, azt inkább nem readonly űrlapmezőbe rakom, hanem valami egyéb DOM-elembe (<p>, <div>, stb...). Nem is látom értelmét itt szövegmezőbe tenni az árat.

    "Akkor szerinted érdemesebb az egészet átrakni php-be?"
    Persze, ez esetben mindenképp. A felhasználó nem kell, hogy lássa a számolás menetét, ráadásul az általad korábban bemutatott JavaScriptes számolgatós, szöveg-összerakós, majd GET-tel másik fájlnak átadós módszer nagyon csúnya.

    A jobb megközelítés az, hogy amikor a felhasználó kiválasztja a terméket, akkor mint mondod, amúgy is van oldalfrissülés, ekkor PHP-vel lekezelni a kapott adatokat, kiszámolgatni az árat, majd elküldeni az e-mailt - mindezt a háttérben.

    Sk8erPeter

  • Sk8erPeter

    nagyúr

    válasz zzolika #5400 üzenetére

    "2 perc után szétkapcsol"
    Akkor állítsd be úgy az FTP-kliensedet, hogy ezt ne tegye. :)
    Ez TC-nél így néz ki:
    TC+NOOP

    De én FTP-zésre inkább az ingyenes WinSCP-t ajánlanám, több szempontból is jó, pl. ez alapból fenntartja a kapcsolatot.

    "Kicsit macerásabb a php, hogy nem tudom lokálisan azonnal tesztelni"
    Dehogynem tudod.
    Ha Windows-t használsz, engedélyezed az IIS-t, majd Web Platform Installerrel szépen összekattintgatós módszerrel felrakod a PHP-t is.
    Vagy felraksz egy XAMPP-ot.

    A megoldásokat, amiket írtál, felejtsd el, azzal rengeteget fogsz szívni még, pl. a sortörést ilyen módon nem tudod megoldani. Az egészet egyébként is szerveroldalon kéne összerakni. Alapból egyébként nagyon egyszerű, amiket írsz, csak részletesebben kellene ismernünk a kódodat egy picit, és akkor a PHP topicban seperc alatt kész megoldásokat tudnánk neked mutatni (vagy legalábbis egyértelmű rávezetéseket).

    Sk8erPeter

  • Sk8erPeter

    nagyúr

    válasz zzolika #5402 üzenetére

    Szívesen! :K Örülök, ha segítettem, akkor PHP topicban folyt. köv. :D

    Sk8erPeter

  • inf3rno

    nagyúr

    válasz zzolika #17666 üzenetére

    Szedj le egy sablont és írd bele a tartalmat. Nem egy nagy kunszt a HTML, körülbelül 5 perc alatt meg tudod tanulni, ami neked kell. Szerintem tök felesleges ehhez vizuális szerkesztő. Mondjuk ha utánam dobnák, akkor sem használnék soha.

    Buliban hasznos! =]

  • Prog-Szerv

    csendes tag

    válasz zzolika #17666 üzenetére

    Hát igazából mondanám, hogy wordpress vagy joomla de az sem 10 perc. Programozói tudás nélkül is össze lehet dobni benne weboldalakat de ezt is külön meg kell tanulni, és szerintem egyszerűbb és hasznosabb ha akkor inkább már megtanulsz programozni.... ahogy inferno is írta a html-t nem nehéz megtanulni, szeritnem a css-t sem. Ennyi elég egy statikus oldalhoz, sőt még CSS sem kell ha mondjuk a Bootstrap-pel dolgozol: https://getbootstrap.com/
    Én ezt használom a frontend részhez. Vannak fent példák is, amik egy az egyben kimásolhatsz és gyakorolhatsz velük. Van még esetleg iylen amit mondasz a WIX és társai de azoknak szerintem nincs ingyenes része. És a végére ugye a kérdés az, hogy attól függ, mire kell ez neked? Csak hobbiból elütnéd vele az időt? Vagy weboldalkészítést tanulnál? Esetleg saját weboldalt csinálnál magadnak? Ne adj Isten másnak csinálnál weboldalt? Utóbbi esetekben azt javaslom vagy tanuld meg rendesen mielőtt belevágsz (készülj fel a véget nem érő tanulásra....én 2012-óta csinálom, tanulom, és minden nap tanulok újat és újat) vagy bízz meg valakit. Én személy szerint nem szeretem az ilyen joomla, wordpress és egyéb keretrendszereket, nekem saját keretrendszerem van. Sajnos a joomla, wordpress és társai mindenről szólnak általában csak nem az optimalizálásról, ezért nem kedvelem....és lehet ez most ki fogja verni a biztosítékot de nem is tartom weboldalkészítőnek, web-programozónak meg pláne azokat akik ilyesmivel bütykölgetnek oldalakat, amik aztán 10-15 mádosperces betöltődéssel ilyen 30%-os eredményt kapnak a Lighthouse performance tesztjén....
    Szóval mi a cél? :)

  • CactuS

    Arcképgyáros

    válasz zzolika #17666 üzenetére

    Publii? WYSIWYG módja is van. 10 perc azért lehet kevés lesz.

    ZsLaci: Nekünk Joomla alatt fut a céges weboldal - még -, mégis 96+ pontos volt az oldal a google pagespeed teszjén (akkoriban, amikor elkészült). ;) Lehet normálisan is használni ezeket, csak akkor van a gond, amikor egy Google Tag Manager kódhoz is külön plugint tesz fel a user, majd utána az egészet szépen magára hagyja és sosem frissíti.

    Have you ever noticed that anybody driving slower than you is an idiot, and anyone going faster than you is a maniac? George Carlin

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