ugrás a tartalomhoz

Regisztrációs űrlap készítés

kicsikepetike · 2007. Jún. 6. (Sze), 17.35
Sziasztok!

Szeretnék készíteni egy regisztrációs űrlapot amit adatbázisban tárolnék el (MySQL).
A tábla nevek: id, név, irszám, város, cím, telefon, email.
Az űrlap kitöltése és az Elküld gomb megnyomása után az adatok tárolódnak az adatbázisban. Azt szeretném megoldani, hogy a bevitt adatokat a rendszer elküldje a regisztráló emailcímére és az én email címemre is.
Tud valaki egy használható megoldást?
Amit eddig csináltam az valamiért nem jól működik, ha elküldi at emailt a két címre akkor nem ír be az adatbázisba, ha pedig beírja az adatokat az adatbázisba akkor nem küld leveleket. :-(
Várom segítő válaszaitokat.
Ja, igen a fórumon rákerestem a témára, de nem találtam semmi hozzá hasonlót.

Legyen szép napotok.

Üdv.
kicsikepetike
 
1

phpmailer

breakline · 2007. Jún. 6. (Sze), 17.48
Hali

Hát így kód nélkül nehéz lenne egy hibát kideríteni:)

Mindenesetre levélküldésre használhatsz valami kész megoldást is:

http://phpmailer.sourceforge.net/


üdv
BL
2

phpmailer

kicsikepetike · 2007. Jún. 10. (V), 11.05
Szia!

Bocs, de 3 napig külföldön voltam és nem tudtam válaszolni. Amit ajánlottál az nekem nem jó. Amit én szeretnék az egy honlapon lévő regisztráció lenne. Mellékelem a a kódokat hátha ez alapján tudnál segíteni.

Bevitel: bevitel_2.php

<html>

<head>
  <title>.:Adatbevitel - Teszt adatbázisba:.</title>

</head>
<p align="center"><font face="Times New Roman, Times, serif" size="5"><b><i>Teszt program.</i></b></font></p>
<p align="center"><font face="Times New Roman, Times, serif" size="4"><b><i>Tagnyilvántartó.</i></b></font>
<p align="center"><b><i><font face="Times New Roman, Times, serif" size="4">Adatbevitel.</font></i></b> <body bgcolor="#CCFFFF">
<p align="center"><b><i><font face="Times New Roman, Times, serif" size="4"><!--<a href="vissza.html">Vissza a főoldalra</a>--><br></font></i></b> <body bgcolor="#CCFFFF">
<br>
<?php

ini_set("display_errors", 1);

$db = mysql_connect("localhost", "teszteszti","123456");

mysql_select_db("test",$db);

$siker="<b>Új rekord bevitele sikeres!</b>";


