» Forum » Clanscript » Fehlersuche und Probleme » Kontaktformular
  Mitglieder   |   Gallery   |   FAQ's   |   Regeln

[ Anmelden zum schreiben ]

Kontaktformular
Ibizakid
Mitglied
1 Beitragspunkte
Posts: 52

User Pic

0 Mitglieder finden den Beitrag gut.

Merkliste 24.01.2011 - 23:18:41     Zitieren
Ü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
823 Beitragspunkte
Posts: 4603

User Pic

0 Mitglieder finden den Beitrag gut.

Merkliste 24.01.2011 - 23:27:28     Zitieren
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&auml;nger ausw&auml;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}">&nbsp;&nbsp; 
												{VAL}</label><br style="clear: both;" />
												{EXPLODE}</td>
								</tr>
								<tr><td colspan="2">&nbsp;</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>&nbsp;</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
1 Beitragspunkte
Posts: 52

User Pic

0 Mitglieder finden den Beitrag gut.

Merkliste 24.01.2011 - 23:34:16     Zitieren
SUPER
Dankeschön
Ibizakid
Mitglied
1 Beitragspunkte
Posts: 52

User Pic

0 Mitglieder finden den Beitrag gut.

Merkliste 25.01.2011 - 00:13:57     Zitieren
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
823 Beitragspunkte
Posts: 4603

User Pic

0 Mitglieder finden den Beitrag gut.

Merkliste 25.01.2011 - 07:11:23     Zitieren
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
56 Beitragspunkte
Posts: 1420

User Pic

0 Mitglieder finden den Beitrag gut.

Merkliste 25.01.2011 - 14:03:32     Zitieren
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!#$%&
&#8618;'*+/=?^_`{|}~\.-]{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])|
&#8618;([A-Za-z0-9]+))$",
$domain_array[$i])) {
        return false;
      }
    }
  }
  return true;
}
?>



Zuletzt modifiziert von Sniper am 25.01.2011 - 14:03:59
Ibizakid
Mitglied
1 Beitragspunkte
Posts: 52

User Pic

0 Mitglieder finden den Beitrag gut.

Merkliste 26.01.2011 - 21:39:57     Zitieren
Ah, ok.
Funktionert jetzt alles.
DANKE
Beatzler
Mitglied
0 Beitragspunkte
Posts: 173

0 Mitglieder finden den Beitrag gut.

Merkliste 02.02.2011 - 21:31:40     Zitieren
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
823 Beitragspunkte
Posts: 4603

User Pic

0 Mitglieder finden den Beitrag gut.

Merkliste 02.02.2011 - 22:34:05     Zitieren
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!#$%&
&#8618;'*+/=?^_`{|}~\.-]{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])|
&#8618;([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&auml;nger ausw&auml;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}">&nbsp;&nbsp; 
                                                {VAL}</label><br style="clear: both;" />
                                                {EXPLODE}</td>
                                </tr>
                                <tr><td colspan="2">&nbsp;</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>&nbsp;</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
0 Beitragspunkte
Posts: 173

0 Mitglieder finden den Beitrag gut.

Merkliste 02.02.2011 - 23:00:40     Zitieren
Hey,

super klappt perfekt !!!

Vielen lieben Dank dafür !


MFG Beatzler
MagistYata
Mitglied
6 Beitragspunkte
Posts: 844

User Pic

0 Mitglieder finden den Beitrag gut.

Merkliste 09.02.2011 - 09:31:57     Zitieren
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
823 Beitragspunkte
Posts: 4603

User Pic

0 Mitglieder finden den Beitrag gut.

Merkliste 09.02.2011 - 09:38:58     Zitieren
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
6 Beitragspunkte
Posts: 844

User Pic

0 Mitglieder finden den Beitrag gut.

Merkliste 09.02.2011 - 09:40:14     Zitieren
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 ]