ugrás a tartalomhoz

Segítség php-írásban - űrlap küldése emailben

richx · 2011. Aug. 2. (K), 07.58
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:

<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&eacute;rfi</td>
      <td style="width: 100px;"><input
 name="Nem" value="No" type="radio">&nbsp;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;">&Eacute;letkor:</td>
      <td><input
 name="eletkor" value="18ig" type="radio">&nbsp;18
alatt</td>
      <td><input
 name="eletkor" value="40ig" type="radio">&nbsp;18-40</td>
      <td><input
 name="eletkor" value="40plusz" type="radio">&nbsp;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: &nbsp;</span>
&nbsp; &nbsp; </td>
      <td style="text-align: center;"><input
 maxlength="100" size="40" name="lakhely"
 value="telep&uuml;l&eacute;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&aacute;lkozott vel&uuml;nk/hallott r&oacute;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
&aacute;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&eacute;b
hirdető oldal: <input size="15"
 name="hirdeto" value="melyik?"></td>
      <td><input
 name="egyeblap" value="egyeblap" type="checkbox">egy&eacute;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&aacute;bban az Iplik&aacute;tort?</td>
      <td
 style="text-align: center; font-weight: bold;">&nbsp;Rendelt
m&aacute;r től&uuml;nk?</td>
      <td style="text-align: right;"><span
 style="font-weight: bold;">Sz&iacute;vesen
aj&aacute;nlan&aacute; m&aacute;snak</span>
term&eacute;keinket?</td>
    </tr>
    <tr>
      <td style="text-align: center;"><input
 name="ismerte" value="igen" type="radio">igen
&nbsp; &nbsp; <input name="ismerte"
 value="nem" type="radio">nem</td>
      <td style="text-align: center;"><input
 name="rendelt" value="igen" type="radio">igen
&nbsp; &nbsp;<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&eacute;rem
v&aacute;lasszon az
al&aacute;bbiak
k&ouml;z&uuml;l:</span></big><br>
<br>
<table style="text-align: left; width: 50%;"
 border="1" cellpadding="0" cellspacing="0">
  <tbody>
    <tr>
      <td>Mennyire
el&eacute;gedett az oldal kin&eacute;zet&eacute;vel?</td>
      <td>Mennyire
tal&aacute;lta hasznosnak az inform&aacute;ci&oacute;kat?</td>
      <td>Hogyan
&eacute;rt&eacute;keli &aacute;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, &aacute;tl&aacute;that&oacute;</td>
      <td><input
 name="ar" value="1" type="radio">T&uacute;l
alacsonak</td>
    </tr>
    <tr>
      <td><input
 name="oldal" value="4" type="radio">J&oacute;</td>
      <td><input
 name="hasznos" value="4" type="radio">Hasznos,
de
bonyolult</td>
      <td><input
 name="ar" value="2" type="radio">T&ouml;bbet
&eacute;rne</td>
    </tr>
    <tr>
      <td><input
 name="oldal" value="3" type="radio">Rendben
van</td>
      <td><input
 name="hasznos" value="3" type="radio">Hi&aacute;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&iacute;tani</td>
      <td><input
 name="hasznos" value="2" type="radio">Nem
vettem
haszn&aacute;t</td>
      <td><input
 name="ar" value="4" type="radio">Kiss&eacute;
dr&aacute;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&uacute;l
dr&aacute;ga</td>
    </tr>
  </tbody>
</table>
<br>
<br>
<big><span
 style="font-weight: bold;">Jel&ouml;lje be,
melyik
kedvezm&eacute;nyt szeretn&eacute; ig&eacute;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&eacute;v:</td>
            <td><input
 size="30" name="nev" value="megrendelő neve"></td>
          </tr>
          <tr>
            <td>C&iacute;m:</td>
            <td><input
 size="30" name="cim" value="megrendelő c&iacute;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&ouml;lt&eacute;se k&ouml;telező!<br>
      </td>
    </tr>
  </tbody>