if ($submit) {

  // ha nincs ID akkor hozzáadás, különben javítás


  if ($id){
  $sql="UPDATE bevitel SET nev='$nev',irszam='$irszam',varos='$varos',cim='$cim',telefon='$telefon',email='$email' WHERE id=$id";
 }else{
  $sql="INSERT INTO bevitel (nev,irszam,varos,cim,telefon,email) VALUES ('$nev','$irszam','$varos','$cim','$telefon','$email')";

}
  $result = mysql_query($sql);

   echo  $siker;
?>
 </p>
<P>

 <a href="<?php echo $PHP_SELF?>"><b><center>Új rekord hozzáadás.</b></a>

  <P>

 <form method="post" action="<?php echo $PHP_SELF?>">
<?php

} elseif ($delete) {

    // rekord törlés

    $sql = "DELETE FROM bevitel WHERE id=$id";

    $result = mysql_query($sql);

    echo "$sql Record deleted!<p>";

} else {

  // adatbevitel után kilistázza a bevitt adatokat

  if (!$id) {    //ha a (!$id) így írom be akkor az oldal felső soraiba kiírja a a már bevitt adatokat egy link formájában!

    // listázás

    $result = mysql_query("SELECT * FROM bevitel",$db);

    while ($myrow = mysql_fetch_array($result)) {

      printf("<a href=\"%s?id=%s\">%s %s</a> \n", $PHP_SELF, $myrow["id"], $myrow["nev"], $myrow["telefon"]);

      printf("<a href=\"%s?id=%s&delete=yes\">(DELETE)</a><br>", $PHP_SELF, $myrow["id"]);

    }

  }



  ?>
  </p>
<P>



  <!--<form method="post" action="<?php echo $PHP_SELF?>"> --> //ha ez a sor aktív akkor az adat beíródik az adatbázisba
   <form method="post" action="getjel.php"> // ha ez a sor aktív akkor nincs beírás az adatbázisba, viszont az emaileket elküldi a megadott címekre
  <?php



  if ($id) {

    // a kiválasztott rekord javítása

    $sql = "SELECT * FROM bevitel WHERE id=$id";

    $result = mysql_query($sql);

    $myrow = mysql_fetch_array($result);

    $id = $myrow["id"];

    $nev = $myrow["nev"];

    $irszam = $myrow["irszam"];

    $varos = $myrow["varos"];

    $cim = $myrow["cim"];

    $telefon = $myrow["telefon"];

    $email = $myrow["email"];

    // ID szerinti javítás

    ?>
  <input type=hidden name="id" value="<?php echo $id ?>">
  <?php

  }



  ?>
  <body>
  <body bgcolor="#FFFFFF">
<pre>&nbsp;     </pre>
<table width="60%" border="0" align="center">
  <tr>
    <td width="34%">
      <div align="right">Név: </div>
    </td>
    <td width="64%">
      <input type="Text" name="nev" value="<?php echo $nev ?>" size="30" maxlength="30">
    </td>
    <td width="2%">&nbsp;</td>
  </tr>
  <tr>
    <td width="34%">
      <div align="right">Irányító szám: </div>
    </td>
    <td width="64%">
      <input type="Text" name="irszam" value="<?php echo $irszam ?>" size="4" maxlength="4">
    </td>
    <td width="2%">. </td>
  </tr>
  <tr>
    <td width="34%">
      <div align="right">Város:</div>
    </td>
    <td width="64%">
      <input type="Text" name="varos" value="<?php echo $varos ?>" size="30" maxlength="30">
    </td>
    <td width="2%">&nbsp;</td>
  </tr>
  <tr>
    <td width="34%">
      <div align="right">Cím:</div>
    </td>
    <td width="64%">
      <input type="Text" name="cim" value="<?php echo $cim ?>" size="40" maxlength="40">
    </td>
    <td width="2%">&nbsp;</td>
  </tr>
  <tr>
    <td width="34%">
      <div align="right">Telefon:</div>
    </td>
    <td width="64%">
      <input type="Text" name="telefon" value="<?php echo $telefon ?>" size="15" maxlength="15">
    </td>
    <td width="2%">&nbsp;</td>
  </tr>
  <tr>
    <td width="34%">
      <div align="right">E-mail:</div>
    </td>
    <td width="64%">
      <input type="Text" name="email" value="<?php echo $email ?>" size="40" maxlength="35">
    </td>
    <td width="2%">&nbsp;</td>
  </tr>


</table>
<p>
  <center><input type="submit" name="submit" value="Hozzáadás">&nbsp;<center><input type="reset" name="resett" value="Törlés">

</p>

  </form>



<?php



}



?>

</body>

</html>
Ennél a sornál bukik el a dolog:


<!--<form method="post" action="<?php echo $PHP_SELF?>"> --> //ha ez a sor aktív akkor az adat beíródik az adatbázisba
   <form method="post" action="getjel.php"> // ha ez a sor aktív akkor nincs beírás az adatbázisba, viszont az emaileket elküldi a megadott címekre
Ez a mail küldő kód: getjel.php

<html>
<head>
<title>Teszt program</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
<STYLE type="text/css">
BODY {
    FONT-FAMILY: Arial; SCROLLBAR-FACE-COLOR: #C5E191; SCROLLBAR-HIGHLIGHT-COLOR: #C5E191; SCROLLBAR-SHADOW-COLOR: #128633; COLOR: #000000; SCROLLBAR-ARROW-COLOR: #128633; SCROLLBAR-BASE-COLOR: #128633
}
INPUT {
    BORDER: #128633 1px solid; FONT-SIZE: 8pt;
    FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; BACKGROUND-COLOR: #F6FAED
}
</STYLE>
<link rel="stylesheet" href="../clubweb.css" type="text/css">
</head>

