ugrás a tartalomhoz

Adatok ellenőrzése és küldése űrlapból HTML formátumban.

Anonymous · 2005. Nov. 21. (H), 12.54
Sziasztok!

Van egy űrlapom amiből beolvasom azadatokat, majd elküldöm e-mail-ben (HTML formátumban.
A segítségeteket szeretném kérni a következő problémákkal kapcsolatban:

1. Nem működik az (isset($valtozo)) függvény, a feldolgoz.php-ban. Mit rontottam el???
Mindig kiírja az eredményt és mindíg elküldi az e-mail, még akkor is, ha nem töltök ki egy mezőt sem.

2. Hogyan lehet megcsinálni azt, hogy csak akkor küldje ez az e-mailt, ha ráklikkelek egy gombra?

Előre is nagyon köszönöm a segítséget!

Itt vannak forráskódok:

urlap.php
<? ob_start(); ?>
<html>
<head>
<script type="text/javascript" src="torol.js"></script>
</head>
<body>
<FORM name='form_colab' ACTION='feldolgoz.php' METHOD='post'>
<B>Név:</B>
<INPUT type='text' name='nev'><BR>
<B>Helység:</B>
<INPUT type='text' name='helyseg'><BR>
<B>e-mail:</B>
<INPUT type='text' name='email'><BR>
<input type='submit' name='submit' value='Küldés'>
<input type='button' name='sterge' value='Törlés' onclick='torol()'>
</FORM>
</BODY>
</HTML>
<? ob_end_flush(); ?>
feldolgoz.php
<?php

if ((isset($nev)) & (isset($helyseg)) & (isset($email))) {

$szoveg = "<HTML>";
$szoveg = $szoveg . "<BODY bgcolor=lightblue>";
$szoveg = $szoveg . "<br><br><br>";
$szoveg = $szoveg . "<p align='center'><font color='#000084' size=3><b>Az Ön által megatott adatok a következôek:</b></font></p>";
$szoveg = $szoveg . "<br><br><br>";
$szoveg = $szoveg . "<B>&nbsp;&nbsp;&nbsp;&nbsp;Név:</B> $nev<BR>";
$szoveg = $szoveg . "<B>&nbsp;&nbsp;&nbsp;&nbsp;Helység:</B> $helyseg<BR>";
$szoveg = $szoveg . "<B>&nbsp;&nbsp;&nbsp;&nbsp;e-mail:</B> $email<BR>";
$szoveg = $szoveg . "<br><br><br>";
$szoveg = $szoveg . "</BODY>";
$szoveg = $szoveg . "</HTML>";
print $szoveg;

print "<FORM name='form'>";
print "<TABLE ALIGN='LEFT' WIDTH=8% BORDER=0 CELLPADDING=2 CELLSPACING=2><TBODY>";
print "<TR><TD ALIGN='RIGHT' NOWRAP>";
print "<input type='submit' name='submit' value='Küldés' onclick ='?????????'>";
print "</TD>";
print "<TD ALIGN='CENTER' NOWRAP>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
print "<input type='button' name='vissza' value='Módosítás' onClick='location.href='urlap.php'>";
print "</TD></TR>";
print "</TBODY></TABLE>";
print "</FORM>";

mail ("millye.laszlo##kukac##dsvcv.planet.ro","proba level",$szoveg,"From: felado##kukac##emailcim.hu(WWW.SCHWABEN.RO)\nX-Priority: 1 (Highest)\nMIME-Version: 1.0\nContent-type: text/html; charset=iso-8859-1");
}

else {
print "Hiányosak az adatok, nem töltött ki minden mezôt!";
header('Location: urlap.php');
}

?>
 
1

empty()

phpista · 2005. Nov. 21. (H), 13.34
1.) Az isset() helyett az:
empty(trim($nev)) stb... használd.
Ha az isset()-et használod nem lesz jó, mert változót ugyan átadtál a feldolgozó oldalnak, viszont az értéke üres, semmi, így a semmit küldöd el emailben.
2.) A törlés gombnál mi az az onClick esemény, egyszerűbb a : <input type="reset" value="Törlés">
3.) A $_POST[] tömböt használd a feldolgozó oldalon, biztonságosabb és így a helyes.
4.) A feldolgozó oldalt buffereld ne küldőt.
5.) a sok &npsp; helyett inkább bízd a CSS-re a margót.


Hát röviden ennyi. Remélem segítettem!
4

Köszönöm!

Anonymous · 2005. Nov. 21. (H), 15.11
Persze, hogy segítettél és még egyszer köszönöm!
Még csak egy kérdésem lenne. :)
A feldolgozó oldalon a print() függvénnyel íratom ki az űrlapot, amely két gombot tartalmaz: submit (Küldés) és button (Vissza). ez utóbbinál megadtam egy onclick eseményt a következő képpen: onClick='location.href='urlap.php'', de ez valamiert nem működik. Mit tegyek, hogy erre a gonbra kattintva visszaterelgessem a böngészőbe az "urlap.php"-t? Neked biztosan van valami jó ötleted. :)
Még egyszer köszi szépen!
5

history.back()

phpista · 2005. Nov. 21. (H), 15.45
<a href="/javascript:history.back()" target="_self">Vissza</a>
2

empty

Off- · 2005. Nov. 21. (H), 13.38
az isset azt viszgálja, hogy vannak-e olyan változok, és vannak is a scriptedben a form elkuldese utan, csak üresek. ezt az empty() függvénnyel nézheted meg.

továbba a $szoveg = $szoveg . "....."; aztan a végén kiirtad a $szoveg változot módszer nagyon tetszett nekem :)
csinálhatnad igy is:
print "A szoveg . $egyvaltozo . "még egy kis szoveg" .
"uj sor";
*****
Durucz Gábor
3

<Nincs cím>

azb · 2005. Nov. 21. (H), 15.07
.= osszefuzesre