Segítség php-írásban - űrlap küldése emailben
Sziasztok!
Nem igazán vagyok otthon a php-ban. Eddig már sikerült összehoznom egy küldő űrlapot, és egy jegyzettömbben megcsinálni hozzá a php-t.
Most viszont egy bonyolultabbra lenn szükségem. Abban kérném a segítségetek, hogy ha tudjátok, írjátok meg nekem az alábbi űrlapnak a php kódját. azt szeretném, ha el tudnám küldetni a saját e-mail címemre, és egy külön php fájlt szeretnék létrehozni.
Nagyon köszönöm a segítségetek!
Íme a HTML:
■ Nem igazán vagyok otthon a php-ban. Eddig már sikerült összehoznom egy küldő űrlapot, és egy jegyzettömbben megcsinálni hozzá a php-t.
Most viszont egy bonyolultabbra lenn szükségem. Abban kérném a segítségetek, hogy ha tudjátok, írjátok meg nekem az alábbi űrlapnak a php kódját. azt szeretném, ha el tudnám küldetni a saját e-mail címemre, és egy külön php fájlt szeretnék létrehozni.
Nagyon köszönöm a segítségetek!
Íme a HTML:
<html>
<head>
</head>
<body
style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);"
leftmargin="0" topmargin="0" alink="#000099"
link="#c4341e" vlink="#990099">
<center>
<div style="text-align: left;"><br>
</div>
<table
style="text-align: left; width: 400px;" border="0"
cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td
style="width: 100px; font-weight: bold;">Neme:</td>
<td style="width: 100px;"><input
name="Nem" value="ferfi" type="radio">Férfi</td>
<td style="width: 100px;"><input
name="Nem" value="No" type="radio"> Nő</td>
</tr>
</tbody>
</table>
<table
style="text-align: left; width: 400px;" border="0"
cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td
style="width: 100px; font-weight: bold;">Életkor:</td>
<td><input
name="eletkor" value="18ig" type="radio"> 18
alatt</td>
<td><input
name="eletkor" value="40ig" type="radio"> 18-40</td>
<td><input
name="eletkor" value="40plusz" type="radio"> 40
felett</td>
</tr>
</tbody>
</table>
<table
style="text-align: left; width: 400px;" border="0"
cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td><span
style="font-weight: bold;">Lakhely: </span>
</td>
<td style="text-align: center;"><input
maxlength="100" size="40" name="lakhely"
value="település"></td>
</tr>
<tr>
<td><span
style="font-weight: bold;">E-mail:</span></td>
<td style="text-align: center;"><input
size="40" name="email"></td>
</tr>
</tbody>
</table>
<br>
<hr style="width: 50%; height: 2px;"><big><span
style="font-weight: bold;">Hol
találkozott velünk/hallott rólunk?</span></big><br>
<br>
<table
style="text-align: left; width: 400px;" border="0"
cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td><input
name="ismeros" value="ismeros" type="checkbox">ismerős
által</td>
<td><input
name="kereso" value="kereso" type="checkbox">internetes
kereső(pl.google)</td>
<td><input
name="facebook" value="facebook" type="checkbox">facebook</td>
</tr>
</tbody>
</table>
<table
style="text-align: left; width: 400px;" border="0"
cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td><input
name="expressz" value="expressz" type="checkbox">expressz.hu</td>
<td><input
name="jofogas" value="jofogas" type="checkbox">jofogas.hu</td>
<td><input
name="startapro" value="startapro" type="checkbox">startapro.hu</td>
</tr>
</tbody>
</table>
<br>
<table
style="text-align: left; width: 550px;" border="0"
cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td><input
name="egyeb" type="checkbox">egyéb
hirdető oldal: <input size="15"
name="hirdeto" value="melyik?"></td>
<td><input
name="egyeblap" value="egyeblap" type="checkbox">egyéb
lap.hu oldal: <input size="15"
name="laphu" value="melyik?"></td>
</tr>
</tbody>
</table>
<br>
<hr style="width: 50%; height: 2px;">
<table style="text-align: left; width: 55%;"
border="0" cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td
style="text-align: center; font-weight: bold;">Ismerte
korábban az Iplikátort?</td>
<td
style="text-align: center; font-weight: bold;"> Rendelt
már tőlünk?</td>
<td style="text-align: right;"><span
style="font-weight: bold;">Szívesen
ajánlaná másnak</span>
termékeinket?</td>
</tr>
<tr>
<td style="text-align: center;"><input
name="ismerte" value="igen" type="radio">igen
<input name="ismerte"
value="nem" type="radio">nem</td>
<td style="text-align: center;"><input
name="rendelt" value="igen" type="radio">igen
<input name="rendelt"
value="nem" type="radio">nem</td>
<td style="text-align: center;"><input
name="ajanlana" value="igen" type="radio">igen
<input name="ajanlana"
value="nem" type="radio">nem</td>
</tr>
</tbody>
</table>
<br>
<big><span
style="font-weight: bold;">Kérem
válasszon az
alábbiak
közül:</span></big><br>
<br>
<table style="text-align: left; width: 50%;"
border="1" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td>Mennyire
elégedett az oldal kinézetével?</td>
<td>Mennyire
találta hasznosnak az információkat?</td>
<td>Hogyan
értékeli árainkat?</td>
</tr>
<tr>
<td><input
name="oldal" value="5" type="radio">Nagyon
tetszik</td>
<td><input
name="hasznos" value="5" type="radio">Nagyon
hasznosak, átlátható</td>
<td><input
name="ar" value="1" type="radio">Túl
alacsonak</td>
</tr>
<tr>
<td><input
name="oldal" value="4" type="radio">Jó</td>
<td><input
name="hasznos" value="4" type="radio">Hasznos,
de
bonyolult</td>
<td><input
name="ar" value="2" type="radio">Többet
érne</td>
</tr>
<tr>
<td><input
name="oldal" value="3" type="radio">Rendben
van</td>
<td><input
name="hasznos" value="3" type="radio">Hiányos</td>
<td><input
name="ar" value="3" type="radio">Megfelelő</td>
</tr>
<tr>
<td><input
name="oldal" value="2" type="radio">Van
mit
javítani</td>
<td><input
name="hasznos" value="2" type="radio">Nem
vettem
hasznát</td>
<td><input
name="ar" value="4" type="radio">Kissé
drága, de megfizethető</td>
</tr>
<tr>
<td><input
name="oldal" value="1" type="radio">Nem
tetszik</td>
<td><input
name="hasznos" value="1" type="radio">Nem
tudom</td>
<td><input
name="ar" value="5" type="radio">Túl
drága</td>
</tr>
</tbody>
</table>
<br>
<br>
<big><span
style="font-weight: bold;">Jelölje be,
melyik
kedvezményt szeretné igénybe venni:<br>
<br>
</span></big>
<table style="text-align: left; width: 55%;"
border="1" cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td>
<table
style="width: 290px; text-align: left; margin-left: auto; margin-right: auto;"
border="0" cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td style="text-align: center;"><input
name="akcio1" value="igen" type="checkbox"></td>
</tr>
<tr align="center">
<td><input
name="akcio2" value="igen" type="checkbox"></td>
</tr>
<tr align="center">
<td><input
name="akcio3" value="igen" type="checkbox"></td>
</tr>
</tbody>
</table>
</td>
<td>
<table
style="width: 290px; text-align: left; margin-left: auto; margin-right: auto;"
border="1" cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td>Megrendelő adatai:</td>
</tr>
</tbody>
</table>
<table
style="width: 290px; text-align: left; margin-left: auto; margin-right: auto;"
border="1" cellpadding="2" cellspacing="5">
<tbody>
<tr>
<td>Név:</td>
<td><input
size="30" name="nev" value="megrendelő neve"></td>
</tr>
<tr>
<td>Cím:</td>
<td><input
size="30" name="cim" value="megrendelő címe"></td>
</tr>
<tr>
<td>Telefon:</td>
<td>+36 <input
maxlength="11" size="25" name="telefon"></td>
</tr>
<tr>
<td>E-mail</td>
<td><input
size="30" name="email"></td>
</tr>
</tbody>
</table>
*megrendelő adatainak kitöltése kötelező!<br>
</td>
</tr>
</tbody>
</table>
<br>
<span style="font-weight: bold;">Írja
meg
véleményét az oldallal kapcsolatban</span><br
style="font-weight: bold;">
<span style="font-weight: bold;">Mi
hiányzik? Min
változtatna?</span><br>
<textarea cols="50" rows="6"
name="velemeny"></textarea><br>
<br>
<input name="hirlevel" value="igen"
type="checkbox"> <span
style="font-weight: bold;">feliratkozom a
hírlevélre.
/Alkalmankénti levél friss
akciókról,
változásokról/</span><br>
<br>
<input color="red" name="submit"
value="Adatok elküldése" type="submit">
<input name="Elküld"
value="Törlés" type="reset"><br>
<img src="images/vonal2.gif"><br>
</center>
</body>
</html>
Ez inkább állás rovat. Ezek a
igazad van
Igazából nekem a rádio gombbal van gondom. Nem tudom hogyan írjam meg a php-t mert a parancsokat nem tudom hozzá. ha ebben tud valaki segíteni, már fél siker.
Egy külön php fájlt hozok létre jegyzettömbből. Eddig jól csinálom? :) A szöveges mezők változóit ki tudom írni, csak a checkboxhoz és a radio buttonhoz kellene kód.
Tehát lényegében ennyi lenne a segítség szükségem. Ha lehetne, konkrét, ideillő példával.
Nagyon köszönöm, és elnézést a kellemetlenségért.
de ha
ha nem, hát beérem a példával is :)
PHP alapok (php kézikönyv).
köszönöm
Ha lehetne konkrét példát/választ, megköszönném!
Enélkül nem fogod megérteni a
próbáljuk meg...
Egyszerű űrlap: egyetlen szöveges input:
Lássuk a feldolg.php-t: a szöveges input elemnek van egy "neve", ez az egyedi azonosító, a name="valami", erre tudsz hivatkozni.
pl: az előzőben: ha a "nick"-nevű text típusú input value-jét átírnád mondjuk:
akkor eleve be lenne írva, hogy Józsi, a gombra kattintással pedig a Józsi karakterlánc kerülne a $nev változóba..
A radio és a checkbox:
előző példa kibővítve egy "Nemet" választó és egy kérek hírlevelet kérdéssel.
A rádiógombok: minden variációnak ugyanaz szerepel a name-tagjában. És adva van mindegyikhez egy egyedi, egymástól különböző value-érték.
A checkbox: ha pl kettő lenne az űrlapon: mindegyiknek egyedi neve van, és általában egyedi value értéke.
A feldolg.php
Az elvet úgy mondanám, hogy: "a name-re hivatkozunk, és a value-t kapjuk"
Az értékadás után, a változók tartalma:
$nev = //amit beleírtunk a 'dobozba'
$sex = //ha a férfit ikszeltük be, akkor a a hozzá tartozó value-t kikeresve láthatjuk, hogy $sex = "pasi"; ha a nőt, akkor $sex = "hölgy";
$hirlevel = //ha beikszeltük, akkor $hirlevel = "előfizet"; ha nem ikszeltük be, akkor semmi.
Remélem, a példa helyes, és érthető...
Nagyszerű
Tehát hogyha csinálok egy komplett űrlapot, pl egy kérdőívet, akkor utána egy külön szöveges fájlba megcsinálom a feldolgoz.php-t?!
Akkor már csak annyi segítség kellene, hogy egy rész a php végére, ami hogyha rányomnak a küldésre, az elküldi nekem a kitöltött kérdőív adatait.
Valamint jó lenne, ha utána kapnának egy üzenetet, pl Köszönjük hogy kitöltötte a kérdőívet. És egy vissza a kezdőlapra gomb.
De az is elég ha a küldés gomb megnyomása után egyből vissza dob a honlap kezdőlapjára.
Ez hogy nézne ki?
isset($_POST['submit'])
isset($_POST['submit'])
-tal ellenőrzöd, és ha true, akkor elküldték, tehát kiírathatod a kitöltés megköszönését, és elrejtheted az űrlapot (ha egy fájlban van a feldolgozó és az űrlapmegjelenítő kód). Ilyenkor elégif (isset($_POST['submit'])) {...}
formában használni, nem szükséges a==true
.A levélküldős megoldásra már Petee kolléga említette a mail() függvényt, azt tudod tanulmányozni.
Az azért nem olyan
- Enter leütéssel olyan űrlapmezőn ahol az Enternek nincs feladata (jelenlegi Firefox, Opera, Chrome elküldi az első submit gombot, de valamelyik régebbi változata nem tette)
- submit() metódus hívással (Firefox, Opera, Chrome nem küld submit gombot)
(Ha kimaradt valami megköszönném ha valaki pótolná.)Személy szerint én a metódust szoktam vizsgálni, feltéve, hogy POSTot használok:
Egyszerűbb, ha más
Google...
De had segítsek
Rögtön a legelső találat kielégíti minden igényedet szerintem.
hasznos
Gyorsan átfutottam és majd még átnézem, de olyat nem találtam, hogy a submit gombra kattintva elküldje nekem az eredményt az e-mail címemre.
Egy másik kérdés: Mindegy, hogy egy különálló php fájlt hozok létre, vagy pedig beillesztem a html-be/elé?
Köszönöm!
Én inkább egybe
mail()
Az űrlaptól kapott változókat már csak szépen át kell adni ennek a függvénynek és már küldi is a mailt.
Kódot nem írok, az oldalon van számtalan példa erre is.
"És egy vissza a kezdőlapra gomb."
Amennyiben ez az információ előtted ismeretlen volt, akkor valószínűleg nem kéne még üzleti célú honlapokat készítened. (az más kérdés, hogy -ha jól tudom- valamikor az ezredforduló táján már elavultnak nevezték a html table elem, mint pozicionáló felhasználását...)
Őszintén szólva, nem tudom, nem vagyok régi felhasználó ezen az oldalon, szóval fogalmam sincs, mi itt a "módi", de valahogy nincs kedvem megcsinálni helyetted a munkádat!
1.) ha saját cég: ne szenvedj vele, megéri alkalmazni valakit a feladatra.
2.) ha ez a munkád, tehát pénzért elvállaltad az oldalt, nos, akkor ez emberfüggő, de szerintem lehetne benned annyi gerinc, hogy szólsz a megbízódnak, hogy "bocsi, kevés hozzá a tudásom".
Ugyanis, a jelenlegi produktumod alapján úgy ítélem meg [bár nem feltétlenül mérvadó, hogy mit mondok], hogy ebből így csak egy közepesen összetákolt, hírből sem szabványkövető oldal lesz..
Na, de hogy valami építőt is mondjak: levelet küldeni a php mail() függvényével lehet. Vagy itt egy cikk innét, a weblaborról
Saját cég
A jelenleg összetákolt honlapom pedig: Iplikator.hu
Köszönöm, aki segített!
Egy-két tipp a jobbá
- Times New Roman betűtípus csak nagyon kevés weboldalon és design-on mutat jól. Itt pl. nem
- az Arial még elmegy, de a kettőt pláne nem érdemes keverni. (nyilván a tipográfiai szabályok sokkal szofisztikáltabbak, én most csak pár specifikusan erre a weboldalra vonatkozó dolgot emelek ki)
- a halvány képeken alig látszik a szöveg
- a beszúrt képeknek mindegyiknek valamilyen más kerete van (hol kerekített, hol halványított, hol mindkettő, hol meg valami pontozott vonalak)
- akcio.html nem működik
Egyébként erre a célra nyilvánvalóan egy webshop lenne a legjobb eszköz.
Próbálj meg telepíteni egy
Nekem az a véleményem az
Én még nem olvastam olyat ebben a threadben, hogy pénzes lenne a dolog, nem tudom Te miből vontad le a következtetést.
Minden esetre a kérdező messze példát mutat azok előtt, akik már mondjuk hónapok óta itt vannak, és a stílusuk nem éri el az elégségest sem.
Így szerintem abszolút nem érdemes támadóan fellépni az ilyenek ellen, mert akkor tényleg az jön le a külvilág felé, hogy milyen bunkók itt a kezdőkkel (függetlenül a kérdező hozzáállástól; mert az elismerem, hogy sajnos vannak itt olyanok, akiknek nem nagyon engednék topicot nyitni).
Így - ha érdemi tanácsot nem is fűztem a threadhez - én kérnék elnézést.
Na de mégis (egy nagyon primitív megoldás, ha csak neked kell a mail):
$level = print_r($_POST,
Hopp tényleg. Olyan régen
Nagyon köszönöm!
Ma sokat tanultam, és egészítettem ki a meglévő információimat.
Köszi a hasznos jótanácsokat, ilyenekre szükségem is lenne, csak még nem kérdeztem senkit, de te most megválaszoltad nekem.
az akciok.html még nincs kész, azért nem működik.
A betűtípusokat pedig átnézem és keresek hozzávalót.
A képek különbözőek, ez tény, próbáltam tartalomhoz illően igazítani őket.
Valamint ha már így megnézted, nincs ötleted, miért nem működik rendesen IE-el? Nemtudom ez mekkora hátrány, és a "weboldal megtekintése Firefox, vagy Chrome böngészővel ajánlott" felirat "kiküszöbölné" a hibát?!
De igazából ez nem idevaló kérdés, tehát nem várok rá választ :)
Viszont ötleteket, kritikákat szívesen fogadok!
Mégegyszer köszi mindent!
A következtetést
Az álláspontoddal egyetértek; (bár mivel nem régóta vagyok itt regisztrálva, nem tudok viszonyítani túl sok korábbi kérdezőhöz, bár tény, hogy e téma kérdésében semmilyen kivetnivalót nem találok magam sem.)és egyáltalán nem szándékoztam támadóan fellépni, amennyiben mégis sikerült, akkor ezúton elnézést kérek a kérdezőtől és mindenki mástól is!
Ez esetben pedig, produktívat is írva:
A legegyszerűbb feldolgoz.php /tfh: az űrlapon két dolog van: egy input type="text" és egy textarea; nevük: nick és mail/ ekkor a feldolgoz.php tartalma:
biztonság
Kedves Poetro!
Alapvetően természetesen igazad van: a feladó emailcímét szükséges lenne ellenőrizni!
Viszont én csak egy teljesen egyszerű, jön egy levél esetet akartam írni:
"
Új üzenet érkezett!
Az üzenet: Ide az a szöveg kerül, amit a küldő a feldolgozandó űrlapon beírt a textarea-ba.
Feladó: Józsi
"
szóval a kódomban a $_POST['nick'] nem feltétlenül emailcím, csak egy nicknév, amit bekértem a felhasználótól..
(csak azért létezik, hogy szerepeljen a kódban a "hogy ellenőrizzünk le egynél több inputot" kérdésre válasz)
Bocs a félreérthetőségért!
Azért én ezt nem tenném: if
php > $_POST['nick'] = '';
php > echo isset($_POST['nick']);
1
jogos, bocs..
empty($nev) - vel lesz a helyes!
eddig:
tehát a feldolgoz.php így néz ki: nem akartam tulbonyolitani, hiszen az előző űrapküldőm ilyen adatokkal is működött:
Parse error: syntax error, unexpected T_STRING in /home/papprich/public_html/kerdoiv/feldolgoz.php on line 71
Persze lehet h én akarom tul egyszerűen összehozni, pedig már így sikerült.
Használj szintaxis színezésre
igen
Mostmár minden stimmel, és az e-mailt is megkapom, olyan formában, ahogy szeretném, mivel a formán is változtattam. A sok <br/>-t kiszedtem, mert megjelenítette az e-mailben, és anélkül is sima enterrel tud tenni sortörést.
Azonban van mégegy gond, aminek szerintem mélyrehatoló hibája van.
Az űrlap kitöltői, ha a kitöltéshez használnak "ő" "ű" ezt kapom:
pl: teniszütő, gépjárművezető bádogúszó
érdekes, a sima hosszú ékezetek jók :S
Mi lehet a hiba oka?
karakterkódolás
hiba
NVU-ban szerkesztem, már ehhez szoktam hozzá. Ott van egy olyan opció, hogy "Mentés, és a karatkerkódolás megváltoztatása"
Ez lenne a megoldás?
Ha igen, akkor csak a már meglévő html-t elmentem UTF-8 kódolásba?
Nem teljesen. Van olyan,
Van olyan, hogy utf8 bommal meg bom nélkül. Nem tudom, hogy a te editorod melyikkel menti, ha a bom is bent marad, az probléma, mert minden oldal elején látszani fog.
A php-ban is header-t kell kiküldeni minden oldal legelején:
Off-topic tanács
Off
ha jól tudom- valamikor az
Az tény, hogy elavult, de sajnos van amikor nincs más lehetőség. Futottam már bele olyan problémába, amit csak táblázattal tudtam megoldani (css3 nélkül)...