</table>
<br>
<span style="font-weight: bold;">&Iacute;rja
meg
v&eacute;lem&eacute;ny&eacute;t az oldallal kapcsolatban</span><br
 style="font-weight: bold;">
<span style="font-weight: bold;">Mi
hi&aacute;nyzik? Min
v&aacute;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&iacute;rlev&eacute;lre.
/Alkalmank&eacute;nti lev&eacute;l friss
akci&oacute;kr&oacute;l,
v&aacute;ltoz&aacute;sokr&oacute;l/</span><br>
<br>
<input color="red" name="submit"
 value="Adatok elk&uuml;ld&eacute;se" type="submit">
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp;<input name="Elk&uuml;ld"
 value="T&ouml;rl&eacute;s" type="reset"><br>
<img src="images/vonal2.gif"><br>
</center>
</body>
</html>
 
1

Ez inkább állás rovat. Ezek a

inf · 2011. Aug. 2. (K), 08.38
Ez inkább állás rovat. Ezek a fórumok arra valóak, hogy ha a php tanulásában elakadtál, akkor segítséget nyújtsanak, nem pedig arra, hogy mással csináltasd meg a munkádat.
2

igazad van

richx · 2011. Aug. 2. (K), 09.28
Igazad van, azért tettem így be mindent, mert ami nekem kellene, lehet hogy nem tudnám elmagyarázni.

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.
3

de ha

richx · 2011. Aug. 2. (K), 09.29
de ha valaki megcsinálná nekem kompletten, fizetnék is érte.
ha nem, hát beérem a példával is :)
4

PHP alapok (php kézikönyv).

Hidvégi Gábor · 2011. Aug. 2. (K), 09.36
PHP alapok (php kézikönyv).
5

köszönöm

richx · 2011. Aug. 2. (K), 09.46
Köszönöm, de ez nekem nem segít.
Ha lehetne konkrét példát/választ, megköszönném!
6

Enélkül nem fogod megérteni a

Hidvégi Gábor · 2011. Aug. 2. (K), 09.49
Enélkül nem fogod megérteni a példát.
7

próbáljuk meg...

Peete · 2011. Aug. 2. (K), 10.58
tehát, van egy űrlapod. Az űrlap

<form method="post" action="feldolg.php"> //a feldolg.php lesz a külön fájl..
//ide jönnek az input elemek, és az elküld gomb
</form>
szerkezetű.

Egyszerű űrlap: egyetlen szöveges input:

<form method="post" action="feldolg.php">
	<label>Név:</label>
	<label><input type="text" name="nick" value="" /></label>
        <label><input type="submit" value="Mehet!" /></label>
</form>
ez így egy darab név címke, egy text beviteli mező, és egy Mehet! feliratú gomb..

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.

<?php
$nev = $_POST['nick']; //a $nev változóba kerül az, amit beírtál
?>
Megjegyzés: a beviteli elemeknek adható egy "value", ez a kezdeti értéket jelenti..
pl: az előzőben: ha a "nick"-nevű text típusú input value-jét átírnád mondjuk:

<label><input type="text" name="nick" value="Józsi" /></label>

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.

<form method="post" action="feldolg.php">
	<label>Név:</label>
	<label><input type="text" name="nick" value="" /></label>
	<label>Nemed:</label>
		<label>Férfi</label>
		<label><input type="radio" name="sex" value="pasi" /></label>
		<label>Nő</label>
		<label><input type="radio" name="sex" value="hölgy" /></label>
	</label>
	<label>
		<input type="checkbox" name="jelolo" value="előfizet" />Kérek hírlevelet!
	</label>
	
	<input type="submit" value="Mehet!" />
</form>

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"

<?php
$nev = $_POST['nick'];
$sex = $_POST['sex'];
$hirlevel = $_POST['jelolo'];
?>
Megfigyelhető, hogy a $_POST['valami'] -ben a "name"-ekre hivatkozunk.
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ő...
9

Nagyszerű

richx · 2011. Aug. 2. (K), 11.28
A szövegbevitelt már tudom, a checkbox és a radio nem volt ediig érthető. eddig.
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?
14

