Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.39 veröffentlicht (02.06.25)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
Kontaktformular erweitern
#1
Hallo Community,

das Problem ist doch nicht beseitigt. Folgendes möchte ich machen:

Ich habe das Kontaktformular soweit bearbeitet, dass ich den Betreff gelöscht habe und zwei Kategorien mit den Namen: Ingame Name und GUID hinzugefügt hab. Die PHP Datei habe ich auch soweit erfolgreich bearbeitet und in der MySQL Datenbank die beiden hinzugefügt, allerdings kommt bei der Email immer noch nicht das gewünschte Ergebnis.

Hier mal die beiden Dateien:


Code:
<html>
<head>
<title>{$mybb->settings['bbname']} - {$lang->contact}</title>
{$headerinclude}
</head>
<body>
{$header}
<form action="contact.php" method="post">
    <input type="hidden" name="my_post_key" value="{$mybb->post_code}" />
    {$errors}
    <table border="0" cellspacing="{$theme['borderwidth']}" cellpadding="{$theme['tablespace']}" class="tborder">
        <tr>
        <td class="thead" colspan="2"><strong>{$lang->contact}</strong></td>
        </tr>
       <tr>
        <td class="trow1" valign="top"><strong>Ingame Name:</strong><br /><span class="smalltext">Wie lautet dein Ingame Name.</span></td>
        <td class="trow1"><input type="text" name="ingame" class="textbox" size="49" value="{$mybb->input['ingame']}" /></td>
        </tr>
       <tr>
        <td class="trow2" valign="top"><strong>GUID:</strong><br /><span class="smalltext">Deine GUID muss genau 32 Stellen betragen.</span></td>
        <td class="trow2"><input type="text" name="guid" class="textbox" size="49" value="{$mybb->input['guid']}" /></td>
        </tr>
        <tr>
        <td class="trow1" valign="top"><strong>Bewerbung:</strong><br /><span class="smalltext">Schreibe uns eine kleine Bewerbung warum wir genau dich Whitelisten sollen.</span></td>
        <td class="trow1"><textarea cols="50" rows="10" name="message" class="textarea" >{$mybb->input['message']}</textarea></td>
        </tr>
        <tr>
        <td class="trow2" valign="top"><strong>{$lang->contact_email}:</strong><br /><span class="smalltext">{$lang->contact_email_desc}</span></td>
        <td class="trow2"><input type="text" name="email" class="textbox" size="49" value="{$mybb->input['email']}" /></td>
        </tr>
        {$captcha}
    </table>
    <br />
    <div align="center">
        <input type="submit" class="button" name="submit" value="{$lang->contact_send}" />
    </div>
</form>
{$footer}
</body>
</html>

PHP-Code:
<?php
/**
* MyBB 1.8
* Copyright 2014 MyBB Group, All Rights Reserved
*
* Website: http://www.mybb.com
* License: http://www.mybb.com/about/license
*
*/

define("IN_MYBB", 1);
define('THIS_SCRIPT', 'contact.php');

$templatelist = "contact,post_captcha";

require_once
"./global.php";
require_once
MYBB_ROOT.'inc/class_captcha.php';

// Load global language phrases
$lang->load("contact");

$plugins->run_hooks('contact_start');

// Make navigation
add_breadcrumb($lang->contact, "contact.php");

if(
$mybb->settings['contact'] != 1 || (!$mybb->user['uid'] && $mybb->settings['contact_guests'] == 1))
{
error_no_permission();
}

// Check group limits
if($mybb->usergroup['maxemails'] > 0)
{
if(
$mybb->user['uid'] > 0)
{
$user_check = "fromuid='{$mybb->user['uid']}'";
}
else
{
$user_check = "ipaddress=".$db->escape_binary($session->packedip);
}

$query = $db->simple_select("maillogs", "COUNT(*) AS sent_count", "{$user_check} AND dateline >= '".(TIME_NOW - (60*60*24))."'");
$sent_count = $db->fetch_field($query, "sent_count");
if(
$sent_count >= $mybb->usergroup['maxemails'])
{
$lang->error_max_emails_day = $lang->sprintf($lang->error_max_emails_day, $mybb->usergroup['maxemails']);
error($lang->error_max_emails_day);
}
}

