dracek (hjosef.net) je věčně s něčím nespokojen ;-) a proto se není čemu divit že ani modul Feedback neušel jeho pozornosti.
Není se vlastně ani čemu divit, protože se jedná o celkem jednoduchý emailový formulář bez jakékoliv ochrany před spamery.
Věděl přesně jakou úpravu by rád, ale nějak mu to nešlo zkloubit dohromady tak aby to tvořilo kompaktní celek, tak jsme mu s tím malinko pomohli a zde je výsledek.
Nebudeme se dále moc zdržovat a zde máte celý kód, kterým stačí nahradit soubor
{ Kód }:
<?php
/**
* UNITED-NUKE CMS: Just Manage!
* http://united-nuke.openland.cz/
* http://united-nuke.openland.cz/forums/
*
* 2002 - 2005, (c) Jiri Stavinoha
* http://united-nuke.openland.cz/weblog/
*
* Portions of this software are based on PHP-Nuke
* http://phpnuke.org - 2002, (c) Francisco Burzi
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
**/
/************************************************************/
/* Upravený modul Feedback */
/* Nutný opis bezpečnostního kodu před odesláním Emailu */
/* kontrolu správnosti emailu a záznam IP odesílatele */
/* Jedná se o soubor z názvem index.php */
/* Vytvořily dracek a Blassen jinak taky Hj&Bw */
/* 29.6.2006 */
/************************************************************/
if (!stristr($_SERVER['SCRIPT_NAME'], "modules.php") OR !defined('UN_KERNELFILES_LOADED')) {
die ("You can't access this file directly...");
}
require_once("mainfile.php");
$module_name = basename(dirname(__FILE__));
get_lang($module_name);
/**********************************/
/* Configuration */
/* */
/* You can change this: */
/* $index = 0; (right side off) */
/**********************************/
$index = 1;
$subject = $sitename." "._FEEDBACK;
/**********************************/
/////////////////////////////////////////////////////////////////
//// definice lang cz ktere nejsou v originalu Feedback modulu
define("_BW_SECCODEERROR","CHYBA: Vloľený bezpečnostní kód je nesprávný!");
define("_BW_SECURITYCODE","Bezpečnostní kód");
define("_BW_TYPESECCODE","Do tohoto pole vloľte bezpečnostní kód");
define("_BW_SECURITYIP","Z bezpečnostních důvodů bude dočasně zaznamenána vaąe IP adresa.");
define("_BW_IP","IP adresa odesílatele");
define("_BW_VIP","Vaąe IP :");
////////// konec definice lang cz ////////////////////////////////////////////////////////
include("header.php");
global $stop, $ip, $hostnm;
$ip = $_SERVER["REMOTE_ADDR"] ;
$hostnm = gethostbyaddr("$ip");
mt_srand ((double)microtime()*1000000);
$maxran = 1000000;
$random_num = mt_rand(0, $maxran);
$datekey = date("F j");
$rcode = hexdec(md5($_SERVER['HTTP_USER_AGENT'].$sitekey.$_POST['random_num'].$datekey));
$code = substr($rcode, 2, 6);
$cookie[0] = intval($cookie[0]);if ($cookie[1] != "") { $result = $db->sql_query("SELECT name, username, user_email FROM ".UN_TABLENAME_USERS." WHERE user_id='".$cookie[0]."'"); $row = $db->sql_fetchrow($result); $db->sql_freeresult($result); if ($row['name'] != "") { $sender_name = $row['name']; } else { $sender_name = $row['username']; } $sender_email = $row['user_email'];} elseif ($opi != "ds") { $sender_email = "";}
$form_block = "
<center><br /><font class=\"title\"><b>"._FEEDBACKTITLE."</b></font>
<br /><br /><font class=\"content\">"._FEEDBACKNOTE."</font>
<form method=\"post\" action=\"modules.php?name=$module_name\">
<p><strong>"._YOURNAME.":</strong><br />
<input type=\"text\" name=\"sender_name\" value=\"$sender_name\" size=\"30\"></p>
<P><strong>"._YOUREMAIL.":</strong><br />
<input type=\"text\" name=\"sender_email\" value=\"$sender_email\" size=\"30\"></p>
<P><strong>"._MESSAGE.":</strong><br />
<textarea name=\"message\" cols=\"50\" rows=\"15\" wrap=\"virtual\">$message</textarea></p>
<font color=\"red\">*</font><b>"._BW_SECURITYCODE.":</b><br /><img src=\"?gfx=gfx&random_num=".$random_num."\" border=\"1\" alt=\""._BW_SECURITYCODE."\" title=\""._BW_SECURITYCODE."\">
<hr width=\"40%\" size=\"1\">
"._BW_TYPESECCODE.":<br /><input type=\"text\" name=\"gfx_check\" size=\"7\" maxlength=\"6\"><br />
<input type=\"hidden\" name=\"random_num\" value=\"".$random_num."\">
<input type=\"hidden\" name=\"opi\" value=\"ds\">
<p><input type=\"submit\" name=\"submit\" value=\""._SEND."\"></p>
</form></center>
";
OpenTable();
if ($opi != "ds") {
echo "$form_block";
} elseif ($opi == "ds") {
if ($sender_name == "") {
$name_err = "<center><font class=\"option\"><b><i>"._FBENTERNAME."</i></b></font></center><br />";
$send = "no";
}
if ($sender_email == "") {
$email_err = "<center><font class=\"option\"><b><i>"._FBENTEREMAIL."</i></b></font></center><br />";
$send = "no";
}
elseif ( !eregi("^[a-zA-Z0-9_\.]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$", $sender_email ) )
{
$email2_err = "<center><font class=\"option\"><b><i>"._BW_ENTERINVALIDEMAIL."</i></b></font></center><br />";
$send = "no";
}
if ($message == "") {
$message_err = "<center><font class=\"option\"><b><i>"._FBENTERMESSAGE."</i></b></font></center><br>";
$send = "no";
}
if (!$stop) {
if (extension_loaded("gd") AND $code != $gfx_check AND ($gfx_chk == 3 OR $gfx_chk == 4 OR $gfx_chk == 6 OR $gfx_chk == 7)) {
$err_stop = "<center><font class=\"option\"><b><i>"._BW_SECCODEERROR."</i></b></font></center>";
$send = "no";
}
}
if ($send != "no") {
$sender_name = removecrlf($sender_name);
$sender_email = removecrlf($sender_email);
$msg = $sitename."\n\n";
$msg .= ""._SENDERNAME.": $sender_name\n";
$msg .= ""._SENDEREMAIL.": $sender_email\n"._BW_IP.": $ip - $hostnm \n\n";
$msg .= ""._MESSAGE.": $message\n\n";
$to = $adminmail;
$mailheaders = "From: $sender_name <$sender_email>\n";
$mailheaders .= "Reply-To: $sender_email\n\n";
un_mail($to, $subject, $msg, $mailheaders);
echo "<P><center><b>"._FBMAILSENT."</b></center></p>";
echo "<P><center><i>"._FBTHANKSFORCONTACT."</i></center></p>";
echo "<P><center><br /><br /><font class=\"content\">"._BW_SECURITYIP."<br />"._BW_VIP."<b> $ip </b></font></center></p>";
} elseif ($send == "no") {
OpenTable2();
echo "$name_err";
echo "$email_err";
echo "$email2_err";
echo "$message_err";
echo "$err_stop";
CloseTable2();
echo "<br /><br />";
echo "$form_block";
}
}
CloseTable();
echo "<br />";
include("footer.php");
?>
Doufáme že Vám tento článek pomohl pokud jste s tímto modulem měli podobný problém jako dracek.