isset($_POST['submit'])

pkadam · 2011. Aug. 2. (K), 12.13
Az űrlap elküldését úgy tudod ellenőrizni, hogy adsz a submit gombnak egy nevet (pl. "submit", ha csak egy űrlap van az adott oldalon), majd az 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ég if (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.
16

Az azért nem olyan

kuka · 2011. Aug. 2. (K), 12.31
Az azért nem olyan egyértelmű. A submit gomb nyomkodásán kívül az űrlap küldés történhet
  • 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:
if ($_SERVER['REQUEST_METHOD']=='POST') { /* űrlap feldolgozás */ }
30

Egyszerűbb, ha más

inf · 2011. Aug. 2. (K), 15.10
Egyszerűbb, ha más Controller.action végzi az űrlap feldolgozását és más a kiírást, így nem akad össze...
8

Google...

Blintux · 2011. Aug. 2. (K), 11.19
Az a durva, hogy FORM->PHP kombóra számtalan példa van a neten, csak jól kell rákeresni. Kb. három szó a te esetedben.
De had segítsek

Rögtön a legelső találat kielégíti minden igényedet szerintem.
10

hasznos

richx · 2011. Aug. 2. (K), 11.34
Valóban nagyon hasznos amit mutattál, én nem találtam volna rá :P
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!
12

Én inkább egybe

pkadam · 2011. Aug. 2. (K), 12.04
Sok tutorialban külön fájlt szoktak megadni a feldolgozásra, de nálam az a best practice, hogy a fájl elejére rakom. Így nem lesz minden űrlaphoz két külön fájl (pláne, hogy ha valami gond van a kitöltéssel, akkor úgyis szükség lesz a beviteli mezőkre újra). Ezáltal bár az adott fájl bonyolultabb lesz, de a fájlstruktúra könnyebben áttekinthető.
13

mail()

Blintux · 2011. Aug. 2. (K), 12.09
mail() függvény

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.
11

"És egy vissza a kezdőlapra gomb."

Peete · 2011. Aug. 2. (K), 12.00
nos, a vissza a kezdőlapra c. gombot úgy mondják szépen, hogy link.
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
15

Saját cég

richx · 2011. Aug. 2. (K), 12.30
Saját cég, emberre nincs pénz.
A jelenleg összetákolt honlapom pedig: Iplikator.hu

Köszönöm, aki segített!
19

Egy-két tipp a jobbá

deejayy · 2011. Aug. 2. (K), 12.48
Egy-két tipp a jobbá tevéshez:
- 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.
32

Próbálj meg telepíteni egy

inf · 2011. Aug. 2. (K), 15.22
Próbálj meg telepíteni egy joomla+virtuemart-ot vagy egy zencart-ot (ezek ingyenes webshop rendszerek), elméletileg még te is meg tudod csinálni php kódolás nélkül. Ha abban elakadtál, akkor szólj!
17

Nekem az a véleményem az

deejayy · 2011. Aug. 2. (K), 12.36
Nekem az a véleményem az eddigi tapasztalatok alapján, hogy a kérdező meglepően udvarias [a többi zöldfülűhöz képest biztosan], nem követelőzik, megpróbál tapogatózni, hogy merre induljon.

É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):

  ob_start();
  print_r($_POST);
  $level = ob_get_clean();
  mail('sajat##kukac##email.cimed', 'Jott valami cucc', $level);
18