// Check email flood control
if($mybb->usergroup['emailfloodtime'] > 0)
{
if(
$mybb->user['uid'] > 0)
{
$user_check = "fromuid='{$mybb->user['uid']}'";
}
else
{
$user_check = "ipaddress=".$db->escape_binary($session->packedip);
}

$timecut = TIME_NOW-$mybb->usergroup['emailfloodtime']*60;

$query = $db->simple_select("maillogs", "mid, dateline", "{$user_check} AND dateline > '{$timecut}'", array('order_by' => "dateline", 'order_dir' => "DESC"));
$last_email = $db->fetch_array($query);

// Users last email was within the flood time, show the error
if($last_email['mid'])
{
$remaining_time = ($mybb->usergroup['emailfloodtime']*60)-(TIME_NOW-$last_email['dateline']);

if(
$remaining_time == 1)
{
$lang->error_emailflooding = $lang->sprintf($lang->error_emailflooding_1_second, $mybb->usergroup['emailfloodtime']);
}
elseif(
$remaining_time < 60)
{
$lang->error_emailflooding = $lang->sprintf($lang->error_emailflooding_seconds, $mybb->usergroup['emailfloodtime'], $remaining_time);
}
elseif(
$remaining_time > 60 && $remaining_time < 120)
{
$lang->error_emailflooding = $lang->sprintf($lang->error_emailflooding_1_minute, $mybb->usergroup['emailfloodtime']);
}
else
{
$remaining_time_minutes = ceil($remaining_time/60);
$lang->error_emailflooding = $lang->sprintf($lang->error_emailflooding_minutes, $mybb->usergroup['emailfloodtime'], $remaining_time_minutes);
}

error($lang->error_emailflooding);
}
}

$errors = array();

$mybb->input['message'] = trim_blank_chrs($mybb->get_input('message'));
$mybb->input['email'] = trim_blank_chrs($mybb->get_input('email'));

if(
$mybb->request_method == "post")
{
// Verify incoming POST request
verify_post_check($mybb->get_input('my_post_key'));

$plugins->run_hooks('contact_do_start');

// Validate input


if(empty($mybb->input['message']))
{
$errors[] = $lang->contact_no_message;
}

if(
strlen($mybb->input['message']) > $mybb->settings['contact_maxmessagelength'] && $mybb->settings['contact_maxmessagelength'] > 0)
{
$errors[] = $lang->sprintf($lang->message_too_long, $mybb->settings['contact_maxmessagelength'], strlen($mybb->input['message']));
}

if(
strlen($mybb->input['message']) < $mybb->settings['contact_minmessagelength'] && $mybb->settings['contact_minmessagelength'] > 0)
{
$errors[] = $lang->sprintf($lang->message_too_short, $mybb->settings['contact_minmessagelength'], strlen($mybb->input['message']));
}

if(empty(
$mybb->input['email']))
{
$errors[] = $lang->contact_no_email;
}
else
{
// Validate email
if(!validate_email_format($mybb->input['email']))
{
$errors[] = $lang->contact_no_email;
}
}

// Should we have a CAPTCHA? Perhaps yes...
if($mybb->settings['captchaimage'])
{
$captcha = new captcha;

if(
$captcha->validate_captcha() == false)
{
// CAPTCHA validation failed
foreach($captcha->get_errors() as $error)
{
$errors[] = $error;
}
}
}

if(!
$mybb->user['uid'] && $mybb->settings['stopforumspam_on_contact'])
{
require_once
MYBB_ROOT . '/inc/class_stopforumspamchecker.php';

$stop_forum_spam_checker = new StopForumSpamChecker(
$plugins,
$mybb->settings['stopforumspam_min_weighting_before_spam'],
$mybb->settings['stopforumspam_check_usernames'],
$mybb->settings['stopforumspam_check_emails'],
$mybb->settings['stopforumspam_check_ips'],
$mybb->settings['stopforumspam_log_blocks']
);

try {
if(
$stop_forum_spam_checker->is_user_a_spammer('', $mybb->input['email'], get_ip()))
{
$errors[] = $lang->error_stop_forum_spam_spammer;
}
}
catch (
Exception $e)
{
if(
$mybb->settings['stopforumspam_block_on_error'])
{
$errors[] = $lang->error_stop_forum_spam_fetching;
}
}
}

if(empty(
$errors))
{
if(
$mybb->settings['contact_badwords'] == 1)
{
// Load the post parser
require_once MYBB_ROOT."inc/class_parser.php";
$parser = new postParser;

$parser_options = array(
'filter_badwords' => 1
);

$mybb->input['subject'] = $parser->parse_message($mybb->input['subject'], $parser_options);
$mybb->input['ingame'] = $parser->parse_message($mybb->input['ingame'], $parser_options);
$mybb->input['guid'] = $parser->parse_message($mybb->input['guid'], $parser_options);
$mybb->input['message'] = $parser->parse_message($mybb->input['message'], $parser_options);
}

$user = $lang->na;
if(
$mybb->user['uid'])
{
$user = $mybb->user['username'].' - '.$mybb->settings['bburl'].'/'.get_profile_link($mybb->user['uid']);
}

$ingame = $lang->sprintf($lang->email_contact_ingame, $mybb->input['ingame']);
$guid = $lang->sprintf($lang->email_contact_guid, $mybb->input['guid']);
$message = $lang->sprintf($lang->email_contact, $user, $session->ipaddress, $mybb->input['message']);

// Email the administrator
my_mail($mybb->settings['adminemail'], Whitelist, $message, $mybb->input['email']);

$plugins->run_hooks('contact_do_end');

if(
$mybb->settings['mail_logging'] > 0)
{
// Log the message
$log_entry = array(
"ingame" => $db->escape_string($ingame),
"guid" => $db->escape_string($guid),
"message" => $db->escape_string($message),
"dateline" => TIME_NOW,
"fromuid" => $mybb->user['uid'],
"fromemail" => $db->escape_string($mybb->input['email']),
"touid" => 0,
"toemail" => $db->escape_string($mybb->settings['adminemail']),
"tid" => 0,
"ipaddress" => $db->escape_binary($session->packedip),
"type" => 3
);
$db->insert_query("maillogs", $log_entry);
}

// Redirect
redirect('contact.php', $lang->contact_success_message);
}
else
{
$errors = inline_error($errors);
}
}