<BODY bgcolor="#F6FAED">



            <h1>Teszt program - Tagsági jelentkezés</h1>

<!-- Beginning application code. Code by HTML Info Editor -->
<?php
$db = mysql_connect("localhost","teszteszti","123456");
mysql_select_db("test",$db);
$result = mysql_query("SELECT * FROM bevitel",$db);
//$result=mysql_query($query,$db) or die ("Hiba: ".mysql_error());
while ($myrow = mysql_fetch_array($result))
{

$lf="\n";
echo "<p>Köszönjük jelentkezését. <br />";
echo "A Tesztprogram vezetése felé a rendszer az alábbi adatokat továbbította: </p>";

//echo "<TR><TD>".$myrow['nev']."</td></tr>";
echo "<b><i>Név:</i></b> ".$nev." <TR><TD>".$myrow['nev']."<br>";
echo "<b><i>Irányítószám:</i></b> ".$irszam." <TR><TD>".$myrow['irszam']."<br>";
echo "<b><i>Város:</i></b> ".$varos." <TR><TD>".$myrow['varos']."<br>";
echo "<b><i>Cím:</i></b> ".$cim." <TR><TD>".$myrow['cim']."<br>";
echo "<b><i>Telefon:</i></b> ".$telefon." <TR><TD>".$myrow['telefon']."<br>";
echo "<b><i>E-mail:</i></b> ".$email." <TR><TD>".$myrow['email']."</td></tr>";

        /* Címzettek */
        $recipient .= "Teszt program <teszt_program##kukac##tesztprogram.hu>" . ", " ;
        $recipient .= "Online jelentkező <".$myrow['email']."> , ";

        /* Fejlécek */

        $header .= "From: Teszt program Webmaster <teszt_program##kukac##tesztprogram.hu>\n";
        $header .= "X-Sender: Teszt program Webmaster <teszt_program##kukac##tesztprogram.hu>\n";
        $header .= "Return-Path: Teszt program Webmaster Webmaster <teszt_program##kukac##tesztprogram.hu>\n";


        $subject = "Tagsági jelentkezés";

        /* A levél szövege */
        $content .= "Üdv!\n\nEz egy automatikusan generált levél, új jelentkezőről értesít.";
        $content .= "\nNév: ".$nev;
        $content .= "\nIrányítószám: ".$irszam;
        $content .= "\nVáros: ".$varos;
        $content .= "\nCím: ".$cim;
        $content .= "\nTelefonszám: ".$telefon;
        $content .= "\nE-mail: ".$email;

        $content .= "\n\n-  Teszt program Webmaster ";

 }
 mysql_free_result ($result);
        mail($recipient,$subject,$content,$header);

?>
<p><a href="javascript:history.back()">Vissza</a></p>
Kérlek ha rudsz valami megoldást akkor segíts.

Üdv.
kicsikepetike
3

phpmailer