$level = print_r($_POST,

Poetro · 2011. Aug. 2. (K), 12.40
$level = print_r($_POST, TRUE);
20

Hopp tényleg. Olyan régen

deejayy · 2011. Aug. 2. (K), 12.50
Hopp tényleg. Olyan régen használom ezt a parancsot, hogy azóta nem néztem a manuált :D
21

Nagyon köszönöm!

richx · 2011. Aug. 2. (K), 13.31
Köszönöm deejayy!
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!
22

A következtetést

Peete · 2011. Aug. 2. (K), 13.42
abból vontam le, hogy kimásoltam a kérdező kódját, és megnéztem, mégis miről van szó. Aztán, mivel egy speciális dologról van szó, végignéztem a Google-találatokat, és megtaláltam -az azóta a kérdező által belinkelt- oldalt. (meg mondjuk alapból látszik a kódban a "megrendelő" kifejezés.)

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:

<?php
if (isset($_POST['nick']) && isset($_POST['mail']) ) {
$nick = $_POST['nick'];
$szov = $_POST['mail'];
$akinekkuldom = "email##kukac##cim.hu";
$cim = "Üzenet a valami.hu-ról";
$tartalom = "Új üzenet érkezett! <br />Az üzenet:".$szov."<br/> Feladó:".$nick;
 
mail($akinekkuldom, $cim, $tartalom); 
echo 'az emailt elküldtük!<a href="kezdolapurl">Vissza a kezdőlapra</a>';
} else {
echo "hiba! minden mező kitöltése kötelező";
echo '<a href="űrlapurl">Visszalépés, újra megpróbálom kitölteni.</a>'; 
}
?>
23

biztonság

Poetro · 2011. Aug. 2. (K), 13.53
Azért érdemes kicsi figyelmet szentelni a biztonságra, és validálni, hogy a nick az tényleg egy és pontosan egy email cím.
25

Kedves Poetro!

Peete · 2011. Aug. 2. (K), 14.14
amennyiben nekem szólt a megjegyzésed.. a Feladó elég szerencsétlen szóhasználat volt valóban.. én csak azt akartam egy kóddal szemléltetni, hogy működik a mail függvény: adatokat bekérünk, megnézzük, hogy léteznek-e, ha igen, adott szövegkörnyezetté alakítjuk összefűzéssel, majd a mail() fügvénnyel elküldöm.

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!
24

Azért én ezt nem tenném: if

kuka · 2011. Aug. 2. (K), 13.59
Azért én ezt nem tenném:

if (isset($_POST['nick']) && isset($_POST['mail']) ) {
  // feldolgozás
} else {
  echo "hiba! minden mező kitöltése kötelező";
  echo '<a href="űrlapurl">Visszalépés, újra megpróbálom kitölteni.</a>';
}
Itt üres mezők esetén is teljesül a feltétel, úgyanis
Interactive shell

php > $_POST['nick'] = '';
php > echo isset($_POST['nick']);
1
26

jogos, bocs..

Peete · 2011. Aug. 2. (K), 14.35
ez most így hirtelen nem esett le..
empty($nev) - vel lesz a helyes!
27

eddig:

richx · 2011. Aug. 2. (K), 14.42
Jelenleg ezt hoztam össze az előző megrendelőlap mására, az itt kapott infókkal.
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:

<?php
if (isset ($_POST['nev']) && isset($_POST['bekuldo_email']))
{  
$nem = $_POST['nem'];  
$eletkor = $_POST['eletkor'];
$lakhely = $_POST['lakhely'];
$bekuldo_email = $_POST['bekuldo_email'];
$ismeros = $_POST['ismeros'];
$kereso = $_POST['kereso'];
$facebook = $_POST['facebook'];
$expressz = $_POST['expressz'];
$jofogas = $_POST['jofogas'];
$startapro = $_POST['startapro'];
$egyeb = $_POST['egyeb'];
$hirdeto = $_POST['hirdeto'];
$egyeblap = $_POST['egyeblap'];
$laphu = $_POST['laphu'];
$ismerte = $_POST['ismerte'];
$rendelt = $_POST['rendelt'];
$ajanlana = $_POST['ajanlana'];
$oldal = $_POST['oldal'];
$hasznos = $_POST['hasznos'];
$ar = $_POST['ar'];
$akcio1 = $_POST['akcio1'];
$akcio2 = $_POST['akcio2'];
$akcio3 = $_POST['akcio3'];
$nev = $_POST['nev'];
$cim = $_POST['cim'];
$telefon = $_POST['telefon'];
$rendelo_email = $_POST['rendelo_email'];
$velemeny = $_POST['velemeny'];
$hirlevel = $_POST['hirlevel'];
mail ('info##kukac##iplikator.hu', 'Kérdőív', 
"Név: $nev 
Email: $bekuldo_email 
Telefonszám: $telefon 
Település: $lakhely <br/>
Hogyan talált ránk? <br/>
$ismeros
$kereso
$facebook
$expressz
$jofogas
$startapro
$egyeb <br/>
Ebben a hirdetőben: $hirdeto
$egyeblap<br/>
Ebben a lap.hu oldalban: $laphu
Ismerte korábban is az iplikátort? $ismerte
Rendelt már tőlünk? $rendelt
Szívesen ajánlaná másoknak termékünket? $ajanlana
<br>
Mennyire elégedett az oldal kinézetével? $oldal
Mennyire találta hasznosnak az informácikat? $hasznos
Hogyan értékeli árainkat? $ar
<br/>
Ezt az akciót választotta: 
$akcio1
$akcio2
$akcio3
<br/>
Rendelő adatai:
Név: $nev
Cím: $cim
Telefonszám: $telefon
E-mail cím: $rendelo_email
<br/>
Vélemény az oldallal kapcsolatban:
$velemeny
Feliratkozik a hírlevélre: $hirlevel .
date('d/m/Y H:i:s'), "FROM: $bekuldo_email Reply-To: $bekuldo_email"); }

?>  

Azonban a submit gomb megnyomása után ez az üzenet fogad:
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.
28

Használj szintaxis színezésre

kuka · 2011. Aug. 2. (K), 14.50
Használj szintaxis színezésre képes szövegszerkesztőt (illetve itt a Weblaboron a [colorer] BBCode taget) és máris látszik, hogy hiányzik a záró idézőjel:

mail ('info##kukac##iplikator.hu', 'Kérdőív',
"Név: $nev
// ...
Feliratkozik a hírlevélre: $hirlevel" . // <-- itt kell zárni az idézőjelet
date('d/m/Y H:i:s'), "FROM: $bekuldo_email Reply-To: $bekuldo_email"); }
29

