Biztonsági kód megadása ürlapnál
Sziasztok!
Van egy e-mail küldő modulom ami egy php-nuke alá van betéve és tök jól működik a dolog.
Viszont szeretnék egy Biztonsági kódos megoldást betenni mielőtt elküldi valaki a mailt kivédve különböző robotok meg miegymás spam küldési trükköket.
A köv kódról van szó:
A kódot szépen megjeleníti és újat is generál frissítéskor.
De nem tudom egyszerűen rá venni arra, hogy vissza dobjon ha hibás kódot írok be.
ha jól tippelem a randum_num -ot kellene nekem le ellenőriztetni esetleg azt a gfx_check-et.
És gondolom vmi function randum_num(($gfx_check) { akármivel kéne leellenőriznem de sehogy se megy.
Ha valaki meg tudja ezt nekem mondani, hogy hogyan is kéne azt meg köszönném!
Üdv.
■ Van egy e-mail küldő modulom ami egy php-nuke alá van betéve és tök jól működik a dolog.
Viszont szeretnék egy Biztonsági kódos megoldást betenni mielőtt elküldi valaki a mailt kivédve különböző robotok meg miegymás spam küldési trükköket.
A köv kódról van szó:
<?php
#### Generated by Module Creator - By Disipal site (www.disipal.net) ####
if (!eregi("modules.php", $PHP_SELF)) {
die ("You can't access this file directly...");
}
require_once("mainfile.php");
$module_name = basename(dirname(__FILE__));
include("header.php");
$index = 1;
OpenTable();
echo"Az alábbi ûrlap kitöltésével üzenetet küldhet az szamunkra részére érdeklõdési szándékkal.<br>"
. "<form action=\"modules.php?name=Erdeklodes&file=elkuldo_kuldo\" method=\"post\"> "
. "<p><input type=\"hidden\" name=\"mailto\" value=\"mail##kukac##cim.hu\">"
. "<form name=\"form1\" method=\"post\" style=\"font-family:'Times New Roman';\">"
. "<p>Adja meg nevét: <input type=\"text\" name=\"nev\"></p>"
. "<p>Adja meg e-mail címét: <input type=\"text\" name=\"emailcim\"></p>"
. "<p>Adja meg telefonszámát: <input type=\"text\" name=\"telefonszam\"></p>"
. "<p>Ide írja üzenetét<br><textarea name=\"uzi\" rows=\"10\" cols=\"50\"></textarea></p>"
. "<p>Kérjük jelölje be, hogy milyen formában kér vissza jelzést:<br>"
. "E-mail-ben: <select name=\"emailben\" size=\"1\">"
. " <option>Igen</option>"
. " <option>Nem</option>"
. "</select> Telefonon: <select name=\"telefon\" size=\"1\">"
. " <option>Igen</option>"
. " <option>Nem</option>"
. "</select>";
global $gfx_chk;
mt_srand ((double)microtime()*1000000);
$maxran = 1000000;
$random_num = mt_rand(0, $maxran);
if (extension_loaded("gd") AND ($gfx_chk == 3 OR $gfx_chk == 4 OR $gfx_chk == 6 OR $gfx_chk == 7)) {
echo "<tr><td>"._SECURITYCODE.":</td><td><img src='?gfx=gfx&random_num=$random_num' border='1' alt='"._SECURITYCODE."' title='"._SECURITYCODE."'></td></tr>\n"
."<tr><td>"._TYPESECCODE.":</td><td><input type=\"text\" NAME=\"gfx_check\" SIZE=\"7\" MAXLENGTH=\"6\"></td></tr>\n"
."<input type=\"hidden\" name=\"random_num\" value=\"$random_num\">\n";
}
echo "<tr><td colspan='2'>\n"
."<input type=\"hidden\" name=\"op\" value=\"new user\">\n"
."<p><input type=\"submit\" value=\"Beküldés\" name=\"Beküldés\">"
. "</form>";
CloseTable();
include("footer.php");
?>
#### Generated by Module Creator - By Disipal site (www.disipal.net) ####
if (!eregi("modules.php", $PHP_SELF)) {
die ("You can't access this file directly...");
}
require_once("mainfile.php");
$module_name = basename(dirname(__FILE__));
include("header.php");
$index = 1;
OpenTable();
echo"Az alábbi ûrlap kitöltésével üzenetet küldhet az szamunkra részére érdeklõdési szándékkal.<br>"
. "<form action=\"modules.php?name=Erdeklodes&file=elkuldo_kuldo\" method=\"post\"> "
. "<p><input type=\"hidden\" name=\"mailto\" value=\"mail##kukac##cim.hu\">"
. "<form name=\"form1\" method=\"post\" style=\"font-family:'Times New Roman';\">"
. "<p>Adja meg nevét: <input type=\"text\" name=\"nev\"></p>"
. "<p>Adja meg e-mail címét: <input type=\"text\" name=\"emailcim\"></p>"
. "<p>Adja meg telefonszámát: <input type=\"text\" name=\"telefonszam\"></p>"
. "<p>Ide írja üzenetét<br><textarea name=\"uzi\" rows=\"10\" cols=\"50\"></textarea></p>"
. "<p>Kérjük jelölje be, hogy milyen formában kér vissza jelzést:<br>"
. "E-mail-ben: <select name=\"emailben\" size=\"1\">"
. " <option>Igen</option>"
. " <option>Nem</option>"
. "</select> Telefonon: <select name=\"telefon\" size=\"1\">"
. " <option>Igen</option>"
. " <option>Nem</option>"
. "</select>";
global $gfx_chk;
mt_srand ((double)microtime()*1000000);
$maxran = 1000000;
$random_num = mt_rand(0, $maxran);
if (extension_loaded("gd") AND ($gfx_chk == 3 OR $gfx_chk == 4 OR $gfx_chk == 6 OR $gfx_chk == 7)) {
echo "<tr><td>"._SECURITYCODE.":</td><td><img src='?gfx=gfx&random_num=$random_num' border='1' alt='"._SECURITYCODE."' title='"._SECURITYCODE."'></td></tr>\n"
."<tr><td>"._TYPESECCODE.":</td><td><input type=\"text\" NAME=\"gfx_check\" SIZE=\"7\" MAXLENGTH=\"6\"></td></tr>\n"
."<input type=\"hidden\" name=\"random_num\" value=\"$random_num\">\n";
}
echo "<tr><td colspan='2'>\n"
."<input type=\"hidden\" name=\"op\" value=\"new user\">\n"
."<p><input type=\"submit\" value=\"Beküldés\" name=\"Beküldés\">"
. "</form>";
CloseTable();
include("footer.php");
?>
A kódot szépen megjeleníti és újat is generál frissítéskor.
De nem tudom egyszerűen rá venni arra, hogy vissza dobjon ha hibás kódot írok be.
ha jól tippelem a randum_num -ot kellene nekem le ellenőriztetni esetleg azt a gfx_check-et.
És gondolom vmi function randum_num(($gfx_check) { akármivel kéne leellenőriznem de sehogy se megy.
Ha valaki meg tudja ezt nekem mondani, hogy hogyan is kéne azt meg köszönném!
Üdv.
Chapta
captcha
Re
Találtam egy a php stúdio oldalán remélem műxik ha nem jövök újra!:)
hm
A kövképpen sikerült megoldani a problémát
#### Generated by Module Creator - By Disipal site (www.disipal.net) ####
if (!eregi("modules.php", $PHP_SELF)) {
die ("You can't access this file directly...");
}
require_once("mainfile.php");
$module_name = basename(dirname(__FILE__));
include("header.php");
$index = 0;
OpenTable();
$hova = "modules.php?name=Erdeklodes&file=erno_kuld";
session_start();
if($_POST['rand'] != NULL)
{
$kod = $_SESSION['r1'].$_SESSION['r2'].$_SESSION['r3'].$_SESSION['r4'].$_SESSION['r5'];
//ha már beirtuk a kódot, és helyes, akkor átirányit
if($kod == $_POST['rand'])
{
$_SESSION['b'] = 1;
header("Location: $hova");
}else{
//helytelen kód esetén hibaüzenet
$hiba = "Helytelen kód!";
}
}
include("rand.php");
$_SESSION['r1'] = $tomb[$arand1];
$_SESSION['r2'] = $tomb[$arand2];
$_SESSION['r3'] = $tomb[$arand3];
$_SESSION['r4'] = $tomb[$arand4];
$_SESSION['r5'] = $tomb[$arand5];
print $hiba;
echo"Az alábbi ûrlap kitöltésével üzenetet küldhet az Aqua-med Vendégház részére érdeklõdési szándékkal.<br>"
. "<form action=\"modules.php?name=Erdeklodes&file=erno\" method=\"post\"> "
. "<form name=\"form1\" method=\"post\" style=\"font-family:'Times New Roman';\">"
. "<p>Adja meg nevét: <input type=\"text\" name=\"nev\"></p>"
. "<p>Adja meg e-mail címét: <input type=\"text\" name=\"emailcim\"></p>"
. "<p>Adja meg telefonszámát: <input type=\"text\" name=\"telefonszam\"></p>"
. "<p>Ide írja üzenetét<br><textarea name=\"uzi\" rows=\"10\" cols=\"50\"></textarea></p>"
. "<p>Kérjük jelölje be, hogy milyen formában kér vissza jelzést:<br>"
. "E-mail-ben: <select name=\"emailben\" size=\"1\">"
. " <option>Igen</option>"
. " <option>Nem</option>"
. "</select> Telefonon: <select name=\"telefon\" size=\"1\">"
. " <option>Igen</option>"
. " <option>Nem</option>"
. "</select>"
. "</p>"
. "Ide írd a képen látható kódot:<br>"
. "<input name=\"rand\" type=\"text\" size=\"10\"><br>"
. "<img src=\"kod.php\" alt=\"kód\">"
. " <p><input type=\"submit\" value=\"Beküldés\" name=\"Beküldés\"> <input type=\"reset\" value=\"Törlés\" name=\"Törlés\">"
. "</form>";
CloseTable();
include("footer.php");
?>
A probléma csak az, hogy amikor elküldi a mailt akkor teljesen üresen érkezik meg.
Több féle variációt kipróbáltam de nem jöttem rá...
Amit letölttem scriptet abban volt egy tovabb.php ami le ellenörzi, hogy helyes volt-e a kód azt is beraktam abba a file-be ami kiküldi a mailt.
Re: a mail teljesen üresen érkezik meg
A problémát, észrevételeim szerint a /// header("Location: $hova"); /// jelenti, de javítsatok ki, ha tévedek. Ugyanis ezzel csak azt érted el, hogy a form által küldött változók értékei, most az örök búzamezőkön kaszálgatnak. :)
Én elsőként letesztelném, hogy megkapja-e-é a mail küldő file a form értékeit:
$_POST['nev'];
$_POST['emailcím'];
$_POST['telefonszam'];
$_POST['uzi'];
stb...
de szerintem nem
persze lehet, hogy tévedek! Csekkold! ;-)
Re: a mail teljesen üresen érkezik meg
A problémát, észrevételeim szerint a /// header("Location: $hova"); /// jelenti, de javítsatok ki, ha tévedek. Ugyanis ezzel csak azt érted el, hogy a form által küldött változók értékei, most az örök búzamezőkön kaszálgatnak. :)
Én elsőként letesztelném, hogy megkapja-e-é a mail küldő file a form értékeit:
$_POST['nev'];
$_POST['emailcím'];
$_POST['telefonszam'];
$_POST['uzi'];
stb...
de szerintem nem
persze lehet, hogy tévedek! Csekkold! ;-)
RE
RE
Ez a kód küldené el elvileg:
. "<p>Az alábbi adatokkal elküldtük üzenetét a magam Részére:</p>";
$cimzett = "mail##kukac##cim.hu";
$targy = "Nekem - Érdeklődés";
$uzenet = "
Név: $nev\n
E-mail: $emailcim\n
Telefonszám: $telefonszam\n
Üznet: $uzi\n
Értesítést kér E-mailben:$emailben\n
Értesítést kér Telefonon:$telefon\n
";
mail( $cimzett, $targy, $uzenet, "From: $emailcim\r" );
print "Az ön neve: $nev<br>";
print "Az ön e-mail címe: $emailcim<br>";
print "Az ön Telefonszáma: $telefonszam<br>";
print "Az ön Üzenete: $uzi<br>";
Re: kiprobáltam, de akkor sem...
Leginkább erre lennék kiváncsi "????" hogy ahova a kérdőjeleket raktam ott mit ír ki neked az oldalra?
Az ön neve: ????
Az ön e-mail címe: ????
Az ön Telefonszáma: ????
Az ön Üzenete: ????
Megj.: a kérdőjelek helyén ha nem ír ki semmit, akkor télleg nem mennek át a váltózók értékei
Ebben az esetben PROBAKÉPPEN cseréld le a $hova változó értékét az alábbiakra és nézd meg akkor mi történik:
$hova = "modules.php?name=Erdeklodes&file=erno_kuld&nev=".$_POST[nev]."&emailcim=".$_POST[emailcim]."&telefonszam=".$_POST[telefonszam]."&uzi=".$_POST[uzi]."&emailben=".$_POST[emailben]."&telefon=".$_POST[telefon]."";
ez nem a legmegfelelőbb megoldás, de legalább kiderül, hogy igy müxik-e a dolog... és ha igen akkor sem ártana meg reguláznod a kódjaidat, mert elég kesze-kusza (persze ezt nem bántásképp mondom) ;-)
wow
Nem veszem bántásnak tudom, hogy naon kis szerencsétlen:)
Amúgy eddig nem írt ki semmit a print-es dolog amikor elküldtem.Most igen.
Nem vágom miért 3x
<?php
#### Generated by Module Creator - By Disipal site (www.disipal.net) ####
if (!eregi("modules.php", $PHP_SELF)) {
die ("You can't access this file directly...");
}
require_once("mainfile.php");
$module_name = basename(dirname(__FILE__));
include("header.php");
$index = 0;
OpenTable();
session_start();
if($_POST['rand'] != NULL)
{
$kod = $_SESSION['r1'].$_SESSION['r2'].$_SESSION['r3'].$_SESSION['r4'].$_SESSION['r5'];
//ha már beirtuk a kódot, és helyes, akkor átirányit
if($kod == $_POST['rand'])
{
$_SESSION['b'] = 1;
$formcheck = "ok";
echo"<p>Köszönjük, hogy Oldalunkat választotta!</p>"
. "<p>Az alábbi adatokkal elküldtük üzenetét a magam Részére:</p>";
$cimzett = "mail##kukac##cim.hu";
$targy = "Nekem - Érdeklődés";
$uzenet = "
Név: $nev\n
E-mail: $emailcim\n
Telefonszám: $telefonszam\n
Üznet: $uzi\n
Értesítést kér E-mailben:$emailben\n
Értesítést kér Telefonon:$telefon\n
";
mail( $cimzett, $targy, $uzenet, "From: $emailcim\r" );
}else{
//helytelen kód esetén hibaüzenet
$hiba = "Helytelen kód!";
}
}
if ($formcheck <> "ok"){
include("rand.php");
$_SESSION['r1'] = $tomb[$arand1];
$_SESSION['r2'] = $tomb[$arand2];
$_SESSION['r3'] = $tomb[$arand3];
$_SESSION['r4'] = $tomb[$arand4];
$_SESSION['r5'] = $tomb[$arand5];
print $hiba;
echo"Az alábbi urlap kitöltésével üzenetet küldhet az Aqua-med Vendégház részére érdeklodési szándékkal.<br>"
. "<form action=\"modules.php?name=Erdeklodes&file=erno\" method=\"post\"> "
. "<form name=\"form1\" method=\"post\" style=\"font-family:'Times New Roman';\">"
. "<p>Adja meg nevét: <input type=\"text\" name=\"nev\"></p>"
. "<p>Adja meg e-mail címét: <input type=\"text\" name=\"emailcim\"></p>"
. "<p>Adja meg telefonszámát: <input type=\"text\" name=\"telefonszam\"></p>"
. "<p>Ide írja üzenetét<br><textarea name=\"uzi\" rows=\"10\" cols=\"50\"></textarea></p>"
. "<p>Kérjük jelölje be, hogy milyen formában kér vissza jelzést:<br>"
. "E-mail-ben: <select name=\"emailben\" size=\"1\">"
. " <option>Igen</option>"
. " <option>Nem</option>"
. "</select> Telefonon: <select name=\"telefon\" size=\"1\">"
. " <option>Igen</option>"
. " <option>Nem</option>"
. "</select>"
. "</p>"
. "Ide írd a képen látható kódot:<br>"
. "<input name=\"rand\" type=\"text\" size=\"10\"><br>"
. "<img src=\"kod.php\" alt=\"kód\">"
. " <p><input type=\"submit\" value=\"Beküldés\" name=\"Beküldés\"> <input type=\"reset\" value=\"Törlés\" name=\"Törlés\">"
. "</form>";
}
CloseTable();
include("footer.php");
?>
Zsír
Nem is gondoltam rá, hogy egybe rakjam a kettőt.
Hiába nem vagyok profi
Még 1 dolog
átírod
Még 1 dolog