Hier kann eine Notiz zum Merk-Eintrag hinzugefügt werden (optional)
| [ Anmelden zum schreiben ] |
| Kontaktformular | |||
|---|---|---|---|
| Ibizakid Mitglied
Posts: 52 |
Über die Suchfunktion habe ich nichts gefunden, aber mich wunderts bissl dass das noch keiner bemerkt hätte.
Bei mir is es nämlich so das keine Fehlermeldung kommt wenn man beim Kontaktformular etwas nicht ausfüllt oder das antispam falsch eingibt. Das setzt die Seite einfach wieder zurück und die User gehen im Normalfall davon aus dass das Ganze gesendet wurde... was aber natürlich nicht der Fall ist. Gibts da ne Lösung? soweit ich gesehen habe gehts hier auf der Seite.... ...hab mir aber nochmal die neueste ilch version zum testen runtergeladen... aber da gings genauso wenig wie auf meiner HP. Hat jemand ne Lösung für mich? betroffene Homepage: www.theenetwork.de |
||
| Lord|Schirmer Administrator
Posts: 4603 |
Ja dieses hat mich auch immer genervt, hier mal meine Ausführung mit Abfragen!
include/contents/contact.php <?php
# Copyright by: Manuel Staechele
# Support: www.ilch.de
defined ('main') or die ( 'no direct access' );
$title = $allgAr['title'].' :: Kontakt';
$hmenu = 'Kontakt';
$design = new design ( $title , $hmenu );
$design->header();
$erg = db_query("SELECT v2,t1,v1 FROM prefix_allg WHERE k = 'kontakt'");
$row = db_fetch_assoc($erg);
$k = explode('#',$row['t1']);
$name = '';
$mail = '';
$subject = '';
$wer = '';
$text = '';
$fehler = '';
### CONFIG
$mailadr = true; // Check Mailaddress //> true = Yes, false = No
if(isset($_POST['submit'])){
if(empty($_POST['name'])){
$fehler .= '• Es wurde kein Name angegeben!<br>';
}
if($_POST['mail'] != ''){
if($mailadr){
$fehler .= ( check_valide_mail($_POST['mail']) == true ? '' : '• Es wurde keine gültige E-Mail Adresse angeben!<br>');
}
}else{
$fehler .= '• Es wurde keine E-Mail-Adresse angegeben!<br>';
}
if(empty($_POST['subject'])){
$fehler .= '• Es wurde kein Betreff eingegeben!<br>';
}
if(empty($_POST['txt'])){
$fehler .= '• Es wurde kein Nachrichtentext eingegeben!<br>';
}
if(chk_antispam ('contact') != true){
$fehler .= '• Der AntiSpam Code war nicht korrekt!<br>';
}
if ($fehler == '' AND !empty($_POST['wer'])) {
$name = $_POST['name'];
$mail = escape_for_email($_POST['mail']);
$betreff = escape_for_email($_POST['subject'], true);
$wer = $_POST['wer'];
$text = strip_tags($_POST['txt']);
$wero = FALSE;
foreach($k as $a) {
$e = explode('|',$a);
if (md5($e[0]) == $wer) {
$wero = TRUE;
$wer = $e[0];
break;
}
}
if (strpos ($text, 'Content-Type:') === FALSE
AND strpos($text, 'MIME-Version:') === FALSE
AND strpos($mail, '@') !== FALSE AND $wero === TRUE
AND strlen($name) <= 30 AND strlen($mail) <= 30
AND strlen($text) <= 5000
AND $mail != $name AND $name != $text AND $text != $mail) {
$subject = "Kontakt über ".$_SERVER['HTTP_HOST'];
$inhalt = $name." hat Ihnen eine Nachricht über ".$_SERVER['HTTP_HOST']." gesendet. \n\n";
$inhalt .= "Betreff: ".$betreff." \n\n";
$text .= " \n\nViele Grüße von \n";
$text .= $name." (".$mail.") ";
$text = $inhalt.$text;
icmail ($wer,$subject,$text, $name." <".$mail.">");
echo 'Ihre Anfrage per Email wurde erfolgreich versendet!';
$name = '';
$mail = '';
$subject = '';
$wer = '';
$text = '';
} else {
$name = $_POST['name'];
$mail = $_POST['mail'];
$subject = $_POST['subject'];
$wer = $_POST['wer'];
$text = $_POST['txt'];
echo $lang['emailcouldnotsend'];
}
} else {
$name = $_POST['name'];
$mail = $_POST['mail'];
$subject = $_POST['subject'];
$wer = $_POST['wer'];
$text = $_POST['txt'];
echo 'Aufgrund folgender Fehler, wurde die Email nicht versendet:<br>'.$fehler;
}
}
$tpl = new tpl ( 'contact.htm' );
$tpl->out(0);
$i = 1;
foreach($k as $a) {
$e = explode('|',$a);
if ($e[0] == '' OR $e[1] == '' ) { continue; }
if ($i == 1) { $c = 'checked'; } else { $c = ''; }
$tpl->set_ar_out( array ('KEY' => md5($e[0]), 'VAL' => $e[1], 'c' => $c) , 1 );
$i++;
}
$tpl->set('name', $name);
$tpl->set('mail', $mail);
$tpl->set('subject', $subject);
$tpl->set('text', $text);
$tpl->set('ANTISPAM', get_antispam('contact',1));
$tpl->out(2);
$design->footer();
?>
contents/templates/contact.htm <form action="?contact" method="POST">
<table width="100%" border="0" cellspacing="0" cellpadding="3" align="center">
<tr>
<td valign="top" width="50%">Empfänger auswählen:</td>
<td width="50%">{EXPLODE}
<input id="w{KEY}" {c}="" type="radio" name="wer" value="{KEY}" style="float: left; border:0px; background-color:#fff;"><label for="w{KEY}">
{VAL}</label><br style="clear: both;" />
{EXPLODE}</td>
</tr>
<tr><td colspan="2"> </td></tr>
<tr>
<td width="50%">Ihr Name:</td>
<td width="50%">
<input type="text" name="name" value="{name}" style="width: 100%"></td>
</tr>
<tr>
<td width="50%">Ihre E-mail:</td>
<td width="50%">
<input type="text" name="mail" value="{mail}" style="width: 100%"></td>
</tr>
<tr>
<td width="50%">Betreff:</td>
<td width="50%">
<input type="text" name="subject" value="{subject}" style="width: 100%"></td>
</tr>
<tr>
<td width="50%" valign="top">Nachricht:</td>
<td width="50%">
<textarea name="txt" style="width: 100%; overflow:auto;" rows="8">{text}</textarea></td>
</tr>
{ANTISPAM}
<tr>
<td> </td>
<td>
<input name="submit" type="submit" value=" Absenden "></td>
</tr>
</table>
</form>
Die Fehlerausgaben können dann noch formatiert werden! Zuletzt modifiziert von Lord|Schirmer am 24.01.2011 - 23:28:09 "In mir schlummert ein Genie, leider wacht es nicht auf!" my portfolio | my community | important link |
||
| Ibizakid Mitglied
Posts: 52 |
SUPER
Dankeschön |
||
| Ibizakid Mitglied
Posts: 52 |
Oh, lol, klappt doch net!!!
Jetzt gehen zwar die Fehlermeldungen, aber irgendwie fehlt mir ne Funktion!! Jetzt geht das senden nämlich nicht mehr wenn man alles korrekt eingegeben hat: Fatal error: Call to undefined function check_valide_mail() in /hp/bn/aa/ap/www/mysteria-network/include/contents/contact.php on line 34 |
||
| Lord|Schirmer Administrator
Posts: 4603 |
Stimmt die Funktion hatte ich noch mit eingebaut ... wenn ich heute Abend zu Hause bin poste ich diese hier!
"In mir schlummert ein Genie, leider wacht es nicht auf!" my portfolio | my community | important link |
||
| Sniper Moderator
Posts: 1420 |
ganz oben einfügen
<?php
function check_valide_mail($email) {
// First, we check that there's one @ symbol,
// and that the lengths are right.
if (!ereg("^[^@]{1,64}@[^@]{1,255}$", $email)) {
// Email invalid because wrong number of characters
// in one section or wrong number of @ symbols.
return false;
}
// Split it into sections to make life easier
$email_array = explode("@", $email);
$local_array = explode(".", $email_array[0]);
for ($i = 0; $i < sizeof($local_array); $i++) {
if
(!ereg("^(([A-Za-z0-9!#$%&'*+/=?^_`{|}~-][A-Za-z0-9!#$%&
↪'*+/=?^_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$",
$local_array[$i])) {
return false;
}
}
// Check if domain is IP. If not,
// it should be valid domain name
if (!ereg("^\[?[0-9\.]+\]?$", $email_array[1])) {
$domain_array = explode(".", $email_array[1]);
if (sizeof($domain_array) < 2) {
return false; // Not enough parts to domain
}
for ($i = 0; $i < sizeof($domain_array); $i++) {
if
(!ereg("^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])|
↪([A-Za-z0-9]+))$",
$domain_array[$i])) {
return false;
}
}
}
return true;
}
?>
Zuletzt modifiziert von Sniper am 25.01.2011 - 14:03:59 |
||
| Ibizakid Mitglied
Posts: 52 |
Ah, ok.
Funktionert jetzt alles. DANKE |
||
| Beatzler Mitglied
Posts: 173 |
Hey,
könntet ihr das bitte ggf. nochmals zusammenfassen wie es nun endgültig und richtig aussehen müsste ? Vielen Dank !!! MFG Beatzler |
||
| Lord|Schirmer Administrator
Posts: 4603 |
include/contents/contact.php
<?php
# Copyright by: Manuel Staechele
# Support: www.ilch.de
defined ('main') or die ( 'no direct access' );
function check_valide_mail($email) {
if (!ereg("^[^@]{1,64}@[^@]{1,255}$", $email)) {
return false;
}
$email_array = explode("@", $email);
$local_array = explode(".", $email_array[0]);
for ($i = 0; $i < sizeof($local_array); $i++) {
if
(!ereg("^(([A-Za-z0-9!#$%&'*+/=?^_`{|}~-][A-Za-z0-9!#$%&
↪'*+/=?^_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$",
$local_array[$i])) {
return false;
}
}
if (!ereg("^\[?[0-9\.]+\]?$", $email_array[1])) {
$domain_array = explode(".", $email_array[1]);
if (sizeof($domain_array) < 2) {
return false;
}
for ($i = 0; $i < sizeof($domain_array); $i++) {
if
(!ereg("^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])|
↪([A-Za-z0-9]+))$",
$domain_array[$i])) {
return false;
}
}
}
return true;
}
$title = $allgAr['title'].' :: Kontakt';
$hmenu = 'Kontakt';
$design = new design ( $title , $hmenu );
$design->header();
$erg = db_query("SELECT v2,t1,v1 FROM prefix_allg WHERE k = 'kontakt'");
$row = db_fetch_assoc($erg);
$k = explode('#',$row['t1']);
$name = '';
$mail = '';
$subject = '';
$wer = '';
$text = '';
$fehler = '';
### CONFIG
$mailadr = true; // Check Mailaddress //> true = Yes, false = No
if(isset($_POST['submit'])){
if(empty($_POST['name'])){
$fehler .= '• Es wurde kein Name angegeben!<br>';
}
if($_POST['mail'] != ''){
if($mailadr){
$fehler .= ( check_valide_mail($_POST['mail']) == true ? '' : '• Es wurde keine gültige E-Mail Adresse angeben!<br>');
}
}else{
$fehler .= '• Es wurde keine E-Mail-Adresse angegeben!<br>';
}
if(empty($_POST['subject'])){
$fehler .= '• Es wurde kein Betreff eingegeben!<br>';
}
if(empty($_POST['txt'])){
$fehler .= '• Es wurde kein Nachrichtentext eingegeben!<br>';
}
if(chk_antispam ('contact') != true){
$fehler .= '• Der AntiSpam Code war nicht korrekt!<br>';
}
if ($fehler == '' AND !empty($_POST['wer'])) {
$name = $_POST['name'];
$mail = escape_for_email($_POST['mail']);
$betreff = escape_for_email($_POST['subject'], true);
$wer = $_POST['wer'];
$text = strip_tags($_POST['txt']);
$wero = FALSE;
foreach($k as $a) {
$e = explode('|',$a);
if (md5($e[0]) == $wer) {
$wero = TRUE;
$wer = $e[0];
break;
}
}
if (strpos ($text, 'Content-Type:') === FALSE
AND strpos($text, 'MIME-Version:') === FALSE
AND strpos($mail, '@') !== FALSE AND $wero === TRUE
AND strlen($name) <= 30 AND strlen($mail) <= 30
AND strlen($text) <= 5000
AND $mail != $name AND $name != $text AND $text != $mail) {
$subject = "Kontakt über ".$_SERVER['HTTP_HOST'];
$inhalt = $name." hat Ihnen eine Nachricht über ".$_SERVER['HTTP_HOST']." gesendet. \n\n";
$inhalt .= "Betreff: ".$betreff." \n\n";
$text .= " \n\nViele Grüße von \n";
$text .= $name." (".$mail.") ";
$text = $inhalt.$text;
icmail ($wer,$subject,$text, $name." <".$mail.">");
echo 'Ihre Anfrage per Email wurde erfolgreich versendet!';
$name = '';
$mail = '';
$subject = '';
$wer = '';
$text = '';
} else {
$name = $_POST['name'];
$mail = $_POST['mail'];
$subject = $_POST['subject'];
$wer = $_POST['wer'];
$text = $_POST['txt'];
echo $lang['emailcouldnotsend'];
}
} else {
$name = $_POST['name'];
$mail = $_POST['mail'];
$subject = $_POST['subject'];
$wer = $_POST['wer'];
$text = $_POST['txt'];
echo 'Aufgrund folgender Fehler, wurde die Email nicht versendet:<br>'.$fehler;
}
}
$tpl = new tpl ( 'contact.htm' );
$tpl->out(0);
$i = 1;
foreach($k as $a) {
$e = explode('|',$a);
if ($e[0] == '' OR $e[1] == '' ) { continue; }
if ($i == 1) { $c = 'checked'; } else { $c = ''; }
$tpl->set_ar_out( array ('KEY' => md5($e[0]), 'VAL' => $e[1], 'c' => $c) , 1 );
$i++;
}
$tpl->set('name', $name);
$tpl->set('mail', $mail);
$tpl->set('subject', $subject);
$tpl->set('text', $text);
$tpl->set('ANTISPAM', get_antispam('contact',1));
$tpl->out(2);
$design->footer();
?>
contents/templates/contact.htm <form action="?contact" method="POST">
<table width="100%" border="0" cellspacing="0" cellpadding="3" align="center">
<tr>
<td valign="top" width="50%">Empfänger auswählen:</td>
<td width="50%">{EXPLODE}
<input id="w{KEY}" {c}="" type="radio" name="wer" value="{KEY}" style="float: left; border:0px; background-color:#fff;"><label for="w{KEY}">
{VAL}</label><br style="clear: both;" />
{EXPLODE}</td>
</tr>
<tr><td colspan="2"> </td></tr>
<tr>
<td width="50%">Ihr Name:</td>
<td width="50%">
<input type="text" name="name" value="{name}" style="width: 100%"></td>
</tr>
<tr>
<td width="50%">Ihre E-mail:</td>
<td width="50%">
<input type="text" name="mail" value="{mail}" style="width: 100%"></td>
</tr>
<tr>
<td width="50%">Betreff:</td>
<td width="50%">
<input type="text" name="subject" value="{subject}" style="width: 100%"></td>
</tr>
<tr>
<td width="50%" valign="top">Nachricht:</td>
<td width="50%">
<textarea name="txt" style="width: 100%; overflow:auto;" rows="8">{text}</textarea></td>
</tr>
{ANTISPAM}
<tr>
<td> </td>
<td>
<input name="submit" type="submit" value=" Absenden "></td>
</tr>
</table>
</form>
Zuletzt modifiziert von Lord|Schirmer am 02.02.2011 - 22:35:53 "In mir schlummert ein Genie, leider wacht es nicht auf!" my portfolio | my community | important link |
||
| Beatzler Mitglied
Posts: 173 |
Hey,
super klappt perfekt !!! Vielen lieben Dank dafür ! MFG Beatzler |
||
| MagistYata Mitglied
Posts: 844 |
Danke Lord, das haben wir auch gebraucht.
Nur noch ne Frage dazu. Es werden immer die beiden User mit der ID 1 und ID 2 ausgewählt. Da bei uns der User mit der ID 1 ausgeschieden ist, wollte ich mal fragen, ob man nicht eine Liste einbauen kann, wo man die Empfänger per id eintragen kann. Oder besser gesagt, wie kann ich dem user mit der ID 1 eine andere ID Nummer geben, aber so, dass auch alle anderen Einträge (Forum, News, Kommentare etc.) mit übernommen werden. Streß ist Lebensdiebstahl |
||
| Lord|Schirmer Administrator
Posts: 4603 |
Zur User-ID Änderung, schau mal hier
Ansonsten kannst Du ja eigentlich die Kontaktempfänger im Adminbereich einstellen! "In mir schlummert ein Genie, leider wacht es nicht auf!" my portfolio | my community | important link |
||
| MagistYata Mitglied
Posts: 844 |
Oh verdammt, der Lord war schneller als ich. Wollte gerade meinen Post editieren da ich nach Oberadmin gesucht habe. Trotzdem Danke dafür.
Streß ist Lebensdiebstahl |
||
| [ Anmelden zum schreiben ] |