igen

richx · 2011. Aug. 2. (K), 15.03
Valóban elnéztem :)

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&#337;, gépjárm&#369;vezet&#337; bádogúszó

érdekes, a sima hosszú ékezetek jók :S

Mi lehet a hiba oka?
33

karakterkódolás

inf · 2011. Aug. 2. (K), 15.28
Egységesen utf-8 headereket kéne kiküldened, a fájlokat meg utf-8 bom nélkül formában feltenni a szerverre. pl ha notepad++ -t leszeded, abban is be tudod állítani, hogy hogyan mentse le őket.
34

hiba

richx · 2011. Aug. 2. (K), 15.36
Tehát akkor a HTML-ben van a 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?
35

Nem teljesen. Van olyan,

inf · 2011. Aug. 2. (K), 15.54
Nem teljesen.

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:

header('content-type: text/html; charset=utf-8');
És az email-be is be kell tenni egy header-t a karakterkódolásról.


$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";

mail($to, $subject, $message, $headers);
36

Off-topic tanács

kuka · 2011. Aug. 3. (Sze), 08.59
NVU-ban szerkesztem
A NVU fejlesztését rég megszüntették, az utolsó stabil verzió 2005-ből származik. Azóta volt pár változás a web életében. Esetleg nézz rá a KompoZerre, az egy újraírt NVU alapú szerkesztő folytatása, tehát elméletileg ismerősnek kellene majd tűnjön neked. Bár a KompoZer utolsó stabil verziója 2007-es, úgyhogy az sem igazan friss. De hátha nem generál ilyen ronda kódot, mert ezzel minket is és a böngészőket is csak kínozod.
37

Off

Poetro · 2011. Aug. 3. (Sze), 11.05
Azért a böngészőket se kell félteni, elvégre réges-rég, egy arany színű robot megmondta már:
We seem to be made to suffer. It's our lot in life.
31

ha jól tudom- valamikor az

inf · 2011. Aug. 2. (K), 15.18
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...


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)...