if(empty(
$errors))
{
$errors = '';
}

// Generate CAPTCHA?
if($mybb->settings['captchaimage'])
{
$post_captcha = new captcha(true, "post_captcha");

if(
$post_captcha->html)
{
$captcha = $post_captcha->html;
}
}
else
{
$captcha = '';
}

$mybb->input['ingame'] = htmlspecialchars_uni($mybb->input['ingame']);
$mybb->input['guid'] = htmlspecialchars_uni($mybb->input['guid']);
$mybb->input['message'] = htmlspecialchars_uni($mybb->input['message']);

if(
$mybb->user['uid'] && !$mybb->get_input('email'))
{
$mybb->input['email'] = htmlspecialchars_uni($mybb->user['email']);
}
else
{
$mybb->input['email'] = htmlspecialchars_uni($mybb->get_input('email'));
}

$plugins->run_hooks('contact_end');

eval(
"\$page = \"".$templates->get("contact")."\";");
output_page($page);

Würde mich über eine ziemlich schnelle Lösung sehr freuen. Smile
Zitieren
#2
Als aller erstes sollte du die Änderungen in der contact.php rückgängig machen, die sind größtenteils völliger Quatsch. Ebenso sollten die Anpassungen an der Datenbank wieder entfernt werden, die Tabelle maillogs loggt einfach nur Mails, da sind keine neuen Felder nötig.

Eine E-Mail besteht auch nur aus 2 Teilen, dem Betreff und der Nachricht. Du willst wahrscheinlich die Nachricht erweitern, dazu müsste nur die Variable $message angepasst werden.
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#3
Ah ok, vielen lieben Dank! Allerdings weis ich gerade nicht wie ich die Variable korrekt bearbeite. Kannst du mir eventuell einen Tipp ggben?
Zitieren
#4
z.B. so:
PHP-Code:
$mybb->input['message'] = "Ingame Name: {$mybb->input['ingame']}\nGUID: {$mybb->input['guid']}\n{$mybb->input['message']}";
vor:
PHP-Code:
$message = $lang->sprintf($lang->email_contact, $user, $session->ipaddress, $mybb->input['message']);
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Kontaktformular anpassen derberliner 4 2.234 04.03.2020, 15:11
Letzter Beitrag: derberliner
  Checkbox in Kontaktformular bStyle 6 2.790 07.12.2014, 16:50
Letzter Beitrag: Juventiner
  Suche Kontaktformular sportwettentalk 26 9.669 29.01.2010, 14:50
Letzter Beitrag: StefanT
  Kontaktformular auch für gesperrte Benutzer Traktion 6 3.139 29.06.2008, 20:28
Letzter Beitrag: Traktion
  Kontaktformular in Deutsch admin83 0 1.794 21.08.2007, 11:35
Letzter Beitrag: admin83