kicsikepetike · 2007. Jún. 13. (Sze), 08.27
Senkinek nincs ötlete? :-(
4

PHPMailer?

janoszen · 2007. Jún. 13. (Sze), 08.47
Miért is nem jó neked a PHPMailer?
5

PHPMailer?

kicsikepetike · 2007. Jún. 13. (Sze), 10.43
Az igazság az, hogy nem igazán értem a működését a phpmailernek. :-(
Amit én csináltam azzal csak annyi a bajom, hogy ha a regisztráló kitölti az űrlapot akkor az adatokat az adatbázisba beírja, de nem tudom az adatokat elküldeni e-mailben a regisztrálónak és magamnak. Az e-mail küldés önmagában megy, ezzel meg az a baj, hogy az adatbázisban lévő összes adatot elküldi. Nekem mindig csak azt az e-mailt kellene elküldenie amely űrlapot éppen kitöltötték.
Nem tudom, hogy elég érthető voltam e?
Ezt szeretném valahogy megoldani és lehet, hogy nem a phpmailerrel. :-(
Tudsz ebben valami okosságot mondani?
6

gondold át, mit csinál a kódod

Fraki · 2007. Jún. 13. (Sze), 11.22
Szerinted egy olyan ciklus, hogy "while (x = adj új sort egy szűretlen lekérdezésből) { mail(x) }" mi a rákot csináljon mást, minthogy az összes sort elküldi?
7

gondold át, mit csinál a kódod

kicsikepetike · 2007. Jún. 13. (Sze), 13.16
OK! Igazad van. Erre gondoltál:

mysql_data_seek(mysql_num_rows($result) - 1);
while ($myrow=mysql_fetch_last_row(result))  //vagy while($myrow=mysql_fetch_row($result)
{


Még nem próbáltam a kódot, de kipróbálom.
8

logika

gex · 2007. Jún. 14. (Cs), 10.10
egyrészt felesleges lekérni az összes jelentkezőt, az sql többől áll, mint a select * from bevitel, lehet szűrni is, másrészt nem szerencsés mindig az utolsót lekérni, mert mi van, ha közben regisztrál egy másik ember is? egyelőre úgy látom nem ez a legégetőbb kérdés számodra, de nem árt erre is gondolni.
9

logika

kicsikepetike · 2007. Jún. 14. (Cs), 12.40
nem szerencsés mindig az utolsót lekérni, mert mi van, ha közben regisztrál egy másik ember is?

Igen, erre már én is gondoltam, de ötletem sincs a megoldásra. :-(
Esetleg Neked van valami ötleted?
10

azonosító

gex · 2007. Jún. 14. (Cs), 12.44
valamilyen azonosítót kell használnod, amivel egyértelműen meg tudod határozni, hogy melyik sorról is kell e-mailt küldeni.

szerk: na átolvastam a témát, te igazából ott akadtál el, hogy adatbázisban is akarsz tárolni és levelet is akarsz küldeni. ezek az algoritmusok két külön php fájlban vannak, és nem tudod eldönteni, hogy melyik legyen a form action attribútumában. jól látom ezt?
11

átgondolás, tanulás - általános tanácsok

Gal Kristof · 2007. Jún. 14. (Cs), 12.47
a problémádat abban látom, hogy fogalmad nincs alapvető php és mysql fogalmakról, működési elvekről. ez nem bántás, ez tény azt hiszem.

ugyanakkor nem is gondolod át a dolgokat úgy látom... ülj le, és gondold végig a problémát, mi mi miatt lehet. ha csak leülsz és elkezdesz rutin és tudás nélkül kódolni, biztos, hogy nem fog sikerülni.

fogj egy php és egy mysql könyvet, és láss hozzá. :) azért nem mondom, hogy neten kezdj keresgélni, mert egy jó kis magyar nyelvű kezdőknek szóló könyv csodákat tehet - a gugli majd akkor lesz igazán hasznos, ha az alapismereteid már biztosak, és egyáltalán tudod majd mit keresel. ajánlanám a 24 óra alatt sorozatot, van php és mysql is.

hajrá!
12

átgondolás, tanulás - általános tanácsok

kicsikepetike · 2007. Jún. 18. (H), 09.47
Szia Kristóf!

Kösz a tanácsot, csak elkéstél vele. :-(
Pont a Php 24 óra .... című könyv olvasása miatt találtam ki magamnak ezt a feladatot, mert ilyen irányú példa nincs benne. Te is tudod, hogy ezen alkalmazások megtanulását igazán csak példa megoldásokon lehet elsajátítani. Mivel nincs benne erre használható megoldás, azért bátorkodtam a "nagyérdemű"-höz fordulni, hátha tud valaki erre megoldást, de úgy látom, hogy ez nem hozott sikert. :-(
Gondolom Te sem úgy születtél, hogy az anyatejjel szívtad magadba php-t és a MySQL-t, valószínű, hogy Te is kérdeztél ha valamire nem tudtad a választ és kaptál is a legtöbb esetben. Látod, most én is ezt választottam, de a konkrét kérdésemre nem kaptam választ és úgy érzem, hogy nem is fogok. Sajnálom a történteket, amit leírtam én sem "bántásból" írtam csak a puszta érzeseimet tényeket közöltem.
14

tanácsok

szabadossw · 2008. Jan. 11. (P), 13.53
Én úgy oldanám meg igaz php-t most fogok majd csak kedzeni tanulni, de más nyelvekben már csináltam, ismerem az alapokat.
szóva ügye az adatlappon vannak az adatok amit vlátozókba raksz.-
ezután a váltózó értékeit a megheleő mezőbe beírod az adatbázisba, majd az emailhoz nem az adatbázisból szeded ki újra az adatokat hanem a változók értékeivel küldöd el a levelet.
Szerintem neked elék az ID ai az adatbázisban a sorszémot adná amihez hozzáfűzhetsz egy felhasználói nevet ami megjelenik, ez plé a nick név. az "id"-vel már minden adatot megkaphatsz kereséskor is.
emailt csakis az adatvázisba mentés után küldenék, és miután a levélküldés sikeres volt egy üzenetet írnék, hogy regisztrációd megtörtént emailban hamarosan megkapod belpési adataidat...

Mindazonálltal olyan levélküldés érdekel ami kihagyja az outlook expreszt.
VBvel próbálkoztam ott a winshock objetkum sajnos azt használja...
15

OE phpből?

jbtibor · 2008. Jan. 11. (P), 20.34
Egyáltalán működne ez?
Használhatod a php mail függvényét, az első válaszban ajánlott PHPMailer-t, vagy az ehhez hasonló jónéhány megoldást.
19

:)

TeeCee · 2009. Nov. 17. (K), 13.33
hehe, régi volt, de jól válaszoltam rá :D
13

A logikátlanság gyilkol meg mindent.

s_volenszki · 2007. Jún. 18. (H), 13.48
Szia!

Bár a topic végére úgy látom feladtál minden reményt, amit ebben a közösségben láttál, de azt ne feljetsd el, hogy a válaszokként kapott "dorgálások" sok-sok segítséget tartalmaznak. Én amikor php-vel meg mysql-el kezdtem foglalkozni, hosszú hónapokon keresztül kudarcot kudarcra halmoztam, mire rájöttem a sikertelenségem okára:

Ha nem tudod a logika nyelvenén megfogalmazni, mit is szeretnél csinálni a programoddal, azt a kód még jobban összezavarja és te egyre kevesebbet fogsz érteni belőle!

Tűzd ki a célokat, határozd meg a célhoz vezető utat és ismerd meg az eszközöket, amiket a cél megvalósításához használnod kell! Lehet hogy úgy érzed, a <?php print "Hello world!"; ?> egy elcsépelt módszer megismerni egy programozási nyelvet, de építkezz stabil atomikus egységekből, és meglátod minden megvilágosodik a kódban!

És akkor az én javaslatom, amire neked szükséged van hogy megértsd a működését:

1. html űrlapok.
2. mysql adatbázis műveltetés.
3. php levélküldés mail függvénnyel vagy beágyazott eljárással.

Ezeket ismerd meg külön-külön, és utána már gyerekjáték lesz összegyúrni!

Jó munkát, jó tanulást!

s_volenszki
18

user id

S3RI0US · 2009. Nov. 17. (K), 09.44
hali!
csak egy ötlet: Miért nem rendelsz egy id-t minden felhasználóhoz, majd az id alapján ki tudod keresni a személyt az adatbázisból és csak a megfelelő adatokat küldöd el.

Üdv.
Tamás
16

Segítség

Akama · 2008. Júl. 1. (K), 18.54
Hello Akama vagyok, valaki meg tudná nekem tanítani a PHP használatát???(regisztrációs űrlapot kellene készítenem)
17

természetesen :)

Csorba Norbert · 2008. Júl. 1. (K), 19.19
Íme egy jó módja, hogy megtanuld: Nagy Gusztáv - Web programozás jegyzet
Ebben megtalálod az alapokat hozzá kliens és szerver oldalról egyaránt.
20

Sztem ezjó...

Hranka · 2010. Nov. 2. (K), 22.49
<h2 style="text-align: center"><span style="font-family: Comic Sans MS"><span style="font-size: xx-large"><strong>proba</strong></span></span></h2>
<p>&nbsp;</p>
<form method="post" action="http://www.shp.hu/hpc/hpc_urlap_feldolgozo.php">
<input type="hidden" name="urlapkod" value="1288729809" /><input type="hidden" name="azonosito" value="bolygonevelde" />
<table border="0" cellspacing="0" cellpadding="4">
<tbody>
<tr>
<td align="right">Név</td>
<td><input name="n[1]" type="text" /></td>
</tr>
<tr>
<td align="right">Üzenet</td>
<td><textarea rows="5" cols="25" name="n[2]"></textarea></td>
</tr>
<tr>
<td align="right">Életkor</td>
<td><input type="radio" name="n[3]" value="1-10" /> 1-10<br />
<input type="radio" name="n[3]" value="10-20" /> 10-20<br />
<input type="radio" name="n[3]" value="20-30" /> 20-30<br />
<input type="radio" name="n[3]" value="30-40" /> 30-40<br />
<input type="radio" name="n[3]" value="40-50" /> 40-50<br />
<input type="radio" name="n[3]" value="50-60" /> 50-60<br />
<input type="radio" name="n[3]" value="60-" /> 60-<br />
&nbsp;</td>
</tr>
<tr>
<td align="right">Nem</td>
<td><select name="n[4]">
<option value="Lány" selected="selected">Lány</option>
<option value="Fiú">Fiú</option>
</select></td>
</tr>
<tr>
<td align="right">Kedvenc szín</td>
<td><input type="checkbox" name="n[5]" value="on" /> piros<br />
<input type="checkbox" name="n[6]" value="on" /> zöld<br />
<input type="checkbox" name="n[7]" value="on" /> kék<br />
<input type="checkbox" name="n[8]" value="on" /> stb<br />
&nbsp;</td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="Küldés" /></td>
</tr>
</tbody>
</table>
</form>
21

Szerintem pedig nem

Poetro · 2010. Nov. 2. (K), 22.55
Szerintem pedig nem. Például nem használtál kód színezőt. És azt sem tudjuk, hogy ez mi alapján jó.
23

Ez csak egy...

KMartinR4 · 2011. Júl. 11. (H), 16.26
Már megbocsáss, de ez csak egy egyszerű űrlap, semmi köze a regisztrációhoz! Plusz még PHP sincs benne azon kívül, amit az shp.hu használ ahhoz, hogy a TE e-mailedre menjen az "üzenet"...
22

Egszerű megoldás

KMartinR4 · 2011. Júl. 11. (H), 14.05
nekem van egy nagyon egyszerű megoldásom a problémára! Most kezdem a PHP-t úgyhogy nem biztos, hogy jó!

Mi lenne, ha a getjel.php-ba beírnád, hogy "<?php echo $PHP_SELF?>" ??
Valószínűleg, akkor nem lenne baj, abból, hogy melyik regisztrációt küldi el neked, mert mindig elküldi az adatot, ha a gombra kattintanak. Nem?

Bocsi, ha hülyeséget írok, most kezdtem a PHP-t...
24

Mi volt ez?

Rák · 2012. Május. 1. (K), 16.19
átirányított egy weblapra most ez kinek küldi el?
25

Kérlek tegyél fel konkrét

Poetro · 2012. Május. 1. (K), 16.31
Kérlek tegyél fel konkrét kérdést, és amennyiben nem a fenti kérdéshez nagyon szorosan kapcsolódó, akkor új témaként. Ez egy majd egy 5 éves téma, és a legutóbbi hozzászólás is majd egy éves. Így valószínűleg már szinte egyik résztvevő se nagyon néz vissza erre a témára.
26

Akkor is...

Rák · 2012. Május. 1. (K), 16.38
mi volt az? valahova küldte de kinek?
27

Félreértetted

KMartinR4 · 2012. Nov. 2. (P), 14.57
Bocsi, Rák, tudom, későn írom meg a választ... és ha lehet, ne menjünk bele, miért néztem vissza a témát, hosszú. Tehát, válaszolok a te kérdésedre:

Én a kérdezőnek, kicsikepetike-nek válaszoltam, mivel, a problémája az volt, hogy a form vagy elküldi e-mailben az adatokat, vagy pedig egy külön getjel.php fájl segítségével beírja az adatbázisba.

Na most, én azt javasoltam neki, Egyszerű megoldás címmel, hogy a következő sort:
<?php echo $PHP_SELF?>
másolja be a getjel.php fájljába.

Ma már tudom, hogy ez a megoldás nem ilyen egyszerű; de akkor ez a megoldás kérdező problémájára logikusnak tűnt. Nem másnak ment a post, a kérdezőnek, kicsipetike-nek szántam. Remélem, most már érthető voltam.
28

Gyerekek,

Pepita · 2012. Nov. 4. (V), 23.31
olvassatok, gyakoroljatok sokat, mielőtt "jobbnál-jobb" válaszokat adtok múzeális korú kérdésekre!

(A saját fájlnevet soha nem írjuk kimenetre...)
29

Sziasztok! Tudna nekem valaki

Ricsi717 · 2012. Nov. 22. (Cs), 19.11
Sziasztok! Tudna nekem valaki segíteni:
Csináltam egy mailküldőt php-ban. Azt csinálj, hogy amikor rámész arra az oldalra, akkor egy levelet küld már egy beállított címre.:
<?
mail("w.ricsi2001##kukac##gmail.com",
"ez a tárgy",
"ez maga az üzenet");
?>


azt szeretném megcsinálni, hogy a html-ben lenne 3 darab szövegdoboz:......
1.: címzett:
2.: tárgy:
3.: maga az üzenet.
ezt szeretném html-ből átvinni php-ba.
meglehet csinálni?
30

Igen

Poetro · 2012. Nov. 22. (Cs), 19.57
A fentihez kell egy űrlap, arra kellene űrlap mezők. Ezt az űrlapot POST metódussal kell elküldeni a PHP-nak, hogy az űrlap action-je a a PHP kód URL-je, a method-ja pedig post. A PHP a $_POST nevű tömbben fogja megkapni ezeket a változókat az űrlap elküldése esetén. Ugyanakkor arra figyelni kell, hogy ez elég egyszerű spammelési formát tesz lehetővé, ezért nagyon kell ügyelni a PHP oldal kivitelezésére.
31

Hasból: index.php <?php

hunkris · 2012. Nov. 22. (Cs), 21.07
Hasból:
index.php

<?php 
 if($_POST['asd']=1){
mail("$_POST['cim']", "$_POST['targy']", "$_POST['uzenet']");

}
?>

<form action="index.php" method="post">
<input name="cim" type="text">címzett<br>
<input name="targy" type="text">tárgy<br>
<input name="uzenet" type="textfield">üzenet<br>
<input name="asd" type="hidden" value="1">
<input type="sumbit" value="küld">
</form>
Megjegyzem, ezt ne másold be egy az egyben a weboldaladba, mivel nem figyeltem sem a validitásra, sem a biztonságra, sem a performanszra. Szerintem előbb tanulj meg programozni, aztán állj neki te.
32

Ilyet NE

Poetro · 2012. Nov. 22. (Cs), 22.07
Na pont ilyet nem írunk. A fenti hemzseg a biztonsági réstől, amiket kihasználva a felhasználó annyi levelet küld, annyi címre, amennyit nem szégyell. A $_POST változókat idézőjelbe tenni teljesen felesleges, már így is stringek. A címzettet validálni kell, hogy csak pontosan egy emailcím legyen benne, és vizsgálni kell, hogy a felhasználó akár csak egy IP címről csak egy levelet küldhessen 5-10 percenként, különben széjjel spammelik a világot. Ezen kívül fontos még, hogy az űrlap egyedi legyen, hogy XSS/CSRF ellen védve legyél. Azaz tegyük fel, hogy van egy rosszindulatú oldal, ahol a felhasználó valamilyen cselekedete a te oldaladra küld egy POST kérést a rosszindulatú felhasználó által kitöltött adatokkal, ezáltal más felhasználókat használ a spam elküldésére.
33

if($_POST['asd']=1){Logikai

kuka · 2012. Nov. 23. (P), 09.12
if($_POST['asd']=1){
Logikai hiba: ez mindig igaz lesz.
mail("$_POST['cim']", "$_POST['targy']", "$_POST['uzenet']");
Szintaktikai hiba: idézőjelbe rakott tömb indexe körül nem lehet újabb idézőjel vagy felső vessző.