- DOOM: The Dark Ages címmel jön a sorozat új része?
- Stellar Blade
- Cyberpunk 2077
- Polgári repülőgép-szimulátorok
- Wuthering Waves
- Battlefield 2042
- Ghost of Tsushima technikai teszt
- Arena Breakout: Infinite
- Konzolokról KULTURÁLT módon
- Fortnite - Battle Royale & Save the World (PC, XO, PS4, Switch, Mobil)
Új hozzászólás Aktív témák
-
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"
Akkor válts tárhelyet.
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.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 ). 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.
Í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+NOOPDe é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
-
inf3rno
nagyúr
-
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
- DOOM: The Dark Ages címmel jön a sorozat új része?
- Milyen TV-t vegyek?
- Redmi Note 13 Pro 5G - nem százas, kétszázas!
- Router gondok
- Víz- gáz- és fűtésszerelés
- NVIDIA GeForce RTX 4060 / 4070 S/Ti/TiS (AD104/103)
- ubyegon2: Airfryer XL XXL forrólevegős sütő gyakorlati tanácsok, ötletek, receptek
- Gaming notebook topik
- Okos Otthon / Smart Home
- BMW topik
- További aktív témák...
- - MAKULÁTLAN - ASUS ZENBOOK PRO 16X 4K OLED - i9-12900H, RTX 3060, 32GB, 1TB, Win11PRO, 3 ÉV GARI
- ÚJ ASUS ROG ZEPHYRUS G16 - 16" WQXGA 240Hz - i9-13900H - 16GB - 1TB - RTX 4050 - Win10 - Garancia
- Dell Latitude 7490,14",FHD,i5-8350U,16GB DDR4,256GB SSD,WIN10,TOUCH
- HP EliteBook 645 G10 (817M3EA) - ÚJ 14" üzleti notebook - Ryzen 5 PRO, W11 pro, WWAN
- 3 db ICERIVER KAS KS0 PRO
Állásajánlatok
Cég: Ozeki Kft.
Város: Debrecen
Cég: Ozeki Kft.
Város: Debrecen